✨ Display cover in info area.

This commit is contained in:
Robert Honz
2024-03-25 16:53:51 +01:00
parent f7361b3078
commit e3cee90bf8
2 changed files with 48 additions and 1 deletions
+11 -1
View File
@@ -7,6 +7,7 @@ from requests.exceptions import HTTPError
from tidal_dl_ng import version from tidal_dl_ng import version
from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion
from tidal_dl_ng.helper.exceptions import MediaUnknown from tidal_dl_ng.helper.exceptions import MediaUnknown
from tidal_dl_ng.helper.gui import get_results_media_item
from tidal_dl_ng.helper.path import get_format_template from tidal_dl_ng.helper.path import get_format_template
from tidal_dl_ng.helper.tidal import ( from tidal_dl_ng.helper.tidal import (
get_tidal_media_id, get_tidal_media_id,
@@ -18,6 +19,7 @@ from tidal_dl_ng.helper.tidal import (
search_results_all, search_results_all,
user_media_lists, user_media_lists,
) )
from tidal_dl_ng.metadata import Metadata
try: try:
import qdarktheme import qdarktheme
@@ -159,7 +161,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
self.statusbar.addPermanentWidget(pb) self.statusbar.addPermanentWidget(pb)
def _init_info(self): def _init_info(self):
self.l_pm_cover.setPixmap(QtGui.QPixmap("tidal_dl_ng/ui/placeholder_cover.jpg")) self.l_pm_cover.setPixmap(QtGui.QPixmap("tidal_dl_ng/ui/default_album_image.png"))
def on_progress_reset(self): def on_progress_reset(self):
self.pb_list.setValue(0) self.pb_list.setValue(0)
@@ -504,6 +506,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
# Results # Results
self.tr_results.itemExpanded.connect(self.on_tr_results_expanded) self.tr_results.itemExpanded.connect(self.on_tr_results_expanded)
self.tr_results.itemClicked.connect(self.on_result_item_clicked)
def on_logout(self): def on_logout(self):
result: bool = self.tidal.logout() result: bool = self.tidal.logout()
@@ -544,6 +547,13 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
if media_list: if media_list:
self.list_items_show_result(media_list) self.list_items_show_result(media_list)
def on_result_item_clicked(self, item: QtWidgets.QTreeWidgetItem, column: int) -> None:
media: Track | Video | Album | Artist = get_results_media_item(item)
data_cover: bytes = Metadata.cover_data(media.album.image())
pixmap: QtGui.QPixmap = QtGui.QPixmap()
pixmap.loadFromData(data_cover)
self.l_pm_cover.setPixmap(pixmap)
def list_items_show_result( def list_items_show_result(
self, self,
media_list: Album | Playlist | Mix | Artist | None = None, media_list: Album | Playlist | Mix | Artist | None = None,
+37
View File
@@ -0,0 +1,37 @@
from PySide6 import QtCore, QtWidgets
from tidalapi import Album, Mix, Playlist, Track, UserPlaylist, Video
from tidalapi.artist import Artist
def get_table_data(
item: QtWidgets.QTreeWidgetItem, column: int
) -> Track | Video | Album | Artist | Mix | Playlist | UserPlaylist:
result: Track | Video | Album | Artist = item.data(column, QtCore.Qt.ItemDataRole.UserRole)
return result
def get_results_media_item(item: QtWidgets.QTreeWidgetItem) -> Track | Video | Album | Artist:
result: Track | Video | Album | Artist = get_table_data(item, 1)
return result
def get_user_list_media_item(item: QtWidgets.QTreeWidgetItem) -> Mix | Playlist | UserPlaylist:
result: Mix | Playlist | UserPlaylist = get_table_data(item, 1)
return result
def set_table_data(
item: QtWidgets.QTreeWidgetItem, data: Track | Video | Album | Artist | Mix | Playlist | UserPlaylist, column: int
):
item.setData(column, QtCore.Qt.ItemDataRole.UserRole, data)
def set_results_media(item: QtWidgets.QTreeWidgetItem, media: Track | Video | Album | Artist):
set_table_data(item, media, 1)
def set_user_list_media(item: QtWidgets.QTreeWidgetItem, media: Mix | Playlist | UserPlaylist):
set_table_data(item, media, 1)