From 08eea631d68550c17e842797c5a3c1ddc8d0e258 Mon Sep 17 00:00:00 2001 From: Keith Edmunds Date: Wed, 2 Mar 2022 09:27:37 +0000 Subject: [PATCH] Rebase dev onto v2_id --- app/musicmuster.py | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/app/musicmuster.py b/app/musicmuster.py index a406aa5..0da712a 100755 --- a/app/musicmuster.py +++ b/app/musicmuster.py @@ -31,6 +31,7 @@ from models import (db_init, Playdates, Playlists, PlaylistTracks, Session, Settings, Tracks) from playlists import PlaylistTab from utilities import create_track_from_file +from sqlalchemy.orm.exc import DetachedInstanceError from ui.dlg_search_database_ui import Ui_Dialog from ui.dlg_SelectPlaylist_ui import Ui_dlgSelectPlaylist from ui.main_window_ui import Ui_MainWindow @@ -164,7 +165,7 @@ class Window(QMainWindow, Ui_MainWindow): self.action_Clear_selection.triggered.connect(self.clear_selection) self.actionClosePlaylist.triggered.connect(self.close_playlist_tab) self.actionExport_playlist.triggered.connect(self.export_playlist_tab) - self.actionFade.triggered.connect(self.fade) + self.actionFade.triggered.connect(lambda: self.stop_playing(fade=True)) self.actionMoveSelected.triggered.connect(self.move_selected) self.actionNewPlaylist.triggered.connect(self.create_playlist) self.actionOpenPlaylist.triggered.connect(self.open_playlist) @@ -183,7 +184,7 @@ class Window(QMainWindow, Ui_MainWindow): self.btnAddFile.clicked.connect(self.add_file) self.btnAddNote.clicked.connect(self.create_note) self.btnDatabase.clicked.connect(self.search_database) - self.btnFade.clicked.connect(self.fade) + self.btnFade.clicked.connect(lambda: self.stop_playing(fade=True)) self.btnPlay.clicked.connect(self.play_next) self.btnSetNext.clicked.connect(self.this_is_the_next_track) self.btnSongInfo.clicked.connect(self.song_info_search) @@ -807,27 +808,33 @@ class Window(QMainWindow, Ui_MainWindow): self.stop_playing() def update_headers(self) -> None: - """Update last / current / next track headers""" + """ + Update last / current / next track headers + + If multiple tracks are played quickly in succession, it's possible + for the self.{previous,current,next} track to not be in the session. + Unlikely to happen in normal use so handle by blanking title. + """ try: self.hdrPreviousTrack.setText( f"{self.previous_track.title} - {self.previous_track.artist}" ) - except AttributeError: + except (AttributeError, DetachedInstanceError): self.hdrPreviousTrack.setText("") try: self.hdrCurrentTrack.setText( f"{self.current_track.title} - {self.current_track.artist}" ) - except AttributeError: + except (AttributeError, DetachedInstanceError): self.hdrCurrentTrack.setText("") try: self.hdrNextTrack.setText( f"{self.next_track.title} - {self.next_track.artist}" ) - except AttributeError: + except (AttributeError, DetachedInstanceError): self.hdrNextTrack.setText("")