Set next track start time correctly when current track on another tab

This commit is contained in:
Keith Edmunds 2022-09-12 18:24:15 +01:00
parent 0194790605
commit dff7e2323d
2 changed files with 12 additions and 7 deletions

View File

@ -70,6 +70,7 @@ class Window(QMainWindow, Ui_MainWindow):
self.music: music.Music = music.Music() self.music: music.Music = music.Music()
self.current_track: Optional[TrackData] = None self.current_track: Optional[TrackData] = None
self.current_track_playlist_tab: Optional[PlaylistTab] = None self.current_track_playlist_tab: Optional[PlaylistTab] = None
self.current_track_end_time = None
self.next_track: Optional[TrackData] = None self.next_track: Optional[TrackData] = None
self.next_track_playlist_tab: Optional[PlaylistTab] = None self.next_track_playlist_tab: Optional[PlaylistTab] = None
self.previous_track: Optional[TrackData] = None self.previous_track: Optional[TrackData] = None
@ -308,6 +309,7 @@ class Window(QMainWindow, Ui_MainWindow):
- Tell playlist_tab track has finished - Tell playlist_tab track has finished
- Reset current playlist_tab - Reset current playlist_tab
- Reset clocks - Reset clocks
- Reset end time
- Update headers - Update headers
- Enable controls - Enable controls
""" """
@ -339,6 +341,9 @@ class Window(QMainWindow, Ui_MainWindow):
self.label_start_time.setText("00:00:00") self.label_start_time.setText("00:00:00")
self.label_end_time.setText("00:00:00") self.label_end_time.setText("00:00:00")
# Reset end time
self.current_track_end_time = None
# Update headers # Update headers
self.update_headers() self.update_headers()
@ -696,10 +701,10 @@ class Window(QMainWindow, Ui_MainWindow):
helpers.ms_to_mmss(silence_at - fade_at)) helpers.ms_to_mmss(silence_at - fade_at))
self.label_start_time.setText( self.label_start_time.setText(
start_at.strftime(Config.TRACK_TIME_FORMAT)) start_at.strftime(Config.TRACK_TIME_FORMAT))
end_at = start_at + timedelta( self.current_track_end_time = start_at + timedelta(
milliseconds=self.current_track.duration) milliseconds=self.current_track.duration)
self.label_end_time.setText( self.label_end_time.setText(
end_at.strftime(Config.TRACK_TIME_FORMAT)) self.current_track_end_time.strftime(Config.TRACK_TIME_FORMAT))
def search_playlist(self) -> None: def search_playlist(self) -> None:
"""Show text box to search playlist""" """Show text box to search playlist"""

View File

@ -1078,11 +1078,11 @@ class PlaylistTab(QTableWidget):
# Render next track # Render next track
if row == next_row: if row == next_row:
# Set start time # Set start time
# if there's a track playing, set start time from that # if there's a track playing, set start time from
if current_row is not None: # that. It may be on a different tab, so we get
start_time = self._calculate_end_time( # start time from musicmuster.
self.current_track_start_time, track.duration) start_time = self.musicmuster.current_track_end_time
else: if start_time is None:
# No current track to base from, but don't change # No current track to base from, but don't change
# time if it's already set # time if it's already set
start_time = self._get_row_start_time(row) start_time = self._get_row_start_time(row)