Fix crashes related to music list context menu (#1088)

This commit is contained in:
in1tiate 2025-03-14 08:22:00 -05:00 committed by GitHub
parent 36ad63b0c0
commit c0c278e63c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -5797,12 +5797,12 @@ void Courtroom::on_music_list_context_menu_requested(const QPoint &pos)
menu->addSeparator(); menu->addSeparator();
QTreeWidgetItem *current_song = ui_music_list->currentItem(); 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->addAction(QString(tr("Remove Favorite")), this, [this, current_song] { Courtroom::remove_favorite_song(current_song); });
menu->addSeparator(); 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->addAction(QString(tr("Add Favorite")), this, [this, current_song] { Courtroom::add_favorite_song(current_song); });
menu->addSeparator(); menu->addSeparator();
@ -5920,12 +5920,16 @@ void Courtroom::music_list_expand_all()
void Courtroom::music_list_collapse_all() void Courtroom::music_list_collapse_all()
{ {
ui_music_list->collapseAll(); ui_music_list->collapseAll();
QTreeWidgetItem *current = ui_music_list->selectedItems()[0]; // If we had a selection, restore it, or select its parent
if (current->parent() != nullptr) 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) void Courtroom::music_stop(bool no_effects)