aboutsummaryrefslogtreecommitdiff
path: root/src/courtroom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/courtroom.cpp')
-rw-r--r--src/courtroom.cpp15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/courtroom.cpp b/src/courtroom.cpp
index bc182a87..b203cf08 100644
--- a/src/courtroom.cpp
+++ b/src/courtroom.cpp
@@ -4098,6 +4098,9 @@ void Courtroom::on_music_list_context_menu_requested(const QPoint &pos)
{
QMenu *menu = new QMenu();
+ menu->addAction(QString(tr("Play Random Song")), this,
+ SLOT(music_random()));
+ menu->addSeparator();
menu->addAction(QString(tr("Expand All Categories")), this,
SLOT(music_list_expand_all()));
menu->addAction(QString(tr("Collapse All Categories")), this,
@@ -4149,6 +4152,18 @@ void Courtroom::music_synchronize(bool toggle)
music_flags &= ~SYNC_POS;
}
+void Courtroom::music_random()
+{
+ QList<QTreeWidgetItem *> clist;
+ QTreeWidgetItemIterator it(ui_music_list, QTreeWidgetItemIterator::NotHidden | QTreeWidgetItemIterator::NoChildren);
+ while (*it) {
+ clist += (*it);
+ ++it;
+ }
+ int i = qrand() % clist.length();
+ on_music_list_double_clicked(clist.at(i), 1);
+}
+
void Courtroom::music_list_expand_all() { ui_music_list->expandAll(); }
void Courtroom::music_list_collapse_all()
{