✨ Lists can also be downloaded using the "Download List" button.
This commit is contained in:
@@ -324,7 +324,7 @@ class Download:
|
|||||||
totaltrack=track.album.num_tracks if track.album and track.album.num_tracks else 1,
|
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,
|
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,
|
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()
|
m.save()
|
||||||
|
|||||||
+18
-5
@@ -7,7 +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.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.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,
|
||||||
@@ -299,14 +299,26 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
self.thread_it(self.on_download_list_media, point)
|
self.thread_it(self.on_download_list_media, point)
|
||||||
self.thread_it(self.list_items_show_result, point=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.setEnabled(False)
|
||||||
self.pb_download.setText("Downloading...")
|
self.pb_download.setText("Downloading...")
|
||||||
|
|
||||||
item = self.tr_lists_user.itemAt(point)
|
item: QtWidgets.QTreeWidgetItem
|
||||||
media = item.data(3, QtCore.Qt.ItemDataRole.UserRole)
|
|
||||||
|
|
||||||
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.setText("Download")
|
||||||
self.pb_download.setEnabled(True)
|
self.pb_download.setEnabled(True)
|
||||||
@@ -476,6 +488,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
|
|||||||
|
|
||||||
def _init_signals(self):
|
def _init_signals(self):
|
||||||
self.pb_download.clicked.connect(lambda: self.thread_it(self.on_download_results))
|
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(
|
self.l_search.returnPressed.connect(
|
||||||
lambda: self.search_populate_results(self.l_search.text(), self.cb_search_type.currentData())
|
lambda: self.search_populate_results(self.l_search.text(), self.cb_search_type.currentData())
|
||||||
)
|
)
|
||||||
|
|||||||
+14
-3
@@ -120,6 +120,8 @@ class Ui_MainWindow:
|
|||||||
|
|
||||||
self.lv_list_user.addWidget(self.tr_lists_user)
|
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 = QPushButton(self.w_central)
|
||||||
self.pb_reload_user_lists.setObjectName("pb_reload_user_lists")
|
self.pb_reload_user_lists.setObjectName("pb_reload_user_lists")
|
||||||
sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
|
sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
|
||||||
@@ -128,7 +130,16 @@ class Ui_MainWindow:
|
|||||||
sizePolicy1.setHeightForWidth(self.pb_reload_user_lists.sizePolicy().hasHeightForWidth())
|
sizePolicy1.setHeightForWidth(self.pb_reload_user_lists.sizePolicy().hasHeightForWidth())
|
||||||
self.pb_reload_user_lists.setSizePolicy(sizePolicy1)
|
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)
|
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.setMaximumSize(QSize(280, 280))
|
||||||
self.l_pm_cover.setBaseSize(QSize(0, 0))
|
self.l_pm_cover.setBaseSize(QSize(0, 0))
|
||||||
self.l_pm_cover.setFrameShape(QFrame.NoFrame)
|
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.setScaledContents(True)
|
||||||
self.l_pm_cover.setAlignment(Qt.AlignHCenter | Qt.AlignTop)
|
self.l_pm_cover.setAlignment(Qt.AlignHCenter | Qt.AlignTop)
|
||||||
|
|
||||||
@@ -453,7 +464,6 @@ class Ui_MainWindow:
|
|||||||
|
|
||||||
self.horizontalLayout.addLayout(self.lv_info)
|
self.horizontalLayout.addLayout(self.lv_info)
|
||||||
|
|
||||||
self.horizontalLayout.setStretch(0, 25)
|
|
||||||
self.horizontalLayout.setStretch(1, 50)
|
self.horizontalLayout.setStretch(1, 50)
|
||||||
self.horizontalLayout.setStretch(2, 25)
|
self.horizontalLayout.setStretch(2, 25)
|
||||||
MainWindow.setCentralWidget(self.w_central)
|
MainWindow.setCentralWidget(self.w_central)
|
||||||
@@ -544,6 +554,7 @@ class Ui_MainWindow:
|
|||||||
self.tr_lists_user.setSortingEnabled(__sortingEnabled)
|
self.tr_lists_user.setSortingEnabled(__sortingEnabled)
|
||||||
|
|
||||||
self.pb_reload_user_lists.setText(QCoreApplication.translate("MainWindow", "Reload", None))
|
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 = self.tr_results.headerItem()
|
||||||
___qtreewidgetitem4.setText(6, QCoreApplication.translate("MainWindow", "Quality", None))
|
___qtreewidgetitem4.setText(6, QCoreApplication.translate("MainWindow", "Quality", None))
|
||||||
___qtreewidgetitem4.setText(5, QCoreApplication.translate("MainWindow", "Duration", None))
|
___qtreewidgetitem4.setText(5, QCoreApplication.translate("MainWindow", "Duration", None))
|
||||||
|
|||||||
+29
-12
@@ -38,7 +38,7 @@
|
|||||||
<property name="accessibleDescription">
|
<property name="accessibleDescription">
|
||||||
<string notr="true"/>
|
<string notr="true"/>
|
||||||
</property>
|
</property>
|
||||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="25,50,25">
|
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,50,25">
|
||||||
<item>
|
<item>
|
||||||
<layout class="QVBoxLayout" name="lv_list_user">
|
<layout class="QVBoxLayout" name="lv_list_user">
|
||||||
<item>
|
<item>
|
||||||
@@ -160,17 +160,34 @@
|
|||||||
</widget>
|
</widget>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QPushButton" name="pb_reload_user_lists">
|
<layout class="QHBoxLayout" name="lv_list_control">
|
||||||
<property name="sizePolicy">
|
<item>
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
<widget class="QPushButton" name="pb_reload_user_lists">
|
||||||
<horstretch>0</horstretch>
|
<property name="sizePolicy">
|
||||||
<verstretch>0</verstretch>
|
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||||
</sizepolicy>
|
<horstretch>0</horstretch>
|
||||||
</property>
|
<verstretch>0</verstretch>
|
||||||
<property name="text">
|
</sizepolicy>
|
||||||
<string>Reload</string>
|
</property>
|
||||||
</property>
|
<property name="text">
|
||||||
</widget>
|
<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>
|
</item>
|
||||||
</layout>
|
</layout>
|
||||||
</item>
|
</item>
|
||||||
|
|||||||
Reference in New Issue
Block a user