WIP V3: info popup implemented

This commit is contained in:
Keith Edmunds 2023-11-19 03:11:03 +00:00
parent f4a374f68c
commit 4f4408400f
2 changed files with 24 additions and 19 deletions

View File

@ -507,6 +507,13 @@ class PlaylistModel(QAbstractTableModel):
return duration
def get_row_info(self, row_number: int) -> PlaylistRowData:
"""
Return info about passed row
"""
return self.playlist_rows[row_number]
def headerData(
self,
section: int,

View File

@ -576,9 +576,9 @@ class PlaylistTab(QTableView):
parent_menu=sort_menu,
)
# Info TODO
# Info
if track_row:
self._add_context_menu("Info", lambda: print("Track info"))
self._add_context_menu("Info", lambda: self._info_row(row_number))
# Track path TODO
if track_row:
@ -682,25 +682,23 @@ class PlaylistTab(QTableView):
# items in that row selected)
return sorted(list(set([a.row() for a in self.selectedIndexes()])))
def _info_row(self, track_id: int) -> None:
def _info_row(self, row_number: int) -> None:
"""Display popup with info re row"""
with Session() as session:
track = session.get(Tracks, track_id)
if track:
txt = (
f"Title: {track.title}\n"
f"Artist: {track.artist}\n"
f"Track ID: {track.id}\n"
f"Track duration: {ms_to_mmss(track.duration)}\n"
f"Track bitrate: {track.bitrate}\n"
f"Track fade at: {ms_to_mmss(track.fade_at)}\n"
f"Track silence at: {ms_to_mmss(track.silence_at)}"
"\n\n"
f"Path: {track.path}\n"
)
else:
txt = f"Can't find {track_id=}"
model = cast(PlaylistModel, self.model())
prd = model.get_row_info(row_number)
if prd:
txt = (
f"Title: {prd.title}\n"
f"Artist: {prd.artist}\n"
f"Track ID: {prd.track_id}\n"
f"Track duration: {ms_to_mmss(prd.duration)}\n"
f"Track bitrate: {prd.bitrate}\n"
"\n\n"
f"Path: {prd.path}\n"
)
else:
txt = f"Can't find info about row{row_number}"
info: QMessageBox = QMessageBox(self)
info.setIcon(QMessageBox.Icon.Information)