Put preview track details in status bar
This commit is contained in:
parent
63b1d0dff4
commit
61b00d8531
@ -693,7 +693,6 @@ class PreviewManager:
|
||||
mixer.init()
|
||||
self.intro: Optional[int] = None
|
||||
self.path: str = ""
|
||||
self.row_number: Optional[int] = None
|
||||
self.start_time: Optional[dt.datetime] = None
|
||||
self.track_id: int = 0
|
||||
|
||||
@ -767,22 +766,14 @@ class PreviewManager:
|
||||
|
||||
self.intro = ms
|
||||
|
||||
def set_track_info(self, info: TrackInfo) -> None:
|
||||
self.track_id = info.track_id
|
||||
self.row_number = info.row_number
|
||||
|
||||
with db.Session() as session:
|
||||
track = session.get(Tracks, self.track_id)
|
||||
if not track:
|
||||
raise ValueError(
|
||||
f"PreviewManager: unable to retreive track {self.track_id=}"
|
||||
)
|
||||
self.intro = track.intro
|
||||
self.path = track.path
|
||||
def set_track_info(self, track_id: int, track_intro: int, track_path: str) -> None:
|
||||
self.track_id = track_id
|
||||
self.intro = track_intro
|
||||
self.path = track_path
|
||||
|
||||
# Check file readable
|
||||
if file_is_unreadable(self.path):
|
||||
raise ValueError(f"PreviewManager.__init__: {track.path=} unreadable")
|
||||
raise ValueError(f"PreviewManager.__init__: {track_path=} unreadable")
|
||||
|
||||
mixer.music.load(self.path)
|
||||
|
||||
@ -790,7 +781,6 @@ class PreviewManager:
|
||||
mixer.music.stop()
|
||||
mixer.music.unload()
|
||||
self.path = ""
|
||||
self.row_number = None
|
||||
self.track_id = 0
|
||||
self.start_time = None
|
||||
|
||||
@ -2263,10 +2253,25 @@ class Window(QMainWindow):
|
||||
return
|
||||
if not track_info:
|
||||
return
|
||||
self.preview_manager.set_track_info(track_info)
|
||||
self.preview_manager.play()
|
||||
with db.Session() as session:
|
||||
track = session.get(Tracks, track_info.track_id)
|
||||
if not track:
|
||||
raise ApplicationError(
|
||||
f"musicmuster.preview: unable to retreive track {track_info.track_id=}"
|
||||
)
|
||||
self.preview_manager.set_track_info(
|
||||
track_id=track.id,
|
||||
track_path=track.path,
|
||||
track_intro=track.intro
|
||||
)
|
||||
self.preview_manager.play()
|
||||
self.show_status_message(
|
||||
f"Preview: {track.title} / {track.artist} (row {track_info.row_number})",
|
||||
0
|
||||
)
|
||||
else:
|
||||
self.preview_manager.stop()
|
||||
self.show_status_message("", 0)
|
||||
|
||||
def preview_arm(self):
|
||||
"""Manager arm button for setting intro length"""
|
||||
@ -2528,10 +2533,14 @@ class Window(QMainWindow):
|
||||
def show_status_message(self, message: str, timing: int) -> None:
|
||||
"""
|
||||
Show status message in status bar for timing milliseconds
|
||||
Clear message if message is null string
|
||||
"""
|
||||
|
||||
if self.statusbar:
|
||||
self.statusbar.showMessage(message, timing)
|
||||
if message:
|
||||
self.statusbar.showMessage(message, timing)
|
||||
else:
|
||||
self.statusbar.clearMessage()
|
||||
|
||||
def show_track(self, playlist_track: RowAndTrack) -> None:
|
||||
"""Scroll to show track in plt"""
|
||||
|
||||
Loading…
Reference in New Issue
Block a user