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