summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/ui
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-03-29 12:32:11 +0100
committerRobert Honz <exislow+github@gmail.com>2024-03-29 12:32:11 +0100
commit9dd8f6c856cf39cc1d228e171c1c81ff1d6e4b2f (patch)
treeb70a573c4577deeaa0e3bc8a7774e3d444b8ad42 /tidal_dl_ng/ui
parenta53f63fbe9c8bbd6b46b9a631792a2a48d0d78e4 (diff)
parentead4b8a905820891161e4cbd81cab6e07b51a8f0 (diff)
downloadtidal-dl-ng-9dd8f6c856cf39cc1d228e171c1c81ff1d6e4b2f.tar.gz
Merge branch '71-feature-show-queued-downloads'
* 71-feature-show-queued-downloads: ✨ Lists can also be downloaded using the "Download List" button. 👌 Reduced network traffic for covers. ✨ Display cover in info area. ✨ Use `Album.image()` to get cover url. ✨ Software named explicitly. ✨ Info pane will be initialized correctly. ✨ Added info pane to GUI. # Conflicts: # tidal_dl_ng/gui.py
Diffstat (limited to 'tidal_dl_ng/ui')
-rw-r--r--tidal_dl_ng/ui/default_album_image.pngbin0 -> 4960 bytes
-rw-r--r--tidal_dl_ng/ui/main.py145
-rw-r--r--tidal_dl_ng/ui/main.ui895
3 files changed, 648 insertions, 392 deletions
diff --git a/tidal_dl_ng/ui/default_album_image.png b/tidal_dl_ng/ui/default_album_image.png
new file mode 100644
index 0000000..0ab51f1
--- /dev/null
+++ b/tidal_dl_ng/ui/default_album_image.png
Binary files differ
diff --git a/tidal_dl_ng/ui/main.py b/tidal_dl_ng/ui/main.py
index bd21113..f346b8d 100644
--- a/tidal_dl_ng/ui/main.py
+++ b/tidal_dl_ng/ui/main.py
@@ -7,13 +7,13 @@
################################################################################
from PySide6.QtCore import QCoreApplication, QLocale, QMetaObject, QRect, QSize, Qt
-from PySide6.QtGui import QAction
+from PySide6.QtGui import QAction, QFont, QPixmap
from PySide6.QtWidgets import (
QAbstractItemView,
QComboBox,
+ QFrame,
QHBoxLayout,
QLabel,
- QLayout,
QLineEdit,
QMenu,
QMenuBar,
@@ -21,6 +21,8 @@ from PySide6.QtWidgets import (
QPushButton,
QSizePolicy,
QStatusBar,
+ QTableWidget,
+ QTableWidgetItem,
QTreeWidget,
QTreeWidgetItem,
QVBoxLayout,
@@ -32,7 +34,7 @@ class Ui_MainWindow:
def setupUi(self, MainWindow):
if not MainWindow.objectName():
MainWindow.setObjectName("MainWindow")
- MainWindow.resize(900, 700)
+ MainWindow.resize(1200, 800)
self.a_preferences = QAction(MainWindow)
self.a_preferences.setObjectName("a_preferences")
self.a_preferences.setEnabled(True)
@@ -80,14 +82,11 @@ class Ui_MainWindow:
# endif // QT_CONFIG(accessibility)
self.horizontalLayout = QHBoxLayout(self.w_central)
self.horizontalLayout.setObjectName("horizontalLayout")
- self.lh_main = QHBoxLayout()
- self.lh_main.setObjectName("lh_main")
- self.lh_main.setSizeConstraint(QLayout.SetNoConstraint)
- self.verticalLayout = QVBoxLayout()
- self.verticalLayout.setObjectName("verticalLayout")
+ self.lv_list_user = QVBoxLayout()
+ self.lv_list_user.setObjectName("lv_list_user")
self.tr_lists_user = QTreeWidget(self.w_central)
__qtreewidgetitem = QTreeWidgetItem()
- __qtreewidgetitem.setText(1, "Info")
+ __qtreewidgetitem.setText(2, "Info")
__qtreewidgetitem.setText(0, "Name")
self.tr_lists_user.setHeaderItem(__qtreewidgetitem)
__qtreewidgetitem1 = QTreeWidgetItem(self.tr_lists_user)
@@ -121,8 +120,10 @@ class Ui_MainWindow:
self.tr_lists_user.header().setHighlightSections(True)
self.tr_lists_user.header().setProperty("showSortIndicator", True)
- self.verticalLayout.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.setObjectName("pb_reload_user_lists")
sizePolicy1 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
@@ -131,9 +132,18 @@ class Ui_MainWindow:
sizePolicy1.setHeightForWidth(self.pb_reload_user_lists.sizePolicy().hasHeightForWidth())
self.pb_reload_user_lists.setSizePolicy(sizePolicy1)
- self.verticalLayout.addWidget(self.pb_reload_user_lists)
+ self.lv_list_control.addWidget(self.pb_reload_user_lists)
- self.lh_main.addLayout(self.verticalLayout)
+ 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.lv_search_result = QVBoxLayout()
# ifndef Q_OS_MAC
@@ -377,17 +387,91 @@ class Ui_MainWindow:
self.lv_search_result.addWidget(self.te_debug)
- self.lh_main.addLayout(self.lv_search_result)
+ self.horizontalLayout.addLayout(self.lv_search_result)
+
+ self.lv_info = QVBoxLayout()
+ self.lv_info.setObjectName("lv_info")
+ self.lv_info_item = QVBoxLayout()
+ self.lv_info_item.setObjectName("lv_info_item")
+ self.horizontalLayout_2 = QHBoxLayout()
+ self.horizontalLayout_2.setObjectName("horizontalLayout_2")
+ self.l_pm_cover = QLabel(self.w_central)
+ self.l_pm_cover.setObjectName("l_pm_cover")
+ sizePolicy3 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
+ sizePolicy3.setHorizontalStretch(0)
+ sizePolicy3.setVerticalStretch(0)
+ sizePolicy3.setHeightForWidth(self.l_pm_cover.sizePolicy().hasHeightForWidth())
+ self.l_pm_cover.setSizePolicy(sizePolicy3)
+ 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("default_album_image.png"))
+ self.l_pm_cover.setScaledContents(True)
+ self.l_pm_cover.setAlignment(Qt.AlignHCenter | Qt.AlignTop)
+
+ self.horizontalLayout_2.addWidget(self.l_pm_cover)
+
+ self.lv_info_item.addLayout(self.horizontalLayout_2)
+
+ self.lv_info.addLayout(self.lv_info_item)
+
+ self.lv_queue_dl = QVBoxLayout()
+ self.lv_queue_dl.setObjectName("lv_queue_dl")
+ self.l_h_queue_dl = QLabel(self.w_central)
+ self.l_h_queue_dl.setObjectName("l_h_queue_dl")
+ font = QFont()
+ font.setBold(True)
+ font.setItalic(False)
+ font.setKerning(True)
+ self.l_h_queue_dl.setFont(font)
+
+ self.lv_queue_dl.addWidget(self.l_h_queue_dl)
+
+ self.ta_queue_dl = QTableWidget(self.w_central)
+ if self.ta_queue_dl.columnCount() < 5:
+ self.ta_queue_dl.setColumnCount(5)
+ __qtablewidgetitem = QTableWidgetItem()
+ __qtablewidgetitem.setTextAlignment(Qt.AlignLeading | Qt.AlignVCenter)
+ self.ta_queue_dl.setHorizontalHeaderItem(0, __qtablewidgetitem)
+ __qtablewidgetitem1 = QTableWidgetItem()
+ self.ta_queue_dl.setHorizontalHeaderItem(1, __qtablewidgetitem1)
+ __qtablewidgetitem2 = QTableWidgetItem()
+ __qtablewidgetitem2.setTextAlignment(Qt.AlignLeading | Qt.AlignVCenter)
+ self.ta_queue_dl.setHorizontalHeaderItem(2, __qtablewidgetitem2)
+ __qtablewidgetitem3 = QTableWidgetItem()
+ __qtablewidgetitem3.setTextAlignment(Qt.AlignLeading | Qt.AlignVCenter)
+ self.ta_queue_dl.setHorizontalHeaderItem(3, __qtablewidgetitem3)
+ __qtablewidgetitem4 = QTableWidgetItem()
+ __qtablewidgetitem4.setTextAlignment(Qt.AlignLeading | Qt.AlignVCenter)
+ self.ta_queue_dl.setHorizontalHeaderItem(4, __qtablewidgetitem4)
+ self.ta_queue_dl.setObjectName("ta_queue_dl")
+ self.ta_queue_dl.setEditTriggers(QAbstractItemView.NoEditTriggers)
+ self.ta_queue_dl.setTabKeyNavigation(False)
+ self.ta_queue_dl.setProperty("showDropIndicator", False)
+ self.ta_queue_dl.setDragDropOverwriteMode(False)
+ self.ta_queue_dl.setSelectionMode(QAbstractItemView.ExtendedSelection)
+ self.ta_queue_dl.setSelectionBehavior(QAbstractItemView.SelectRows)
+ self.ta_queue_dl.setSortingEnabled(True)
+ self.ta_queue_dl.verticalHeader().setProperty("showSortIndicator", True)
+
+ self.lv_queue_dl.addWidget(self.ta_queue_dl)
+
+ self.pb_queue_item_remove = QPushButton(self.w_central)
+ self.pb_queue_item_remove.setObjectName("pb_queue_item_remove")
+ self.pb_queue_item_remove.setEnabled(False)
+
+ self.lv_queue_dl.addWidget(self.pb_queue_item_remove)
- self.lh_main.setStretch(0, 40)
- self.lh_main.setStretch(1, 60)
+ self.lv_info.addLayout(self.lv_queue_dl)
- self.horizontalLayout.addLayout(self.lh_main)
+ self.horizontalLayout.addLayout(self.lv_info)
+ self.horizontalLayout.setStretch(1, 50)
+ self.horizontalLayout.setStretch(2, 25)
MainWindow.setCentralWidget(self.w_central)
self.menubar = QMenuBar(MainWindow)
self.menubar.setObjectName("menubar")
- self.menubar.setGeometry(QRect(0, 0, 900, 24))
+ self.menubar.setGeometry(QRect(0, 0, 1200, 24))
# if QT_CONFIG(tooltip)
self.menubar.setToolTip("")
# endif // QT_CONFIG(tooltip)
@@ -464,7 +548,7 @@ class Ui_MainWindow:
self.a_logout.setText(QCoreApplication.translate("MainWindow", "Logout", None))
self.a_updates_check.setText(QCoreApplication.translate("MainWindow", "Check for Updates", None))
___qtreewidgetitem = self.tr_lists_user.headerItem()
- ___qtreewidgetitem.setText(2, QCoreApplication.translate("MainWindow", "obj", None))
+ ___qtreewidgetitem.setText(1, QCoreApplication.translate("MainWindow", "obj", None))
__sortingEnabled = self.tr_lists_user.isSortingEnabled()
self.tr_lists_user.setSortingEnabled(False)
@@ -477,14 +561,29 @@ 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(5, QCoreApplication.translate("MainWindow", "obj", None))
- ___qtreewidgetitem4.setText(4, QCoreApplication.translate("MainWindow", "Duration", None))
- ___qtreewidgetitem4.setText(3, QCoreApplication.translate("MainWindow", "Album", None))
- ___qtreewidgetitem4.setText(2, QCoreApplication.translate("MainWindow", "Title", None))
- ___qtreewidgetitem4.setText(1, QCoreApplication.translate("MainWindow", "Artist", None))
+ ___qtreewidgetitem4.setText(6, QCoreApplication.translate("MainWindow", "Quality", None))
+ ___qtreewidgetitem4.setText(5, QCoreApplication.translate("MainWindow", "Duration", None))
+ ___qtreewidgetitem4.setText(4, QCoreApplication.translate("MainWindow", "Album", None))
+ ___qtreewidgetitem4.setText(3, QCoreApplication.translate("MainWindow", "Title", None))
+ ___qtreewidgetitem4.setText(2, QCoreApplication.translate("MainWindow", "Artist", None))
+ ___qtreewidgetitem4.setText(1, QCoreApplication.translate("MainWindow", "obj", None))
___qtreewidgetitem4.setText(0, QCoreApplication.translate("MainWindow", "#", None))
self.te_debug.setPlaceholderText(QCoreApplication.translate("MainWindow", "Logs...", None))
+ self.l_pm_cover.setText("")
+ self.l_h_queue_dl.setText(QCoreApplication.translate("MainWindow", "Download Queue", None))
+ ___qtablewidgetitem = self.ta_queue_dl.horizontalHeaderItem(0)
+ ___qtablewidgetitem.setText(QCoreApplication.translate("MainWindow", "#", None))
+ ___qtablewidgetitem1 = self.ta_queue_dl.horizontalHeaderItem(1)
+ ___qtablewidgetitem1.setText(QCoreApplication.translate("MainWindow", "obj", None))
+ ___qtablewidgetitem2 = self.ta_queue_dl.horizontalHeaderItem(2)
+ ___qtablewidgetitem2.setText(QCoreApplication.translate("MainWindow", "Name", None))
+ ___qtablewidgetitem3 = self.ta_queue_dl.horizontalHeaderItem(3)
+ ___qtablewidgetitem3.setText(QCoreApplication.translate("MainWindow", "Type", None))
+ ___qtablewidgetitem4 = self.ta_queue_dl.horizontalHeaderItem(4)
+ ___qtablewidgetitem4.setText(QCoreApplication.translate("MainWindow", "Quality", None))
+ self.pb_queue_item_remove.setText(QCoreApplication.translate("MainWindow", "Remove", None))
self.m_file.setTitle(QCoreApplication.translate("MainWindow", "File", None))
self.m_help.setTitle(QCoreApplication.translate("MainWindow", "Help", None))
diff --git a/tidal_dl_ng/ui/main.ui b/tidal_dl_ng/ui/main.ui
index 8bfe727..1e83207 100644
--- a/tidal_dl_ng/ui/main.ui
+++ b/tidal_dl_ng/ui/main.ui
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>900</width>
- <height>700</height>
+ <width>1200</width>
+ <height>800</height>
</rect>
</property>
<property name="windowTitle">
@@ -38,16 +38,171 @@
<property name="accessibleDescription">
<string notr="true"/>
</property>
- <layout class="QHBoxLayout" name="horizontalLayout">
+ <layout class="QHBoxLayout" name="horizontalLayout" stretch="0,50,25">
<item>
- <layout class="QHBoxLayout" name="lh_main" stretch="40,60">
- <property name="sizeConstraint">
- <enum>QLayout::SetNoConstraint</enum>
+ <layout class="QVBoxLayout" name="lv_list_user">
+ <item>
+ <widget class="QTreeWidget" name="tr_lists_user">
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="indentation">
+ <number>10</number>
+ </property>
+ <property name="uniformRowHeights">
+ <bool>true</bool>
+ </property>
+ <property name="sortingEnabled">
+ <bool>true</bool>
+ </property>
+ <attribute name="headerCascadingSectionResizes">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="headerHighlightSections">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="headerShowSortIndicator" stdset="0">
+ <bool>true</bool>
+ </attribute>
+ <column>
+ <property name="text">
+ <string notr="true">Name</string>
+ </property>
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>obj</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string notr="true">Info</string>
+ </property>
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ </column>
+ <item>
+ <property name="text">
+ <string>Playlists</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="flags">
+ <set>ItemIsEnabled</set>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Mixes</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="flags">
+ <set>ItemIsEnabled</set>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>Favorites</string>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="text">
+ <string/>
+ </property>
+ <property name="flags">
+ <set>ItemIsEnabled</set>
+ </property>
+ </item>
+ </widget>
+ </item>
+ <item>
+ <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>
+ <item>
+ <layout class="QVBoxLayout" name="lv_search_result" stretch="0,0,0,0">
+ <property name="spacing">
+ <number>-1</number>
</property>
<item>
- <layout class="QVBoxLayout" name="verticalLayout">
+ <layout class="QHBoxLayout" name="lh_search">
<item>
- <widget class="QTreeWidget" name="tr_lists_user">
+ <widget class="QLineEdit" name="l_search">
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
<property name="toolTip">
<string notr="true"/>
</property>
@@ -63,448 +218,450 @@
<property name="accessibleDescription">
<string notr="true"/>
</property>
- <property name="editTriggers">
- <set>QAbstractItemView::NoEditTriggers</set>
+ <property name="locale">
+ <locale language="English" country="UnitedStates"/>
</property>
- <property name="showDropIndicator" stdset="0">
- <bool>false</bool>
+ <property name="text">
+ <string notr="true"/>
</property>
- <property name="indentation">
- <number>10</number>
+ <property name="placeholderText">
+ <string notr="true">Type and press ENTER to search...</string>
</property>
- <property name="uniformRowHeights">
+ <property name="clearButtonEnabled">
<bool>true</bool>
</property>
- <property name="sortingEnabled">
- <bool>true</bool>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cb_search_type">
+ <property name="toolTip">
+ <string notr="true"/>
</property>
- <attribute name="headerCascadingSectionResizes">
- <bool>true</bool>
- </attribute>
- <attribute name="headerHighlightSections">
- <bool>true</bool>
- </attribute>
- <attribute name="headerShowSortIndicator" stdset="0">
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="currentText">
+ <string notr="true"/>
+ </property>
+ <property name="placeholderText">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pb_search">
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string notr="true">Search</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <widget class="QTreeWidget" name="tr_results">
+ <property name="editTriggers">
+ <set>QAbstractItemView::NoEditTriggers</set>
+ </property>
+ <property name="showDropIndicator" stdset="0">
+ <bool>false</bool>
+ </property>
+ <property name="dragDropOverwriteMode">
+ <bool>false</bool>
+ </property>
+ <property name="alternatingRowColors">
+ <bool>false</bool>
+ </property>
+ <property name="selectionMode">
+ <enum>QAbstractItemView::ExtendedSelection</enum>
+ </property>
+ <property name="indentation">
+ <number>10</number>
+ </property>
+ <property name="sortingEnabled">
+ <bool>true</bool>
+ </property>
+ <attribute name="headerShowSortIndicator" stdset="0">
+ <bool>true</bool>
+ </attribute>
+ <attribute name="headerStretchLastSection">
+ <bool>false</bool>
+ </attribute>
+ <column>
+ <property name="text">
+ <string>#</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>obj</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Artist</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Title</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Album</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Duration</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>Quality</string>
+ </property>
+ </column>
+ </widget>
+ </item>
+ <item>
+ <layout class="QHBoxLayout" name="lh_download" stretch="5,0,5,0,15">
+ <item>
+ <widget class="QLabel" name="l_quality_audio">
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string notr="true">Audio</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cb_quality_audio">
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="currentText">
+ <string notr="true"/>
+ </property>
+ <property name="placeholderText">
+ <string notr="true"/>
+ </property>
+ <property name="frame">
<bool>true</bool>
- </attribute>
- <column>
- <property name="text">
- <string notr="true">Name</string>
- </property>
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- </column>
- <column>
- <property name="text">
- <string notr="true">Info</string>
- </property>
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- </column>
- <column>
- <property name="text">
- <string>obj</string>
- </property>
- </column>
- <item>
- <property name="text">
- <string>Playlists</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="flags">
- <set>ItemIsEnabled</set>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Mixes</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="flags">
- <set>ItemIsEnabled</set>
- </property>
- </item>
- <item>
- <property name="text">
- <string>Favorites</string>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="text">
- <string/>
- </property>
- <property name="flags">
- <set>ItemIsEnabled</set>
- </property>
- </item>
+ </property>
</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>
+ <widget class="QLabel" name="l_quality_video">
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
</property>
<property name="text">
- <string>Reload</string>
+ <string notr="true">Video</string>
+ </property>
+ <property name="alignment">
+ <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QComboBox" name="cb_quality_video">
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="currentText">
+ <string notr="true"/>
+ </property>
+ <property name="placeholderText">
+ <string notr="true"/>
+ </property>
+ </widget>
+ </item>
+ <item>
+ <widget class="QPushButton" name="pb_download">
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="text">
+ <string notr="true">Download</string>
+ </property>
+ <property name="shortcut">
+ <string notr="true"/>
</property>
</widget>
</item>
</layout>
</item>
<item>
- <layout class="QVBoxLayout" name="lv_search_result" stretch="0,0,0,0">
- <property name="spacing">
- <number>-1</number>
+ <widget class="QPlainTextEdit" name="te_debug">
+ <property name="enabled">
+ <bool>true</bool>
+ </property>
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
+ </property>
+ <property name="maximumSize">
+ <size>
+ <width>16777215</width>
+ <height>16777215</height>
+ </size>
+ </property>
+ <property name="acceptDrops">
+ <bool>false</bool>
+ </property>
+ <property name="toolTip">
+ <string notr="true"/>
+ </property>
+ <property name="statusTip">
+ <string notr="true"/>
+ </property>
+ <property name="whatsThis">
+ <string notr="true"/>
</property>
+ <property name="accessibleName">
+ <string notr="true"/>
+ </property>
+ <property name="accessibleDescription">
+ <string notr="true"/>
+ </property>
+ <property name="undoRedoEnabled">
+ <bool>false</bool>
+ </property>
+ <property name="readOnly">
+ <bool>true</bool>
+ </property>
+ <property name="placeholderText">
+ <string>Logs...</string>
+ </property>
+ </widget>
+ </item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="lv_info">
+ <item>
+ <layout class="QVBoxLayout" name="lv_info_item">
<item>
- <layout class="QHBoxLayout" name="lh_search">
+ <layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
- <widget class="QLineEdit" name="l_search">
- <property name="acceptDrops">
- <bool>false</bool>
- </property>
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
+ <widget class="QLabel" name="l_pm_cover">
+ <property name="sizePolicy">
+ <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
+ <horstretch>0</horstretch>
+ <verstretch>0</verstretch>
+ </sizepolicy>
</property>
- <property name="accessibleName">
- <string notr="true"/>
+ <property name="maximumSize">
+ <size>
+ <width>280</width>
+ <height>280</height>
+ </size>
</property>
- <property name="accessibleDescription">
- <string notr="true"/>
+ <property name="baseSize">
+ <size>
+ <width>0</width>
+ <height>0</height>
+ </size>
</property>
- <property name="locale">
- <locale language="English" country="UnitedStates"/>
+ <property name="frameShape">
+ <enum>QFrame::NoFrame</enum>
</property>
<property name="text">
- <string notr="true"/>
+ <string/>
</property>
- <property name="placeholderText">
- <string notr="true">Type and press ENTER to search...</string>
+ <property name="pixmap">
+ <pixmap>default_album_image.png</pixmap>
</property>
- <property name="clearButtonEnabled">
+ <property name="scaledContents">
<bool>true</bool>
</property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="cb_search_type">
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="currentText">
- <string notr="true"/>
- </property>
- <property name="placeholderText">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pb_search">
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="text">
- <string notr="true">Search</string>
- </property>
- <property name="shortcut">
- <string notr="true"/>
+ <property name="alignment">
+ <set>Qt::AlignHCenter|Qt::AlignTop</set>
</property>
</widget>
</item>
</layout>
</item>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="lv_queue_dl">
+ <item>
+ <widget class="QLabel" name="l_h_queue_dl">
+ <property name="font">
+ <font>
+ <italic>false</italic>
+ <bold>true</bold>
+ <kerning>true</kerning>
+ </font>
+ </property>
+ <property name="text">
+ <string>Download Queue</string>
+ </property>
+ </widget>
+ </item>
<item>
- <widget class="QTreeWidget" name="tr_results">
+ <widget class="QTableWidget" name="ta_queue_dl">
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
- <property name="showDropIndicator" stdset="0">
+ <property name="tabKeyNavigation">
<bool>false</bool>
</property>
- <property name="dragDropOverwriteMode">
+ <property name="showDropIndicator" stdset="0">
<bool>false</bool>
</property>
- <property name="alternatingRowColors">
+ <property name="dragDropOverwriteMode">
<bool>false</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::ExtendedSelection</enum>
</property>
- <property name="indentation">
- <number>10</number>
+ <property name="selectionBehavior">
+ <enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
- <attribute name="headerShowSortIndicator" stdset="0">
+ <attribute name="verticalHeaderShowSortIndicator" stdset="0">
<bool>true</bool>
</attribute>
- <attribute name="headerStretchLastSection">
- <bool>false</bool>
- </attribute>
<column>
<property name="text">
<string>#</string>
</property>
- </column>
- <column>
- <property name="text">
- <string>Artist</string>
+ <property name="textAlignment">
+ <set>AlignLeading|AlignVCenter</set>
</property>
</column>
<column>
<property name="text">
- <string>Title</string>
+ <string>obj</string>
</property>
</column>
<column>
<property name="text">
- <string>Album</string>
+ <string>Name</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignLeading|AlignVCenter</set>
</property>
</column>
<column>
<property name="text">
- <string>Duration</string>
+ <string>Type</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignLeading|AlignVCenter</set>
</property>
</column>
<column>
<property name="text">
- <string>obj</string>
+ <string>Quality</string>
+ </property>
+ <property name="textAlignment">
+ <set>AlignLeading|AlignVCenter</set>
</property>
</column>
</widget>
</item>
<item>
- <layout class="QHBoxLayout" name="lh_download" stretch="5,0,5,0,15">
- <item>
- <widget class="QLabel" name="l_quality_audio">
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="text">
- <string notr="true">Audio</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="cb_quality_audio">
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="currentText">
- <string notr="true"/>
- </property>
- <property name="placeholderText">
- <string notr="true"/>
- </property>
- <property name="frame">
- <bool>true</bool>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QLabel" name="l_quality_video">
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="text">
- <string notr="true">Video</string>
- </property>
- <property name="alignment">
- <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QComboBox" name="cb_quality_video">
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="currentText">
- <string notr="true"/>
- </property>
- <property name="placeholderText">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- <item>
- <widget class="QPushButton" name="pb_download">
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="text">
- <string notr="true">Download</string>
- </property>
- <property name="shortcut">
- <string notr="true"/>
- </property>
- </widget>
- </item>
- </layout>
- </item>
- <item>
- <widget class="QPlainTextEdit" name="te_debug">
+ <widget class="QPushButton" name="pb_queue_item_remove">
<property name="enabled">
- <bool>true</bool>
- </property>
- <property name="sizePolicy">
- <sizepolicy hsizetype="Expanding" vsizetype="Maximum">
- <horstretch>0</horstretch>
- <verstretch>0</verstretch>
- </sizepolicy>
- </property>
- <property name="maximumSize">
- <size>
- <width>16777215</width>
- <height>16777215</height>
- </size>
- </property>
- <property name="acceptDrops">
- <bool>false</bool>
- </property>
- <property name="toolTip">
- <string notr="true"/>
- </property>
- <property name="statusTip">
- <string notr="true"/>
- </property>
- <property name="whatsThis">
- <string notr="true"/>
- </property>
- <property name="accessibleName">
- <string notr="true"/>
- </property>
- <property name="accessibleDescription">
- <string notr="true"/>
- </property>
- <property name="undoRedoEnabled">
<bool>false</bool>
</property>
- <property name="readOnly">
- <bool>true</bool>
- </property>
- <property name="placeholderText">
- <string>Logs...</string>
+ <property name="text">
+ <string>Remove</string>
</property>
</widget>
</item>
@@ -519,7 +676,7 @@
<rect>
<x>0</x>
<y>0</y>
- <width>900</width>
+ <width>1200</width>
<height>24</height>
</rect>
</property>