@@ -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()
59205920void 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
59315935void Courtroom::music_stop (bool no_effects)
0 commit comments