Add "Play Random Song" option (#200)

It also respects the search string, so only visible tracks are chosen from the pool. Categories (i.e. entries with children) are also ignored.
This commit is contained in:
Crystalwarrior 2020-07-31 23:11:38 +03:00 committed by GitHub
parent 56d7fff500
commit bab10ea14d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 16 additions and 0 deletions

View File

@ -673,6 +673,7 @@ private slots:
void music_fade_out(bool toggle); void music_fade_out(bool toggle);
void music_fade_in(bool toggle); void music_fade_in(bool toggle);
void music_synchronize(bool toggle); void music_synchronize(bool toggle);
void music_random();
void music_list_expand_all(); void music_list_expand_all();
void music_list_collapse_all(); void music_list_collapse_all();
void on_area_list_double_clicked(QTreeWidgetItem *p_item, int column); void on_area_list_double_clicked(QTreeWidgetItem *p_item, int column);

View File

@ -4098,6 +4098,9 @@ void Courtroom::on_music_list_context_menu_requested(const QPoint &pos)
{ {
QMenu *menu = new QMenu(); 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, menu->addAction(QString(tr("Expand All Categories")), this,
SLOT(music_list_expand_all())); SLOT(music_list_expand_all()));
menu->addAction(QString(tr("Collapse All Categories")), this, menu->addAction(QString(tr("Collapse All Categories")), this,
@ -4149,6 +4152,18 @@ void Courtroom::music_synchronize(bool toggle)
music_flags &= ~SYNC_POS; 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_expand_all() { ui_music_list->expandAll(); }
void Courtroom::music_list_collapse_all() void Courtroom::music_list_collapse_all()
{ {