summaryrefslogtreecommitdiff
path: root/tidal_dl_ng
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-03-29 12:24:42 +0100
committerRobert Honz <exislow+github@gmail.com>2024-03-29 12:24:42 +0100
commitead4b8a905820891161e4cbd81cab6e07b51a8f0 (patch)
tree4b3ca20e795db05fa408de8196d87a775ebf1f34 /tidal_dl_ng
parentaa902f70690d22f1f1149317e95993187a9fef84 (diff)
downloadtidal-dl-ng-ead4b8a905820891161e4cbd81cab6e07b51a8f0.tar.gz
✨ Lists can also be downloaded using the "Download List" button.
Diffstat (limited to 'tidal_dl_ng')
-rw-r--r--tidal_dl_ng/download.py2
-rw-r--r--tidal_dl_ng/gui.py23
-rw-r--r--tidal_dl_ng/ui/main.py17
-rw-r--r--tidal_dl_ng/ui/main.ui41
4 files changed, 62 insertions, 21 deletions
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 @@
<property name="accessibleDescription">
<string notr="true"/>
</property>
- <layout class="QHBoxLayout" name="horizontalLayout" stretch="25,50,25">
+ <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,50,25">
<item>
<layout class="QVBoxLayout" name="lv_list_user">
<item>
@@ -160,17 +160,34 @@
</widget>
</item>
<item>
- <widget class="QPushButton" name="pb_reload_user_lists">
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="text">
- <string>Reload</string>
- </property>
- </widget>
+ <layout class="QHBoxLayout" name="lv_list_control">
+ <item>
+ <widget class="QPushButton" name="pb_reload_user_lists">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Reload</string>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pb_download_list">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="text">
+ <string>Download List</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
</item>
</layout>
</item>