diff --git a/tidal_dl_ng/download.py b/tidal_dl_ng/download.py index 5c508c2..91f9b9e 100644 --- a/tidal_dl_ng/download.py +++ b/tidal_dl_ng/download.py @@ -324,7 +324,7 @@ class Download: totaltrack=track.album.num_tracks if track.album and track.album.num_tracks else 1, totaldisc=track.album.num_volumes if track.album and track.album.num_volumes else 1, discnumber=track.volume_num if track.volume_num else 1, - url_cover=track.album.image(self.settings.data.metadata_cover_dimension), + url_cover=track.album.image(self.settings.data.metadata_cover_dimension.value), ) m.save() diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py index 6f96eb7..cb079c6 100644 --- a/tidal_dl_ng/gui.py +++ b/tidal_dl_ng/gui.py @@ -7,7 +7,7 @@ from requests.exceptions import HTTPError from tidal_dl_ng import version from tidal_dl_ng.dialog import DialogLogin, DialogPreferences, DialogVersion from tidal_dl_ng.helper.exceptions import MediaUnknown -from tidal_dl_ng.helper.gui import get_results_media_item +from tidal_dl_ng.helper.gui import get_results_media_item, get_user_list_media_item from tidal_dl_ng.helper.path import get_format_template from tidal_dl_ng.helper.tidal import ( get_tidal_media_id, @@ -299,14 +299,26 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): self.thread_it(self.on_download_list_media, point) self.thread_it(self.list_items_show_result, point=point) - def on_download_list_media(self, point: QtCore.QPoint): + def on_download_list_media(self, point: QtCore.QPoint = None): self.pb_download.setEnabled(False) self.pb_download.setText("Downloading...") - item = self.tr_lists_user.itemAt(point) - media = item.data(3, QtCore.Qt.ItemDataRole.UserRole) + item: QtWidgets.QTreeWidgetItem - self.download(media, self.dl) + if point: + item = self.tr_lists_user.itemAt(point) + else: + items: [QtWidgets.QTreeWidgetItem] = self.tr_lists_user.selectedItems() + + if len(items) == 0: + logger_gui.error("Please select a row first.") + else: + item = items[0] + + if item: + media = get_user_list_media_item(item) + + self.download(media, self.dl) self.pb_download.setText("Download") self.pb_download.setEnabled(True) @@ -476,6 +488,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow): def _init_signals(self): self.pb_download.clicked.connect(lambda: self.thread_it(self.on_download_results)) + self.pb_download_list.clicked.connect(lambda: self.thread_it(self.on_download_list_media)) self.l_search.returnPressed.connect( lambda: self.search_populate_results(self.l_search.text(), self.cb_search_type.currentData()) ) diff --git a/tidal_dl_ng/ui/main.py b/tidal_dl_ng/ui/main.py index 6534ba1..8e6d8ad 100644 --- a/tidal_dl_ng/ui/main.py +++ b/tidal_dl_ng/ui/main.py @@ -120,6 +120,8 @@ class Ui_MainWindow: self.lv_list_user.addWidget(self.tr_lists_user) + self.lv_list_control = QHBoxLayout() + self.lv_list_control.setObjectName("lv_list_control") self.pb_reload_user_lists = QPushButton(self.w_central) self.pb_reload_user_lists.setObjectName("pb_reload_user_lists") sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed) @@ -128,7 +130,16 @@ class Ui_MainWindow: sizePolicy1.setHeightForWidth(self.pb_reload_user_lists.sizePolicy().hasHeightForWidth()) self.pb_reload_user_lists.setSizePolicy(sizePolicy1) - self.lv_list_user.addWidget(self.pb_reload_user_lists) + self.lv_list_control.addWidget(self.pb_reload_user_lists) + + self.pb_download_list = QPushButton(self.w_central) + self.pb_download_list.setObjectName("pb_download_list") + sizePolicy1.setHeightForWidth(self.pb_download_list.sizePolicy().hasHeightForWidth()) + self.pb_download_list.setSizePolicy(sizePolicy1) + + self.lv_list_control.addWidget(self.pb_download_list) + + self.lv_list_user.addLayout(self.lv_list_control) self.horizontalLayout.addLayout(self.lv_list_user) @@ -392,7 +403,7 @@ class Ui_MainWindow: self.l_pm_cover.setMaximumSize(QSize(280, 280)) self.l_pm_cover.setBaseSize(QSize(0, 0)) self.l_pm_cover.setFrameShape(QFrame.NoFrame) - self.l_pm_cover.setPixmap(QPixmap("placeholder_cover.jpg")) + self.l_pm_cover.setPixmap(QPixmap("default_album_image.png")) self.l_pm_cover.setScaledContents(True) self.l_pm_cover.setAlignment(Qt.AlignHCenter | Qt.AlignTop) @@ -453,7 +464,6 @@ class Ui_MainWindow: self.horizontalLayout.addLayout(self.lv_info) - self.horizontalLayout.setStretch(0, 25) self.horizontalLayout.setStretch(1, 50) self.horizontalLayout.setStretch(2, 25) MainWindow.setCentralWidget(self.w_central) @@ -544,6 +554,7 @@ class Ui_MainWindow: self.tr_lists_user.setSortingEnabled(__sortingEnabled) self.pb_reload_user_lists.setText(QCoreApplication.translate("MainWindow", "Reload", None)) + self.pb_download_list.setText(QCoreApplication.translate("MainWindow", "Download List", None)) ___qtreewidgetitem4 = self.tr_results.headerItem() ___qtreewidgetitem4.setText(6, QCoreApplication.translate("MainWindow", "Quality", None)) ___qtreewidgetitem4.setText(5, QCoreApplication.translate("MainWindow", "Duration", None)) diff --git a/tidal_dl_ng/ui/main.ui b/tidal_dl_ng/ui/main.ui index 2e76e30..611a074 100644 --- a/tidal_dl_ng/ui/main.ui +++ b/tidal_dl_ng/ui/main.ui @@ -38,7 +38,7 @@ - + @@ -160,17 +160,34 @@ - - - - 0 - 0 - - - - Reload - - + + + + + + 0 + 0 + + + + Reload + + + + + + + + 0 + 0 + + + + Download List + + + +