Skip to content

Commit f7f36d1

Browse files
committed
Fix crashes related to music list context menu
1 parent 36ad63b commit f7f36d1

File tree

1 file changed

+10
-6
lines changed

1 file changed

+10
-6
lines changed

src/courtroom.cpp

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5797,12 +5797,12 @@ void Courtroom::on_music_list_context_menu_requested(const QPoint &pos)
57975797
menu->addSeparator();
57985798

57995799
QTreeWidgetItem *current_song = ui_music_list->currentItem();
5800-
if (ui_music_list->currentItem()->text(2) == "1")
5800+
if (ui_music_list->currentItem() && ui_music_list->currentItem()->text(2) == "1")
58015801
{
58025802
menu->addAction(QString(tr("Remove Favorite")), this, [this, current_song] { Courtroom::remove_favorite_song(current_song); });
58035803
menu->addSeparator();
58045804
}
5805-
else
5805+
else if (ui_music_list->currentItem())
58065806
{
58075807
menu->addAction(QString(tr("Add Favorite")), this, [this, current_song] { Courtroom::add_favorite_song(current_song); });
58085808
menu->addSeparator();
@@ -5920,12 +5920,16 @@ void Courtroom::music_list_expand_all()
59205920
void Courtroom::music_list_collapse_all()
59215921
{
59225922
ui_music_list->collapseAll();
5923-
QTreeWidgetItem *current = ui_music_list->selectedItems()[0];
5924-
if (current->parent() != nullptr)
5923+
// If we had a selection, restore it, or select its parent
5924+
if (ui_music_list->selectedItems().size() > 0)
59255925
{
5926-
current = current->parent();
5926+
QTreeWidgetItem *current = ui_music_list->selectedItems()[0];
5927+
if (current->parent() != nullptr)
5928+
{
5929+
current = current->parent();
5930+
}
5931+
ui_music_list->setCurrentItem(current);
59275932
}
5928-
ui_music_list->setCurrentItem(current);
59295933
}
59305934

59315935
void Courtroom::music_stop(bool no_effects)

0 commit comments

Comments
 (0)