diff options
| author | in1tiate <32779090+in1tiate@users.noreply.github.com> | 2025-03-14 08:22:00 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-03-14 08:22:00 -0500 |
| commit | c0c278e63c8f18a5ef816335f8a97cce27bde172 (patch) | |
| tree | e4c1745dbcb15eba6daf0f2aa009908c35300e9c /src | |
| parent | 36ad63b0c026a0c95d47571d8e4c6f35a6854d65 (diff) | |
Fix crashes related to music list context menu (#1088)
Diffstat (limited to 'src')
| -rw-r--r-- | src/courtroom.cpp | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/src/courtroom.cpp b/src/courtroom.cpp index 0f899364..8402b8e8 100644 --- a/src/courtroom.cpp +++ b/src/courtroom.cpp @@ -5797,12 +5797,12 @@ void Courtroom::on_music_list_context_menu_requested(const QPoint &pos) menu->addSeparator(); QTreeWidgetItem *current_song = ui_music_list->currentItem(); - if (ui_music_list->currentItem()->text(2) == "1") + if (ui_music_list->currentItem() && ui_music_list->currentItem()->text(2) == "1") { menu->addAction(QString(tr("Remove Favorite")), this, [this, current_song] { Courtroom::remove_favorite_song(current_song); }); menu->addSeparator(); } - else + else if (ui_music_list->currentItem()) { menu->addAction(QString(tr("Add Favorite")), this, [this, current_song] { Courtroom::add_favorite_song(current_song); }); menu->addSeparator(); @@ -5920,12 +5920,16 @@ void Courtroom::music_list_expand_all() void Courtroom::music_list_collapse_all() { ui_music_list->collapseAll(); - QTreeWidgetItem *current = ui_music_list->selectedItems()[0]; - if (current->parent() != nullptr) + // If we had a selection, restore it, or select its parent + if (ui_music_list->selectedItems().size() > 0) { - current = current->parent(); + QTreeWidgetItem *current = ui_music_list->selectedItems()[0]; + if (current->parent() != nullptr) + { + current = current->parent(); + } + ui_music_list->setCurrentItem(current); } - ui_music_list->setCurrentItem(current); } void Courtroom::music_stop(bool no_effects) |
