aboutsummaryrefslogtreecommitdiff
path: root/src/courtroom.cpp
diff options
context:
space:
mode:
authorin1tiate <32779090+in1tiate@users.noreply.github.com>2025-03-14 08:22:00 -0500
committerGitHub <noreply@github.com>2025-03-14 08:22:00 -0500
commitc0c278e63c8f18a5ef816335f8a97cce27bde172 (patch)
treee4c1745dbcb15eba6daf0f2aa009908c35300e9c /src/courtroom.cpp
parent36ad63b0c026a0c95d47571d8e4c6f35a6854d65 (diff)
Fix crashes related to music list context menu (#1088)
Diffstat (limited to 'src/courtroom.cpp')
-rw-r--r--src/courtroom.cpp16
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)