test
This commit is contained in:
0
tidal_dl_ng/ui/__init__.py
Normal file
0
tidal_dl_ng/ui/__init__.py
Normal file
BIN
tidal_dl_ng/ui/default_album_image.png
Normal file
BIN
tidal_dl_ng/ui/default_album_image.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 4.8 KiB |
119
tidal_dl_ng/ui/dialog_login.py
Normal file
119
tidal_dl_ng/ui/dialog_login.py
Normal file
@ -0,0 +1,119 @@
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'dialog_login.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.8.0
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import QCoreApplication, QMetaObject, QRect, Qt
|
||||
from PySide6.QtGui import QFont
|
||||
from PySide6.QtWidgets import QDialogButtonBox, QHBoxLayout, QLabel, QSizePolicy, QTextBrowser, QVBoxLayout, QWidget
|
||||
|
||||
|
||||
class Ui_DialogLogin:
|
||||
def setupUi(self, DialogLogin):
|
||||
if not DialogLogin.objectName():
|
||||
DialogLogin.setObjectName("DialogLogin")
|
||||
DialogLogin.resize(451, 400)
|
||||
sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(DialogLogin.sizePolicy().hasHeightForWidth())
|
||||
DialogLogin.setSizePolicy(sizePolicy)
|
||||
self.bb_dialog = QDialogButtonBox(DialogLogin)
|
||||
self.bb_dialog.setObjectName("bb_dialog")
|
||||
self.bb_dialog.setGeometry(QRect(20, 350, 411, 32))
|
||||
sizePolicy.setHeightForWidth(self.bb_dialog.sizePolicy().hasHeightForWidth())
|
||||
self.bb_dialog.setSizePolicy(sizePolicy)
|
||||
self.bb_dialog.setLayoutDirection(Qt.LayoutDirection.LeftToRight)
|
||||
self.bb_dialog.setStyleSheet("")
|
||||
self.bb_dialog.setOrientation(Qt.Orientation.Horizontal)
|
||||
self.bb_dialog.setStandardButtons(QDialogButtonBox.StandardButton.Cancel | QDialogButtonBox.StandardButton.Ok)
|
||||
self.verticalLayoutWidget = QWidget(DialogLogin)
|
||||
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
|
||||
self.verticalLayoutWidget.setGeometry(QRect(20, 20, 411, 325))
|
||||
self.lv_main = QVBoxLayout(self.verticalLayoutWidget)
|
||||
self.lv_main.setObjectName("lv_main")
|
||||
self.lv_main.setContentsMargins(0, 0, 0, 0)
|
||||
self.l_header = QLabel(self.verticalLayoutWidget)
|
||||
self.l_header.setObjectName("l_header")
|
||||
sizePolicy.setHeightForWidth(self.l_header.sizePolicy().hasHeightForWidth())
|
||||
self.l_header.setSizePolicy(sizePolicy)
|
||||
font = QFont()
|
||||
font.setPointSize(23)
|
||||
font.setBold(True)
|
||||
self.l_header.setFont(font)
|
||||
|
||||
self.lv_main.addWidget(self.l_header)
|
||||
|
||||
self.l_description = QLabel(self.verticalLayoutWidget)
|
||||
self.l_description.setObjectName("l_description")
|
||||
sizePolicy.setHeightForWidth(self.l_description.sizePolicy().hasHeightForWidth())
|
||||
self.l_description.setSizePolicy(sizePolicy)
|
||||
font1 = QFont()
|
||||
font1.setItalic(True)
|
||||
self.l_description.setFont(font1)
|
||||
self.l_description.setWordWrap(True)
|
||||
|
||||
self.lv_main.addWidget(self.l_description)
|
||||
|
||||
self.tb_url_login = QTextBrowser(self.verticalLayoutWidget)
|
||||
self.tb_url_login.setObjectName("tb_url_login")
|
||||
self.tb_url_login.setOpenExternalLinks(True)
|
||||
|
||||
self.lv_main.addWidget(self.tb_url_login)
|
||||
|
||||
self.horizontalLayout = QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.l_expires_description = QLabel(self.verticalLayoutWidget)
|
||||
self.l_expires_description.setObjectName("l_expires_description")
|
||||
|
||||
self.horizontalLayout.addWidget(self.l_expires_description)
|
||||
|
||||
self.l_expires_date_time = QLabel(self.verticalLayoutWidget)
|
||||
self.l_expires_date_time.setObjectName("l_expires_date_time")
|
||||
font2 = QFont()
|
||||
font2.setBold(True)
|
||||
self.l_expires_date_time.setFont(font2)
|
||||
self.l_expires_date_time.setAlignment(
|
||||
Qt.AlignmentFlag.AlignRight | Qt.AlignmentFlag.AlignTrailing | Qt.AlignmentFlag.AlignVCenter
|
||||
)
|
||||
|
||||
self.horizontalLayout.addWidget(self.l_expires_date_time)
|
||||
|
||||
self.lv_main.addLayout(self.horizontalLayout)
|
||||
|
||||
self.l_hint = QLabel(self.verticalLayoutWidget)
|
||||
self.l_hint.setObjectName("l_hint")
|
||||
sizePolicy.setHeightForWidth(self.l_hint.sizePolicy().hasHeightForWidth())
|
||||
self.l_hint.setSizePolicy(sizePolicy)
|
||||
self.l_hint.setFont(font1)
|
||||
self.l_hint.setWordWrap(True)
|
||||
|
||||
self.lv_main.addWidget(self.l_hint)
|
||||
|
||||
self.retranslateUi(DialogLogin)
|
||||
self.bb_dialog.accepted.connect(DialogLogin.accept)
|
||||
self.bb_dialog.rejected.connect(DialogLogin.reject)
|
||||
|
||||
QMetaObject.connectSlotsByName(DialogLogin)
|
||||
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, DialogLogin):
|
||||
DialogLogin.setWindowTitle(QCoreApplication.translate("DialogLogin", "Dialog", None))
|
||||
self.l_header.setText(QCoreApplication.translate("DialogLogin", "TIDAL Login (as Device)", None))
|
||||
self.l_description.setText(
|
||||
QCoreApplication.translate(
|
||||
"DialogLogin",
|
||||
"Click the link below and login with your TIDAL credentials. TIDAL will ask you, if you like to add this app as a new device. You need to confirm this.",
|
||||
None,
|
||||
)
|
||||
)
|
||||
self.tb_url_login.setPlaceholderText(QCoreApplication.translate("DialogLogin", "Copy this login URL...", None))
|
||||
self.l_expires_description.setText(QCoreApplication.translate("DialogLogin", "This link expires at:", None))
|
||||
self.l_expires_date_time.setText(QCoreApplication.translate("DialogLogin", "COMPUTING", None))
|
||||
self.l_hint.setText(QCoreApplication.translate("DialogLogin", "Waiting...", None))
|
||||
|
||||
# retranslateUi
|
195
tidal_dl_ng/ui/dialog_login.ui
Normal file
195
tidal_dl_ng/ui/dialog_login.ui
Normal file
@ -0,0 +1,195 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogLogin</class>
|
||||
<widget class="QDialog" name="DialogLogin">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>451</width>
|
||||
<height>400</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Dialog</string>
|
||||
</property>
|
||||
<widget class="QDialogButtonBox" name="bb_dialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>350</y>
|
||||
<width>411</width>
|
||||
<height>32</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="layoutDirection">
|
||||
<enum>Qt::LayoutDirection::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="styleSheet">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
<widget class="QWidget" name="verticalLayoutWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>20</x>
|
||||
<y>20</y>
|
||||
<width>411</width>
|
||||
<height>325</height>
|
||||
</rect>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="lv_main">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_header">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<pointsize>23</pointsize>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TIDAL Login (as Device)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_description">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Click the link below and login with your TIDAL credentials. TIDAL will ask you, if you like to add this app as a new device. You need to confirm this.</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="tb_url_login">
|
||||
<property name="placeholderText">
|
||||
<string>Copy this login URL...</string>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_expires_description">
|
||||
<property name="text">
|
||||
<string>This link expires at:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_expires_date_time">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>COMPUTING</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignmentFlag::AlignRight|Qt::AlignmentFlag::AlignTrailing|Qt::AlignmentFlag::AlignVCenter</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_hint">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Waiting...</string>
|
||||
</property>
|
||||
<property name="wordWrap">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>bb_dialog</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DialogLogin</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>248</x>
|
||||
<y>254</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>157</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>bb_dialog</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>DialogLogin</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>316</x>
|
||||
<y>260</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>286</x>
|
||||
<y>274</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
631
tidal_dl_ng/ui/dialog_settings.py
Normal file
631
tidal_dl_ng/ui/dialog_settings.py
Normal file
@ -0,0 +1,631 @@
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'dialog_settings.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.8.1
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import QCoreApplication, QMetaObject, Qt
|
||||
from PySide6.QtWidgets import (
|
||||
QCheckBox,
|
||||
QComboBox,
|
||||
QDialogButtonBox,
|
||||
QGroupBox,
|
||||
QHBoxLayout,
|
||||
QLabel,
|
||||
QLayout,
|
||||
QLineEdit,
|
||||
QPushButton,
|
||||
QSizePolicy,
|
||||
QSpinBox,
|
||||
QVBoxLayout,
|
||||
)
|
||||
|
||||
|
||||
class Ui_DialogSettings:
|
||||
def setupUi(self, DialogSettings):
|
||||
if not DialogSettings.objectName():
|
||||
DialogSettings.setObjectName("DialogSettings")
|
||||
DialogSettings.resize(640, 800)
|
||||
sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(100)
|
||||
sizePolicy.setVerticalStretch(100)
|
||||
sizePolicy.setHeightForWidth(DialogSettings.sizePolicy().hasHeightForWidth())
|
||||
DialogSettings.setSizePolicy(sizePolicy)
|
||||
DialogSettings.setSizeGripEnabled(True)
|
||||
self.lv_dialog_settings = QVBoxLayout(DialogSettings)
|
||||
self.lv_dialog_settings.setObjectName("lv_dialog_settings")
|
||||
self.lv_dialog_settings.setContentsMargins(0, 0, 0, 0)
|
||||
self.lv_main = QVBoxLayout()
|
||||
self.lv_main.setObjectName("lv_main")
|
||||
self.lv_main.setContentsMargins(12, 12, 12, 12)
|
||||
self.gb_flags = QGroupBox(DialogSettings)
|
||||
self.gb_flags.setObjectName("gb_flags")
|
||||
sizePolicy1 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy1.setHorizontalStretch(100)
|
||||
sizePolicy1.setVerticalStretch(100)
|
||||
sizePolicy1.setHeightForWidth(self.gb_flags.sizePolicy().hasHeightForWidth())
|
||||
self.gb_flags.setSizePolicy(sizePolicy1)
|
||||
self.gb_flags.setFlat(False)
|
||||
self.gb_flags.setCheckable(False)
|
||||
self.lv_flags = QVBoxLayout(self.gb_flags)
|
||||
self.lv_flags.setObjectName("lv_flags")
|
||||
self.lh_flags_1 = QHBoxLayout()
|
||||
self.lh_flags_1.setObjectName("lh_flags_1")
|
||||
self.lv_flag_video_download = QVBoxLayout()
|
||||
self.lv_flag_video_download.setObjectName("lv_flag_video_download")
|
||||
self.cb_video_download = QCheckBox(self.gb_flags)
|
||||
self.cb_video_download.setObjectName("cb_video_download")
|
||||
sizePolicy1.setHeightForWidth(self.cb_video_download.sizePolicy().hasHeightForWidth())
|
||||
self.cb_video_download.setSizePolicy(sizePolicy1)
|
||||
|
||||
self.lv_flag_video_download.addWidget(self.cb_video_download)
|
||||
|
||||
self.lh_flags_1.addLayout(self.lv_flag_video_download)
|
||||
|
||||
self.lv_flag_video_convert = QVBoxLayout()
|
||||
self.lv_flag_video_convert.setObjectName("lv_flag_video_convert")
|
||||
self.cb_video_convert_mp4 = QCheckBox(self.gb_flags)
|
||||
self.cb_video_convert_mp4.setObjectName("cb_video_convert_mp4")
|
||||
sizePolicy1.setHeightForWidth(self.cb_video_convert_mp4.sizePolicy().hasHeightForWidth())
|
||||
self.cb_video_convert_mp4.setSizePolicy(sizePolicy1)
|
||||
|
||||
self.lv_flag_video_convert.addWidget(self.cb_video_convert_mp4)
|
||||
|
||||
self.lh_flags_1.addLayout(self.lv_flag_video_convert)
|
||||
|
||||
self.lv_flags.addLayout(self.lh_flags_1)
|
||||
|
||||
self.lh_flags_2 = QHBoxLayout()
|
||||
self.lh_flags_2.setObjectName("lh_flags_2")
|
||||
self.lv_flag_lyrics_embed = QVBoxLayout()
|
||||
self.lv_flag_lyrics_embed.setObjectName("lv_flag_lyrics_embed")
|
||||
self.cb_lyrics_embed = QCheckBox(self.gb_flags)
|
||||
self.cb_lyrics_embed.setObjectName("cb_lyrics_embed")
|
||||
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy2.setHorizontalStretch(0)
|
||||
sizePolicy2.setVerticalStretch(0)
|
||||
sizePolicy2.setHeightForWidth(self.cb_lyrics_embed.sizePolicy().hasHeightForWidth())
|
||||
self.cb_lyrics_embed.setSizePolicy(sizePolicy2)
|
||||
|
||||
self.lv_flag_lyrics_embed.addWidget(self.cb_lyrics_embed)
|
||||
|
||||
self.lh_flags_2.addLayout(self.lv_flag_lyrics_embed)
|
||||
|
||||
self.lv_flag_lyrics_file = QVBoxLayout()
|
||||
self.lv_flag_lyrics_file.setObjectName("lv_flag_lyrics_file")
|
||||
self.cb_lyrics_file = QCheckBox(self.gb_flags)
|
||||
self.cb_lyrics_file.setObjectName("cb_lyrics_file")
|
||||
sizePolicy1.setHeightForWidth(self.cb_lyrics_file.sizePolicy().hasHeightForWidth())
|
||||
self.cb_lyrics_file.setSizePolicy(sizePolicy1)
|
||||
|
||||
self.lv_flag_lyrics_file.addWidget(self.cb_lyrics_file)
|
||||
|
||||
self.lh_flags_2.addLayout(self.lv_flag_lyrics_file)
|
||||
|
||||
self.lv_flags.addLayout(self.lh_flags_2)
|
||||
|
||||
self.lh_flag_3 = QHBoxLayout()
|
||||
self.lh_flag_3.setObjectName("lh_flag_3")
|
||||
self.lv_flag_download_delay = QVBoxLayout()
|
||||
self.lv_flag_download_delay.setObjectName("lv_flag_download_delay")
|
||||
self.cb_download_delay = QCheckBox(self.gb_flags)
|
||||
self.cb_download_delay.setObjectName("cb_download_delay")
|
||||
sizePolicy1.setHeightForWidth(self.cb_download_delay.sizePolicy().hasHeightForWidth())
|
||||
self.cb_download_delay.setSizePolicy(sizePolicy1)
|
||||
|
||||
self.lv_flag_download_delay.addWidget(self.cb_download_delay)
|
||||
|
||||
self.lh_flag_3.addLayout(self.lv_flag_download_delay)
|
||||
|
||||
self.lv_flag_extract_flac = QVBoxLayout()
|
||||
self.lv_flag_extract_flac.setObjectName("lv_flag_extract_flac")
|
||||
self.cb_extract_flac = QCheckBox(self.gb_flags)
|
||||
self.cb_extract_flac.setObjectName("cb_extract_flac")
|
||||
sizePolicy2.setHeightForWidth(self.cb_extract_flac.sizePolicy().hasHeightForWidth())
|
||||
self.cb_extract_flac.setSizePolicy(sizePolicy2)
|
||||
|
||||
self.lv_flag_extract_flac.addWidget(self.cb_extract_flac)
|
||||
|
||||
self.lh_flag_3.addLayout(self.lv_flag_extract_flac)
|
||||
|
||||
self.lv_flags.addLayout(self.lh_flag_3)
|
||||
|
||||
self.lh_flags_4 = QHBoxLayout()
|
||||
self.lh_flags_4.setObjectName("lh_flags_4")
|
||||
self.lv_flag_metadata_cover_embed = QVBoxLayout()
|
||||
self.lv_flag_metadata_cover_embed.setObjectName("lv_flag_metadata_cover_embed")
|
||||
self.cb_metadata_cover_embed = QCheckBox(self.gb_flags)
|
||||
self.cb_metadata_cover_embed.setObjectName("cb_metadata_cover_embed")
|
||||
|
||||
self.lv_flag_metadata_cover_embed.addWidget(self.cb_metadata_cover_embed)
|
||||
|
||||
self.lh_flags_4.addLayout(self.lv_flag_metadata_cover_embed)
|
||||
|
||||
self.lv_flag_cover_album_file = QVBoxLayout()
|
||||
self.lv_flag_cover_album_file.setObjectName("lv_flag_cover_album_file")
|
||||
self.cb_cover_album_file = QCheckBox(self.gb_flags)
|
||||
self.cb_cover_album_file.setObjectName("cb_cover_album_file")
|
||||
|
||||
self.lv_flag_cover_album_file.addWidget(self.cb_cover_album_file)
|
||||
|
||||
self.lh_flags_4.addLayout(self.lv_flag_cover_album_file)
|
||||
|
||||
self.lv_flags.addLayout(self.lh_flags_4)
|
||||
|
||||
self.horizontalLayout = QHBoxLayout()
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
self.lv_flag_skip_existing = QVBoxLayout()
|
||||
self.lv_flag_skip_existing.setObjectName("lv_flag_skip_existing")
|
||||
self.cb_skip_existing = QCheckBox(self.gb_flags)
|
||||
self.cb_skip_existing.setObjectName("cb_skip_existing")
|
||||
|
||||
self.lv_flag_skip_existing.addWidget(self.cb_skip_existing)
|
||||
|
||||
self.horizontalLayout.addLayout(self.lv_flag_skip_existing)
|
||||
|
||||
self.lv_symlink_to_track = QVBoxLayout()
|
||||
self.lv_symlink_to_track.setObjectName("lv_symlink_to_track")
|
||||
self.cb_symlink_to_track = QCheckBox(self.gb_flags)
|
||||
self.cb_symlink_to_track.setObjectName("cb_symlink_to_track")
|
||||
|
||||
self.lv_symlink_to_track.addWidget(self.cb_symlink_to_track)
|
||||
|
||||
self.horizontalLayout.addLayout(self.lv_symlink_to_track)
|
||||
|
||||
self.lv_flags.addLayout(self.horizontalLayout)
|
||||
|
||||
self.horizontalLayout_12 = QHBoxLayout()
|
||||
self.horizontalLayout_12.setObjectName("horizontalLayout_12")
|
||||
self.lv_playlist_create = QVBoxLayout()
|
||||
self.lv_playlist_create.setObjectName("lv_playlist_create")
|
||||
self.cb_playlist_create = QCheckBox(self.gb_flags)
|
||||
self.cb_playlist_create.setObjectName("cb_playlist_create")
|
||||
|
||||
self.lv_playlist_create.addWidget(self.cb_playlist_create)
|
||||
|
||||
self.horizontalLayout_12.addLayout(self.lv_playlist_create)
|
||||
|
||||
self.verticalLayout_4 = QVBoxLayout()
|
||||
self.verticalLayout_4.setObjectName("verticalLayout_4")
|
||||
|
||||
self.horizontalLayout_12.addLayout(self.verticalLayout_4)
|
||||
|
||||
self.lv_flags.addLayout(self.horizontalLayout_12)
|
||||
|
||||
self.lv_main.addWidget(self.gb_flags)
|
||||
|
||||
self.gb_choices = QGroupBox(DialogSettings)
|
||||
self.gb_choices.setObjectName("gb_choices")
|
||||
sizePolicy3 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy3.setHorizontalStretch(0)
|
||||
sizePolicy3.setVerticalStretch(0)
|
||||
sizePolicy3.setHeightForWidth(self.gb_choices.sizePolicy().hasHeightForWidth())
|
||||
self.gb_choices.setSizePolicy(sizePolicy3)
|
||||
self.lv_choices = QVBoxLayout(self.gb_choices)
|
||||
self.lv_choices.setObjectName("lv_choices")
|
||||
self.lh_choices_quality_audio = QHBoxLayout()
|
||||
self.lh_choices_quality_audio.setObjectName("lh_choices_quality_audio")
|
||||
self.l_icon_quality_audio = QLabel(self.gb_choices)
|
||||
self.l_icon_quality_audio.setObjectName("l_icon_quality_audio")
|
||||
sizePolicy4 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy4.setHorizontalStretch(0)
|
||||
sizePolicy4.setVerticalStretch(0)
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_quality_audio.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_quality_audio.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_choices_quality_audio.addWidget(self.l_icon_quality_audio)
|
||||
|
||||
self.l_quality_audio = QLabel(self.gb_choices)
|
||||
self.l_quality_audio.setObjectName("l_quality_audio")
|
||||
sizePolicy4.setHeightForWidth(self.l_quality_audio.sizePolicy().hasHeightForWidth())
|
||||
self.l_quality_audio.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_choices_quality_audio.addWidget(self.l_quality_audio)
|
||||
|
||||
self.c_quality_audio = QComboBox(self.gb_choices)
|
||||
self.c_quality_audio.setObjectName("c_quality_audio")
|
||||
|
||||
self.lh_choices_quality_audio.addWidget(self.c_quality_audio)
|
||||
|
||||
self.lh_choices_quality_audio.setStretch(2, 50)
|
||||
|
||||
self.lv_choices.addLayout(self.lh_choices_quality_audio)
|
||||
|
||||
self.lh_choices_quality_video = QHBoxLayout()
|
||||
self.lh_choices_quality_video.setObjectName("lh_choices_quality_video")
|
||||
self.l_icon_quality_video = QLabel(self.gb_choices)
|
||||
self.l_icon_quality_video.setObjectName("l_icon_quality_video")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_quality_video.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_quality_video.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_choices_quality_video.addWidget(self.l_icon_quality_video)
|
||||
|
||||
self.l_quality_video = QLabel(self.gb_choices)
|
||||
self.l_quality_video.setObjectName("l_quality_video")
|
||||
sizePolicy4.setHeightForWidth(self.l_quality_video.sizePolicy().hasHeightForWidth())
|
||||
self.l_quality_video.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_choices_quality_video.addWidget(self.l_quality_video)
|
||||
|
||||
self.c_quality_video = QComboBox(self.gb_choices)
|
||||
self.c_quality_video.setObjectName("c_quality_video")
|
||||
|
||||
self.lh_choices_quality_video.addWidget(self.c_quality_video)
|
||||
|
||||
self.lh_choices_quality_video.setStretch(2, 50)
|
||||
|
||||
self.lv_choices.addLayout(self.lh_choices_quality_video)
|
||||
|
||||
self.lh_choices_cover_dimension = QHBoxLayout()
|
||||
self.lh_choices_cover_dimension.setObjectName("lh_choices_cover_dimension")
|
||||
self.lh_choices_cover_dimension.setSizeConstraint(QLayout.SizeConstraint.SetDefaultConstraint)
|
||||
self.l_icon_metadata_cover_dimension = QLabel(self.gb_choices)
|
||||
self.l_icon_metadata_cover_dimension.setObjectName("l_icon_metadata_cover_dimension")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_metadata_cover_dimension.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_metadata_cover_dimension.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_choices_cover_dimension.addWidget(self.l_icon_metadata_cover_dimension)
|
||||
|
||||
self.l_metadata_cover_dimension = QLabel(self.gb_choices)
|
||||
self.l_metadata_cover_dimension.setObjectName("l_metadata_cover_dimension")
|
||||
sizePolicy4.setHeightForWidth(self.l_metadata_cover_dimension.sizePolicy().hasHeightForWidth())
|
||||
self.l_metadata_cover_dimension.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_choices_cover_dimension.addWidget(self.l_metadata_cover_dimension)
|
||||
|
||||
self.c_metadata_cover_dimension = QComboBox(self.gb_choices)
|
||||
self.c_metadata_cover_dimension.setObjectName("c_metadata_cover_dimension")
|
||||
sizePolicy5 = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy5.setHorizontalStretch(10)
|
||||
sizePolicy5.setVerticalStretch(0)
|
||||
sizePolicy5.setHeightForWidth(self.c_metadata_cover_dimension.sizePolicy().hasHeightForWidth())
|
||||
self.c_metadata_cover_dimension.setSizePolicy(sizePolicy5)
|
||||
|
||||
self.lh_choices_cover_dimension.addWidget(self.c_metadata_cover_dimension)
|
||||
|
||||
self.lh_choices_cover_dimension.setStretch(2, 50)
|
||||
|
||||
self.lv_choices.addLayout(self.lh_choices_cover_dimension)
|
||||
|
||||
self.lv_main.addWidget(self.gb_choices)
|
||||
|
||||
self.gb_numbers = QGroupBox(DialogSettings)
|
||||
self.gb_numbers.setObjectName("gb_numbers")
|
||||
self.verticalLayout_8 = QVBoxLayout(self.gb_numbers)
|
||||
self.verticalLayout_8.setObjectName("verticalLayout_8")
|
||||
self.horizontalLayout_9 = QHBoxLayout()
|
||||
self.horizontalLayout_9.setObjectName("horizontalLayout_9")
|
||||
self.l_album_track_num_pad_min = QLabel(self.gb_numbers)
|
||||
self.l_album_track_num_pad_min.setObjectName("l_album_track_num_pad_min")
|
||||
|
||||
self.horizontalLayout_9.addWidget(self.l_album_track_num_pad_min)
|
||||
|
||||
self.l_icon_album_track_num_pad_min = QLabel(self.gb_numbers)
|
||||
self.l_icon_album_track_num_pad_min.setObjectName("l_icon_album_track_num_pad_min")
|
||||
|
||||
self.horizontalLayout_9.addWidget(self.l_icon_album_track_num_pad_min)
|
||||
|
||||
self.sb_album_track_num_pad_min = QSpinBox(self.gb_numbers)
|
||||
self.sb_album_track_num_pad_min.setObjectName("sb_album_track_num_pad_min")
|
||||
self.sb_album_track_num_pad_min.setMaximum(4)
|
||||
|
||||
self.horizontalLayout_9.addWidget(self.sb_album_track_num_pad_min)
|
||||
|
||||
self.verticalLayout_8.addLayout(self.horizontalLayout_9)
|
||||
|
||||
self.horizontalLayout_11 = QHBoxLayout()
|
||||
self.horizontalLayout_11.setObjectName("horizontalLayout_11")
|
||||
self.l_downloads_concurrent_max = QLabel(self.gb_numbers)
|
||||
self.l_downloads_concurrent_max.setObjectName("l_downloads_concurrent_max")
|
||||
|
||||
self.horizontalLayout_11.addWidget(self.l_downloads_concurrent_max)
|
||||
|
||||
self.l_icon_downloads_concurrent_max = QLabel(self.gb_numbers)
|
||||
self.l_icon_downloads_concurrent_max.setObjectName("l_icon_downloads_concurrent_max")
|
||||
|
||||
self.horizontalLayout_11.addWidget(self.l_icon_downloads_concurrent_max)
|
||||
|
||||
self.sb_downloads_concurrent_max = QSpinBox(self.gb_numbers)
|
||||
self.sb_downloads_concurrent_max.setObjectName("sb_downloads_concurrent_max")
|
||||
self.sb_downloads_concurrent_max.setMinimum(1)
|
||||
self.sb_downloads_concurrent_max.setMaximum(5)
|
||||
|
||||
self.horizontalLayout_11.addWidget(self.sb_downloads_concurrent_max)
|
||||
|
||||
self.verticalLayout_8.addLayout(self.horizontalLayout_11)
|
||||
|
||||
self.lv_main.addWidget(self.gb_numbers)
|
||||
|
||||
self.gb_path = QGroupBox(DialogSettings)
|
||||
self.gb_path.setObjectName("gb_path")
|
||||
self.horizontalLayout_2 = QHBoxLayout(self.gb_path)
|
||||
self.horizontalLayout_2.setObjectName("horizontalLayout_2")
|
||||
self.verticalLayout_2 = QVBoxLayout()
|
||||
self.verticalLayout_2.setObjectName("verticalLayout_2")
|
||||
self.lh_path_base = QHBoxLayout()
|
||||
self.lh_path_base.setObjectName("lh_path_base")
|
||||
self.l_icon_download_base_path = QLabel(self.gb_path)
|
||||
self.l_icon_download_base_path.setObjectName("l_icon_download_base_path")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_download_base_path.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_download_base_path.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_path_base.addWidget(self.l_icon_download_base_path)
|
||||
|
||||
self.l_download_base_path = QLabel(self.gb_path)
|
||||
self.l_download_base_path.setObjectName("l_download_base_path")
|
||||
sizePolicy3.setHeightForWidth(self.l_download_base_path.sizePolicy().hasHeightForWidth())
|
||||
self.l_download_base_path.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_path_base.addWidget(self.l_download_base_path)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_path_base)
|
||||
|
||||
self.lh_path_fmt_track = QHBoxLayout()
|
||||
self.lh_path_fmt_track.setObjectName("lh_path_fmt_track")
|
||||
self.l_icon_format_track = QLabel(self.gb_path)
|
||||
self.l_icon_format_track.setObjectName("l_icon_format_track")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_format_track.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_format_track.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_path_fmt_track.addWidget(self.l_icon_format_track)
|
||||
|
||||
self.l_format_track = QLabel(self.gb_path)
|
||||
self.l_format_track.setObjectName("l_format_track")
|
||||
sizePolicy3.setHeightForWidth(self.l_format_track.sizePolicy().hasHeightForWidth())
|
||||
self.l_format_track.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_path_fmt_track.addWidget(self.l_format_track)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_path_fmt_track)
|
||||
|
||||
self.lh_path_fmt_video = QHBoxLayout()
|
||||
self.lh_path_fmt_video.setObjectName("lh_path_fmt_video")
|
||||
self.l_icon_format_video = QLabel(self.gb_path)
|
||||
self.l_icon_format_video.setObjectName("l_icon_format_video")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_format_video.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_format_video.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_path_fmt_video.addWidget(self.l_icon_format_video)
|
||||
|
||||
self.l_format_video = QLabel(self.gb_path)
|
||||
self.l_format_video.setObjectName("l_format_video")
|
||||
sizePolicy3.setHeightForWidth(self.l_format_video.sizePolicy().hasHeightForWidth())
|
||||
self.l_format_video.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_path_fmt_video.addWidget(self.l_format_video)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_path_fmt_video)
|
||||
|
||||
self.lh_path_fmt_album = QHBoxLayout()
|
||||
self.lh_path_fmt_album.setObjectName("lh_path_fmt_album")
|
||||
self.l_icon_format_album = QLabel(self.gb_path)
|
||||
self.l_icon_format_album.setObjectName("l_icon_format_album")
|
||||
sizePolicy6 = QSizePolicy(QSizePolicy.Policy.Fixed, QSizePolicy.Policy.Preferred)
|
||||
sizePolicy6.setHorizontalStretch(0)
|
||||
sizePolicy6.setVerticalStretch(0)
|
||||
sizePolicy6.setHeightForWidth(self.l_icon_format_album.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_format_album.setSizePolicy(sizePolicy6)
|
||||
|
||||
self.lh_path_fmt_album.addWidget(self.l_icon_format_album)
|
||||
|
||||
self.l_format_album = QLabel(self.gb_path)
|
||||
self.l_format_album.setObjectName("l_format_album")
|
||||
sizePolicy3.setHeightForWidth(self.l_format_album.sizePolicy().hasHeightForWidth())
|
||||
self.l_format_album.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_path_fmt_album.addWidget(self.l_format_album)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_path_fmt_album)
|
||||
|
||||
self.lh_fpath_mt_playlist = QHBoxLayout()
|
||||
self.lh_fpath_mt_playlist.setObjectName("lh_fpath_mt_playlist")
|
||||
self.l_icon_format_playlist = QLabel(self.gb_path)
|
||||
self.l_icon_format_playlist.setObjectName("l_icon_format_playlist")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_format_playlist.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_format_playlist.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_fpath_mt_playlist.addWidget(self.l_icon_format_playlist)
|
||||
|
||||
self.l_format_playlist = QLabel(self.gb_path)
|
||||
self.l_format_playlist.setObjectName("l_format_playlist")
|
||||
sizePolicy3.setHeightForWidth(self.l_format_playlist.sizePolicy().hasHeightForWidth())
|
||||
self.l_format_playlist.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_fpath_mt_playlist.addWidget(self.l_format_playlist)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_fpath_mt_playlist)
|
||||
|
||||
self.lh_path_fmt_mix = QHBoxLayout()
|
||||
self.lh_path_fmt_mix.setObjectName("lh_path_fmt_mix")
|
||||
self.l_icon_format_mix = QLabel(self.gb_path)
|
||||
self.l_icon_format_mix.setObjectName("l_icon_format_mix")
|
||||
sizePolicy6.setHeightForWidth(self.l_icon_format_mix.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_format_mix.setSizePolicy(sizePolicy6)
|
||||
|
||||
self.lh_path_fmt_mix.addWidget(self.l_icon_format_mix)
|
||||
|
||||
self.l_format_mix = QLabel(self.gb_path)
|
||||
self.l_format_mix.setObjectName("l_format_mix")
|
||||
sizePolicy3.setHeightForWidth(self.l_format_mix.sizePolicy().hasHeightForWidth())
|
||||
self.l_format_mix.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_path_fmt_mix.addWidget(self.l_format_mix)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_path_fmt_mix)
|
||||
|
||||
self.lh_path_binary_ffmpeg = QHBoxLayout()
|
||||
self.lh_path_binary_ffmpeg.setObjectName("lh_path_binary_ffmpeg")
|
||||
self.l_icon_path_binary_ffmpeg = QLabel(self.gb_path)
|
||||
self.l_icon_path_binary_ffmpeg.setObjectName("l_icon_path_binary_ffmpeg")
|
||||
sizePolicy4.setHeightForWidth(self.l_icon_path_binary_ffmpeg.sizePolicy().hasHeightForWidth())
|
||||
self.l_icon_path_binary_ffmpeg.setSizePolicy(sizePolicy4)
|
||||
|
||||
self.lh_path_binary_ffmpeg.addWidget(self.l_icon_path_binary_ffmpeg)
|
||||
|
||||
self.l_path_binary_ffmpeg = QLabel(self.gb_path)
|
||||
self.l_path_binary_ffmpeg.setObjectName("l_path_binary_ffmpeg")
|
||||
sizePolicy3.setHeightForWidth(self.l_path_binary_ffmpeg.sizePolicy().hasHeightForWidth())
|
||||
self.l_path_binary_ffmpeg.setSizePolicy(sizePolicy3)
|
||||
|
||||
self.lh_path_binary_ffmpeg.addWidget(self.l_path_binary_ffmpeg)
|
||||
|
||||
self.verticalLayout_2.addLayout(self.lh_path_binary_ffmpeg)
|
||||
|
||||
self.horizontalLayout_2.addLayout(self.verticalLayout_2)
|
||||
|
||||
self.verticalLayout = QVBoxLayout()
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.horizontalLayout_10 = QHBoxLayout()
|
||||
self.horizontalLayout_10.setObjectName("horizontalLayout_10")
|
||||
self.le_download_base_path = QLineEdit(self.gb_path)
|
||||
self.le_download_base_path.setObjectName("le_download_base_path")
|
||||
sizePolicy2.setHeightForWidth(self.le_download_base_path.sizePolicy().hasHeightForWidth())
|
||||
self.le_download_base_path.setSizePolicy(sizePolicy2)
|
||||
self.le_download_base_path.setDragEnabled(True)
|
||||
|
||||
self.horizontalLayout_10.addWidget(self.le_download_base_path)
|
||||
|
||||
self.pb_download_base_path = QPushButton(self.gb_path)
|
||||
self.pb_download_base_path.setObjectName("pb_download_base_path")
|
||||
|
||||
self.horizontalLayout_10.addWidget(self.pb_download_base_path)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_10)
|
||||
|
||||
self.horizontalLayout_7 = QHBoxLayout()
|
||||
self.horizontalLayout_7.setObjectName("horizontalLayout_7")
|
||||
self.le_format_track = QLineEdit(self.gb_path)
|
||||
self.le_format_track.setObjectName("le_format_track")
|
||||
|
||||
self.horizontalLayout_7.addWidget(self.le_format_track)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_7)
|
||||
|
||||
self.horizontalLayout_5 = QHBoxLayout()
|
||||
self.horizontalLayout_5.setObjectName("horizontalLayout_5")
|
||||
self.le_format_video = QLineEdit(self.gb_path)
|
||||
self.le_format_video.setObjectName("le_format_video")
|
||||
|
||||
self.horizontalLayout_5.addWidget(self.le_format_video)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_5)
|
||||
|
||||
self.horizontalLayout_6 = QHBoxLayout()
|
||||
self.horizontalLayout_6.setObjectName("horizontalLayout_6")
|
||||
self.le_format_album = QLineEdit(self.gb_path)
|
||||
self.le_format_album.setObjectName("le_format_album")
|
||||
|
||||
self.horizontalLayout_6.addWidget(self.le_format_album)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_6)
|
||||
|
||||
self.horizontalLayout_4 = QHBoxLayout()
|
||||
self.horizontalLayout_4.setObjectName("horizontalLayout_4")
|
||||
self.le_format_playlist = QLineEdit(self.gb_path)
|
||||
self.le_format_playlist.setObjectName("le_format_playlist")
|
||||
sizePolicy2.setHeightForWidth(self.le_format_playlist.sizePolicy().hasHeightForWidth())
|
||||
self.le_format_playlist.setSizePolicy(sizePolicy2)
|
||||
|
||||
self.horizontalLayout_4.addWidget(self.le_format_playlist)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_4)
|
||||
|
||||
self.horizontalLayout_8 = QHBoxLayout()
|
||||
self.horizontalLayout_8.setObjectName("horizontalLayout_8")
|
||||
self.le_format_mix = QLineEdit(self.gb_path)
|
||||
self.le_format_mix.setObjectName("le_format_mix")
|
||||
|
||||
self.horizontalLayout_8.addWidget(self.le_format_mix)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_8)
|
||||
|
||||
self.horizontalLayout_3 = QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.le_path_binary_ffmpeg = QLineEdit(self.gb_path)
|
||||
self.le_path_binary_ffmpeg.setObjectName("le_path_binary_ffmpeg")
|
||||
sizePolicy2.setHeightForWidth(self.le_path_binary_ffmpeg.sizePolicy().hasHeightForWidth())
|
||||
self.le_path_binary_ffmpeg.setSizePolicy(sizePolicy2)
|
||||
self.le_path_binary_ffmpeg.setDragEnabled(True)
|
||||
|
||||
self.horizontalLayout_3.addWidget(self.le_path_binary_ffmpeg)
|
||||
|
||||
self.pb_path_binary_ffmpeg = QPushButton(self.gb_path)
|
||||
self.pb_path_binary_ffmpeg.setObjectName("pb_path_binary_ffmpeg")
|
||||
|
||||
self.horizontalLayout_3.addWidget(self.pb_path_binary_ffmpeg)
|
||||
|
||||
self.verticalLayout.addLayout(self.horizontalLayout_3)
|
||||
|
||||
self.horizontalLayout_2.addLayout(self.verticalLayout)
|
||||
|
||||
self.horizontalLayout_2.setStretch(1, 50)
|
||||
|
||||
self.lv_main.addWidget(self.gb_path)
|
||||
|
||||
self.bb_dialog = QDialogButtonBox(DialogSettings)
|
||||
self.bb_dialog.setObjectName("bb_dialog")
|
||||
self.bb_dialog.setOrientation(Qt.Orientation.Horizontal)
|
||||
self.bb_dialog.setStandardButtons(QDialogButtonBox.StandardButton.Cancel | QDialogButtonBox.StandardButton.Ok)
|
||||
|
||||
self.lv_main.addWidget(self.bb_dialog)
|
||||
|
||||
self.lv_dialog_settings.addLayout(self.lv_main)
|
||||
|
||||
self.retranslateUi(DialogSettings)
|
||||
self.bb_dialog.accepted.connect(DialogSettings.accept)
|
||||
self.bb_dialog.rejected.connect(DialogSettings.reject)
|
||||
|
||||
QMetaObject.connectSlotsByName(DialogSettings)
|
||||
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, DialogSettings):
|
||||
DialogSettings.setWindowTitle(QCoreApplication.translate("DialogSettings", "Preferences", None))
|
||||
self.gb_flags.setTitle(QCoreApplication.translate("DialogSettings", "Flags", None))
|
||||
self.cb_video_download.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_video_convert_mp4.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.cb_lyrics_embed.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
self.cb_lyrics_embed.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_lyrics_file.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_download_delay.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_extract_flac.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_metadata_cover_embed.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_cover_album_file.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_skip_existing.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_symlink_to_track.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.cb_playlist_create.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
|
||||
self.gb_choices.setTitle(QCoreApplication.translate("DialogSettings", "Choices", None))
|
||||
self.l_icon_quality_audio.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_quality_audio.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_quality_video.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_quality_video.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_metadata_cover_dimension.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_metadata_cover_dimension.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.gb_numbers.setTitle(QCoreApplication.translate("DialogSettings", "Numbers", None))
|
||||
self.l_album_track_num_pad_min.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_album_track_num_pad_min.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_downloads_concurrent_max.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_downloads_concurrent_max.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.gb_path.setTitle(QCoreApplication.translate("DialogSettings", "Path", None))
|
||||
self.l_icon_download_base_path.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_download_base_path.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_format_track.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_format_track.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_format_video.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_format_video.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_format_album.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_format_album.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_format_playlist.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_format_playlist.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_format_mix.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_format_mix.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_icon_path_binary_ffmpeg.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.l_path_binary_ffmpeg.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
|
||||
self.pb_download_base_path.setText(QCoreApplication.translate("DialogSettings", "...", None))
|
||||
self.pb_path_binary_ffmpeg.setText(QCoreApplication.translate("DialogSettings", "...", None))
|
||||
|
||||
# retranslateUi
|
812
tidal_dl_ng/ui/dialog_settings.ui
Normal file
812
tidal_dl_ng/ui/dialog_settings.ui
Normal file
@ -0,0 +1,812 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogSettings</class>
|
||||
<widget class="QDialog" name="DialogSettings">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>640</width>
|
||||
<height>800</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Preferences</string>
|
||||
</property>
|
||||
<property name="sizeGripEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="lv_dialog_settings">
|
||||
<property name="leftMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_main">
|
||||
<property name="leftMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="topMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="rightMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<property name="bottomMargin">
|
||||
<number>12</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_flags">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Flags</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="checkable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="lv_flags">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_flags_1">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_video_download">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_video_download">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_video_convert">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_video_convert_mp4">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_flags_2">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_lyrics_embed">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_lyrics_embed">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_lyrics_file">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_lyrics_file">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_flag_3">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_download_delay">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_download_delay">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_extract_flac">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_extract_flac">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_flags_4">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_metadata_cover_embed">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_metadata_cover_embed">
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_cover_album_file">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_cover_album_file">
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_flag_skip_existing">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_skip_existing">
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_symlink_to_track">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_symlink_to_track">
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_12">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_playlist_create">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="cb_playlist_create">
|
||||
<property name="text">
|
||||
<string>CheckBox</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_4"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_choices">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="title">
|
||||
<string>Choices</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="lv_choices">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_choices_quality_audio" stretch="0,0,50">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_quality_audio">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_quality_audio">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="c_quality_audio"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_choices_quality_video" stretch="0,0,50">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_quality_video">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_quality_video">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="c_quality_video"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_choices_cover_dimension" stretch="0,0,50">
|
||||
<property name="sizeConstraint">
|
||||
<enum>QLayout::SizeConstraint::SetDefaultConstraint</enum>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_metadata_cover_dimension">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_metadata_cover_dimension">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="c_metadata_cover_dimension">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>10</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_numbers">
|
||||
<property name="title">
|
||||
<string>Numbers</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_8">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_9">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_album_track_num_pad_min">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_album_track_num_pad_min">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="sb_album_track_num_pad_min">
|
||||
<property name="maximum">
|
||||
<number>4</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_11">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_downloads_concurrent_max">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_downloads_concurrent_max">
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QSpinBox" name="sb_downloads_concurrent_max">
|
||||
<property name="minimum">
|
||||
<number>1</number>
|
||||
</property>
|
||||
<property name="maximum">
|
||||
<number>5</number>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QGroupBox" name="gb_path">
|
||||
<property name="title">
|
||||
<string>Path</string>
|
||||
</property>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_2" stretch="0,50">
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_path_base">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_download_base_path">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_download_base_path">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_path_fmt_track">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_format_track">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_format_track">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_path_fmt_video">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_format_video">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_format_video">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_path_fmt_album">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_format_album">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_format_album">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_fpath_mt_playlist">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_format_playlist">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_format_playlist">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_path_fmt_mix">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_format_mix">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_format_mix">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_path_binary_ffmpeg">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_icon_path_binary_ffmpeg">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_path_binary_ffmpeg">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TextLabel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_10">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_download_base_path">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="dragEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_download_base_path">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_7">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_format_track"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_5">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_format_video"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_6">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_format_album"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_4">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_format_playlist">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_format_mix"/>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="le_path_binary_ffmpeg">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="dragEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_path_binary_ffmpeg">
|
||||
<property name="text">
|
||||
<string>...</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QDialogButtonBox" name="bb_dialog">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Orientation::Horizontal</enum>
|
||||
</property>
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections>
|
||||
<connection>
|
||||
<sender>bb_dialog</sender>
|
||||
<signal>accepted()</signal>
|
||||
<receiver>DialogSettings</receiver>
|
||||
<slot>accept()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>319</x>
|
||||
<y>661</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>319</x>
|
||||
<y>340</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
<connection>
|
||||
<sender>bb_dialog</sender>
|
||||
<signal>rejected()</signal>
|
||||
<receiver>DialogSettings</receiver>
|
||||
<slot>reject()</slot>
|
||||
<hints>
|
||||
<hint type="sourcelabel">
|
||||
<x>319</x>
|
||||
<y>661</y>
|
||||
</hint>
|
||||
<hint type="destinationlabel">
|
||||
<x>319</x>
|
||||
<y>340</y>
|
||||
</hint>
|
||||
</hints>
|
||||
</connection>
|
||||
</connections>
|
||||
</ui>
|
161
tidal_dl_ng/ui/dialog_version.py
Normal file
161
tidal_dl_ng/ui/dialog_version.py
Normal file
@ -0,0 +1,161 @@
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'dialog_version.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.6.1
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import QCoreApplication, QMetaObject, QSize, Qt
|
||||
from PySide6.QtGui import QFont
|
||||
from PySide6.QtWidgets import QHBoxLayout, QLabel, QPushButton, QSizePolicy, QSpacerItem, QVBoxLayout
|
||||
|
||||
|
||||
class Ui_DialogVersion:
|
||||
def setupUi(self, DialogVersion):
|
||||
if not DialogVersion.objectName():
|
||||
DialogVersion.setObjectName("DialogVersion")
|
||||
DialogVersion.resize(436, 235)
|
||||
sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(0)
|
||||
sizePolicy.setVerticalStretch(0)
|
||||
sizePolicy.setHeightForWidth(DialogVersion.sizePolicy().hasHeightForWidth())
|
||||
DialogVersion.setSizePolicy(sizePolicy)
|
||||
DialogVersion.setMaximumSize(QSize(436, 235))
|
||||
self.verticalLayout = QVBoxLayout(DialogVersion)
|
||||
self.verticalLayout.setObjectName("verticalLayout")
|
||||
self.l_name_app = QLabel(DialogVersion)
|
||||
self.l_name_app.setObjectName("l_name_app")
|
||||
sizePolicy1 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred)
|
||||
sizePolicy1.setHorizontalStretch(0)
|
||||
sizePolicy1.setVerticalStretch(0)
|
||||
sizePolicy1.setHeightForWidth(self.l_name_app.sizePolicy().hasHeightForWidth())
|
||||
self.l_name_app.setSizePolicy(sizePolicy1)
|
||||
font = QFont()
|
||||
font.setBold(True)
|
||||
self.l_name_app.setFont(font)
|
||||
self.l_name_app.setAlignment(Qt.AlignCenter)
|
||||
self.l_name_app.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.verticalLayout.addWidget(self.l_name_app)
|
||||
|
||||
self.lv_version = QVBoxLayout()
|
||||
self.lv_version.setObjectName("lv_version")
|
||||
self.lh_version = QHBoxLayout()
|
||||
self.lh_version.setObjectName("lh_version")
|
||||
self.l_h_version = QLabel(DialogVersion)
|
||||
self.l_h_version.setObjectName("l_h_version")
|
||||
self.l_h_version.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lh_version.addWidget(self.l_h_version)
|
||||
|
||||
self.l_version = QLabel(DialogVersion)
|
||||
self.l_version.setObjectName("l_version")
|
||||
self.l_version.setFont(font)
|
||||
self.l_version.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lh_version.addWidget(self.l_version)
|
||||
|
||||
self.lv_version.addLayout(self.lh_version)
|
||||
|
||||
self.verticalLayout.addLayout(self.lv_version)
|
||||
|
||||
self.lv_update = QVBoxLayout()
|
||||
self.lv_update.setObjectName("lv_update")
|
||||
self.l_error = QLabel(DialogVersion)
|
||||
self.l_error.setObjectName("l_error")
|
||||
self.l_error.setFont(font)
|
||||
self.l_error.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lv_update.addWidget(self.l_error)
|
||||
|
||||
self.l_error_details = QLabel(DialogVersion)
|
||||
self.l_error_details.setObjectName("l_error_details")
|
||||
self.l_error_details.setFont(font)
|
||||
self.l_error_details.setAlignment(Qt.AlignCenter)
|
||||
self.l_error_details.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lv_update.addWidget(self.l_error_details)
|
||||
|
||||
self.lh_update_version = QHBoxLayout()
|
||||
self.lh_update_version.setObjectName("lh_update_version")
|
||||
self.l_h_version_new = QLabel(DialogVersion)
|
||||
self.l_h_version_new.setObjectName("l_h_version_new")
|
||||
self.l_h_version_new.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lh_update_version.addWidget(self.l_h_version_new)
|
||||
|
||||
self.l_version_new = QLabel(DialogVersion)
|
||||
self.l_version_new.setObjectName("l_version_new")
|
||||
self.l_version_new.setFont(font)
|
||||
self.l_version_new.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lh_update_version.addWidget(self.l_version_new)
|
||||
|
||||
self.lv_update.addLayout(self.lh_update_version)
|
||||
|
||||
self.l_changelog = QLabel(DialogVersion)
|
||||
self.l_changelog.setObjectName("l_changelog")
|
||||
self.l_changelog.setFont(font)
|
||||
self.l_changelog.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lv_update.addWidget(self.l_changelog)
|
||||
|
||||
self.l_changelog_details = QLabel(DialogVersion)
|
||||
self.l_changelog_details.setObjectName("l_changelog_details")
|
||||
self.l_changelog_details.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.lv_update.addWidget(self.l_changelog_details)
|
||||
|
||||
self.lv_download = QHBoxLayout()
|
||||
self.lv_download.setObjectName("lv_download")
|
||||
self.lv_download.setContentsMargins(-1, 20, -1, -1)
|
||||
self.pb_download = QPushButton(DialogVersion)
|
||||
self.pb_download.setObjectName("pb_download")
|
||||
self.pb_download.setFlat(False)
|
||||
|
||||
self.lv_download.addWidget(self.pb_download)
|
||||
|
||||
self.sh_download = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum)
|
||||
|
||||
self.lv_download.addItem(self.sh_download)
|
||||
|
||||
self.lv_update.addLayout(self.lv_download)
|
||||
|
||||
self.verticalLayout.addLayout(self.lv_update)
|
||||
|
||||
self.l_url_github = QLabel(DialogVersion)
|
||||
self.l_url_github.setObjectName("l_url_github")
|
||||
self.l_url_github.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
|
||||
self.l_url_github.setOpenExternalLinks(True)
|
||||
self.l_url_github.setTextInteractionFlags(Qt.LinksAccessibleByMouse | Qt.TextSelectableByMouse)
|
||||
|
||||
self.verticalLayout.addWidget(self.l_url_github)
|
||||
|
||||
self.retranslateUi(DialogVersion)
|
||||
|
||||
QMetaObject.connectSlotsByName(DialogVersion)
|
||||
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, DialogVersion):
|
||||
DialogVersion.setWindowTitle(QCoreApplication.translate("DialogVersion", "Version", None))
|
||||
self.l_name_app.setText(QCoreApplication.translate("DialogVersion", "TIDAL Downloader Next Generation!", None))
|
||||
self.l_h_version.setText(QCoreApplication.translate("DialogVersion", "Installed Version:", None))
|
||||
self.l_version.setText(QCoreApplication.translate("DialogVersion", "v1.2.3", None))
|
||||
self.l_error.setText(QCoreApplication.translate("DialogVersion", "ERROR", None))
|
||||
self.l_error_details.setText(QCoreApplication.translate("DialogVersion", "<ERROR>", None))
|
||||
self.l_h_version_new.setText(QCoreApplication.translate("DialogVersion", "New Version Available:", None))
|
||||
self.l_version_new.setText(QCoreApplication.translate("DialogVersion", "v0.0.0", None))
|
||||
self.l_changelog.setText(QCoreApplication.translate("DialogVersion", "Changelog", None))
|
||||
self.l_changelog_details.setText(QCoreApplication.translate("DialogVersion", "<CHANGELOG>", None))
|
||||
self.pb_download.setText(QCoreApplication.translate("DialogVersion", "Download", None))
|
||||
self.l_url_github.setText(
|
||||
QCoreApplication.translate(
|
||||
"DialogVersion",
|
||||
'<a href="https://github.com/exislow/tidal-dl-ng/">https://github.com/exislow/tidal-dl-ng/</a>',
|
||||
None,
|
||||
)
|
||||
)
|
||||
|
||||
# retranslateUi
|
227
tidal_dl_ng/ui/dialog_version.ui
Normal file
227
tidal_dl_ng/ui/dialog_version.ui
Normal file
@ -0,0 +1,227 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>DialogVersion</class>
|
||||
<widget class="QDialog" name="DialogVersion">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>436</width>
|
||||
<height>235</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>436</width>
|
||||
<height>235</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Version</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_name_app">
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Preferred">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>TIDAL Downloader Next Generation!</string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_version">
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_version">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_h_version">
|
||||
<property name="text">
|
||||
<string>Installed Version:</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_version">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>v1.2.3</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_update">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_error">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>ERROR</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_error_details">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string><ERROR></string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignCenter</set>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lh_update_version">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_h_version_new">
|
||||
<property name="text">
|
||||
<string>New Version Available:</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_version_new">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>v0.0.0</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_changelog">
|
||||
<property name="font">
|
||||
<font>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Changelog</string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_changelog_details">
|
||||
<property name="text">
|
||||
<string><CHANGELOG></string>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="lv_download">
|
||||
<property name="topMargin">
|
||||
<number>20</number>
|
||||
</property>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_download">
|
||||
<property name="text">
|
||||
<string>Download</string>
|
||||
</property>
|
||||
<property name="flat">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="sh_download">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="l_url_github">
|
||||
<property name="text">
|
||||
<string><a href="https://github.com/exislow/tidal-dl-ng/">https://github.com/exislow/tidal-dl-ng/</a></string>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
|
||||
</property>
|
||||
<property name="openExternalLinks">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="textInteractionFlags">
|
||||
<set>Qt::LinksAccessibleByMouse|Qt::TextSelectableByMouse</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
33
tidal_dl_ng/ui/dummy_register.py
Normal file
33
tidal_dl_ng/ui/dummy_register.py
Normal file
@ -0,0 +1,33 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
from PySide6.QtDesigner import QPyDesignerCustomWidgetCollection
|
||||
|
||||
from .dummy_wiggly import WigglyWidget
|
||||
|
||||
# Set PYSIDE_DESIGNER_PLUGINS to point to this directory and load the plugin
|
||||
|
||||
|
||||
TOOLTIP = "A cool wiggly widget (Python)"
|
||||
DOM_XML = """
|
||||
<ui language='c++'>
|
||||
<widget class='WigglyWidget' name='wigglyWidget'>
|
||||
<property name='geometry'>
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>200</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name='text'>
|
||||
<string>Hello, world</string>
|
||||
</property>
|
||||
</widget>
|
||||
</ui>
|
||||
"""
|
||||
|
||||
if __name__ == "__main__":
|
||||
QPyDesignerCustomWidgetCollection.registerCustomWidget(
|
||||
WigglyWidget, module="wigglywidget", tool_tip=TOOLTIP, xml=DOM_XML
|
||||
)
|
68
tidal_dl_ng/ui/dummy_wiggly.py
Normal file
68
tidal_dl_ng/ui/dummy_wiggly.py
Normal file
@ -0,0 +1,68 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR BSD-3-Clause
|
||||
|
||||
from PySide6.QtCore import Property, QBasicTimer
|
||||
from PySide6.QtGui import QColor, QFontMetrics, QPainter, QPalette
|
||||
from PySide6.QtWidgets import QWidget
|
||||
|
||||
|
||||
class WigglyWidget(QWidget):
|
||||
def __init__(self, parent=None):
|
||||
super().__init__(parent)
|
||||
self._step = 0
|
||||
self._text = ""
|
||||
self.setBackgroundRole(QPalette.Midlight)
|
||||
self.setAutoFillBackground(True)
|
||||
|
||||
new_font = self.font()
|
||||
new_font.setPointSize(new_font.pointSize() + 20)
|
||||
self.setFont(new_font)
|
||||
self._timer = QBasicTimer()
|
||||
|
||||
def isRunning(self):
|
||||
return self._timer.isActive()
|
||||
|
||||
def setRunning(self, r):
|
||||
if r == self.isRunning():
|
||||
return
|
||||
if r:
|
||||
self._timer.start(60, self)
|
||||
else:
|
||||
self._timer.stop()
|
||||
|
||||
def paintEvent(self, event):
|
||||
if not self._text:
|
||||
return
|
||||
|
||||
sineTable = [0, 38, 71, 92, 100, 92, 71, 38, 0, -38, -71, -92, -100, -92, -71, -38]
|
||||
|
||||
metrics = QFontMetrics(self.font())
|
||||
x = (self.width() - metrics.horizontalAdvance(self.text)) / 2
|
||||
y = (self.height() + metrics.ascent() - metrics.descent()) / 2
|
||||
color = QColor()
|
||||
|
||||
with QPainter(self) as painter:
|
||||
for i in range(len(self.text)):
|
||||
index = (self._step + i) % 16
|
||||
color.setHsv((15 - index) * 16, 255, 191)
|
||||
painter.setPen(color)
|
||||
dy = (sineTable[index] * metrics.height()) / 400
|
||||
c = self._text[i]
|
||||
painter.drawText(x, y - dy, str(c))
|
||||
x += metrics.horizontalAdvance(c)
|
||||
|
||||
def timerEvent(self, event):
|
||||
if event.timerId() == self._timer.timerId():
|
||||
self._step += 1
|
||||
self.update()
|
||||
else:
|
||||
QWidget.timerEvent(event)
|
||||
|
||||
def text(self):
|
||||
return self._text
|
||||
|
||||
def setText(self, text):
|
||||
self._text = text
|
||||
|
||||
running = Property(bool, isRunning, setRunning)
|
||||
text = Property(str, text, setText)
|
BIN
tidal_dl_ng/ui/icon.icns
Normal file
BIN
tidal_dl_ng/ui/icon.icns
Normal file
Binary file not shown.
BIN
tidal_dl_ng/ui/icon.ico
Normal file
BIN
tidal_dl_ng/ui/icon.ico
Normal file
Binary file not shown.
After Width: | Height: | Size: 215 KiB |
BIN
tidal_dl_ng/ui/icon.png
Normal file
BIN
tidal_dl_ng/ui/icon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 53 KiB |
588
tidal_dl_ng/ui/main.py
Normal file
588
tidal_dl_ng/ui/main.py
Normal file
@ -0,0 +1,588 @@
|
||||
################################################################################
|
||||
## Form generated from reading UI file 'main.ui'
|
||||
##
|
||||
## Created by: Qt User Interface Compiler version 6.7.0
|
||||
##
|
||||
## WARNING! All changes made in this file will be lost when recompiling UI file!
|
||||
################################################################################
|
||||
|
||||
from PySide6.QtCore import QCoreApplication, QLocale, QMetaObject, QRect, QSize, Qt
|
||||
from PySide6.QtGui import QAction, QFont, QPixmap
|
||||
from PySide6.QtWidgets import (
|
||||
QAbstractItemView,
|
||||
QComboBox,
|
||||
QFrame,
|
||||
QHBoxLayout,
|
||||
QLabel,
|
||||
QLineEdit,
|
||||
QMenu,
|
||||
QMenuBar,
|
||||
QPlainTextEdit,
|
||||
QPushButton,
|
||||
QSizePolicy,
|
||||
QStatusBar,
|
||||
QTreeView,
|
||||
QTreeWidget,
|
||||
QTreeWidgetItem,
|
||||
QVBoxLayout,
|
||||
QWidget,
|
||||
)
|
||||
|
||||
|
||||
class Ui_MainWindow:
|
||||
def setupUi(self, MainWindow):
|
||||
if not MainWindow.objectName():
|
||||
MainWindow.setObjectName("MainWindow")
|
||||
MainWindow.resize(1200, 800)
|
||||
self.a_preferences = QAction(MainWindow)
|
||||
self.a_preferences.setObjectName("a_preferences")
|
||||
self.a_preferences.setEnabled(True)
|
||||
self.a_preferences.setText("Preferences...")
|
||||
self.a_preferences.setIconText("Preferences...")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.a_preferences.setToolTip("Preferences...")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.a_preferences.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.a_preferences.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
self.a_version = QAction(MainWindow)
|
||||
self.a_version.setObjectName("a_version")
|
||||
self.a_exit = QAction(MainWindow)
|
||||
self.a_exit.setObjectName("a_exit")
|
||||
self.a_logout = QAction(MainWindow)
|
||||
self.a_logout.setObjectName("a_logout")
|
||||
self.a_updates_check = QAction(MainWindow)
|
||||
self.a_updates_check.setObjectName("a_updates_check")
|
||||
self.w_central = QWidget(MainWindow)
|
||||
self.w_central.setObjectName("w_central")
|
||||
self.w_central.setEnabled(True)
|
||||
sizePolicy = QSizePolicy(QSizePolicy.Policy.Preferred, QSizePolicy.Policy.Expanding)
|
||||
sizePolicy.setHorizontalStretch(100)
|
||||
sizePolicy.setVerticalStretch(100)
|
||||
sizePolicy.setHeightForWidth(self.w_central.sizePolicy().hasHeightForWidth())
|
||||
self.w_central.setSizePolicy(sizePolicy)
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.w_central.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.w_central.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.w_central.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.w_central.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.w_central.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.horizontalLayout = QHBoxLayout(self.w_central)
|
||||
self.horizontalLayout.setObjectName("horizontalLayout")
|
||||
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(2, "Info")
|
||||
__qtreewidgetitem.setText(0, "Name")
|
||||
self.tr_lists_user.setHeaderItem(__qtreewidgetitem)
|
||||
__qtreewidgetitem1 = QTreeWidgetItem(self.tr_lists_user)
|
||||
__qtreewidgetitem1.setFlags(Qt.ItemIsEnabled)
|
||||
__qtreewidgetitem2 = QTreeWidgetItem(self.tr_lists_user)
|
||||
__qtreewidgetitem2.setFlags(Qt.ItemIsEnabled)
|
||||
__qtreewidgetitem3 = QTreeWidgetItem(self.tr_lists_user)
|
||||
__qtreewidgetitem3.setFlags(Qt.ItemIsEnabled)
|
||||
self.tr_lists_user.setObjectName("tr_lists_user")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.tr_lists_user.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.tr_lists_user.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.tr_lists_user.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.tr_lists_user.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.tr_lists_user.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.tr_lists_user.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.tr_lists_user.setProperty("showDropIndicator", False)
|
||||
self.tr_lists_user.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
||||
self.tr_lists_user.setIndentation(10)
|
||||
self.tr_lists_user.setUniformRowHeights(True)
|
||||
self.tr_lists_user.setSortingEnabled(True)
|
||||
self.tr_lists_user.header().setCascadingSectionResizes(True)
|
||||
self.tr_lists_user.header().setHighlightSections(True)
|
||||
self.tr_lists_user.header().setProperty("showSortIndicator", True)
|
||||
|
||||
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.Policy.Expanding, QSizePolicy.Policy.Fixed)
|
||||
sizePolicy1.setHorizontalStretch(0)
|
||||
sizePolicy1.setVerticalStretch(0)
|
||||
sizePolicy1.setHeightForWidth(self.pb_reload_user_lists.sizePolicy().hasHeightForWidth())
|
||||
self.pb_reload_user_lists.setSizePolicy(sizePolicy1)
|
||||
|
||||
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.lv_search_result = QVBoxLayout()
|
||||
# ifndef Q_OS_MAC
|
||||
self.lv_search_result.setSpacing(-1)
|
||||
# endif
|
||||
self.lv_search_result.setObjectName("lv_search_result")
|
||||
self.lh_search = QHBoxLayout()
|
||||
self.lh_search.setObjectName("lh_search")
|
||||
self.l_search = QLineEdit(self.w_central)
|
||||
self.l_search.setObjectName("l_search")
|
||||
self.l_search.setAcceptDrops(False)
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.l_search.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.l_search.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.l_search.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.l_search.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.l_search.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.l_search.setLocale(QLocale(QLocale.English, QLocale.UnitedStates))
|
||||
self.l_search.setText("")
|
||||
self.l_search.setPlaceholderText("Type and press ENTER to search...")
|
||||
self.l_search.setClearButtonEnabled(True)
|
||||
|
||||
self.lh_search.addWidget(self.l_search)
|
||||
|
||||
self.cb_search_type = QComboBox(self.w_central)
|
||||
self.cb_search_type.setObjectName("cb_search_type")
|
||||
self.cb_search_type.setMinimumSize(QSize(100, 0))
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.cb_search_type.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.cb_search_type.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.cb_search_type.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.cb_search_type.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.cb_search_type.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.cb_search_type.setCurrentText("")
|
||||
self.cb_search_type.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow)
|
||||
self.cb_search_type.setPlaceholderText("")
|
||||
|
||||
self.lh_search.addWidget(self.cb_search_type)
|
||||
|
||||
self.pb_search = QPushButton(self.w_central)
|
||||
self.pb_search.setObjectName("pb_search")
|
||||
# if QT_CONFIG(statustip)
|
||||
self.pb_search.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.pb_search.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.pb_search.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.pb_search.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.pb_search.setText("Search")
|
||||
# if QT_CONFIG(shortcut)
|
||||
self.pb_search.setShortcut("")
|
||||
# endif // QT_CONFIG(shortcut)
|
||||
|
||||
self.lh_search.addWidget(self.pb_search)
|
||||
|
||||
self.lv_search_result.addLayout(self.lh_search)
|
||||
|
||||
self.tr_results = QTreeView(self.w_central)
|
||||
self.tr_results.setObjectName("tr_results")
|
||||
self.tr_results.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.tr_results.setProperty("showDropIndicator", False)
|
||||
self.tr_results.setDragDropOverwriteMode(False)
|
||||
self.tr_results.setAlternatingRowColors(False)
|
||||
self.tr_results.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
||||
self.tr_results.setIndentation(10)
|
||||
self.tr_results.setSortingEnabled(True)
|
||||
|
||||
self.lv_search_result.addWidget(self.tr_results)
|
||||
|
||||
self.lh_download = QHBoxLayout()
|
||||
self.lh_download.setObjectName("lh_download")
|
||||
self.l_quality_audio = QLabel(self.w_central)
|
||||
self.l_quality_audio.setObjectName("l_quality_audio")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.l_quality_audio.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.l_quality_audio.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.l_quality_audio.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.l_quality_audio.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.l_quality_audio.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.l_quality_audio.setText("Audio")
|
||||
self.l_quality_audio.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
|
||||
|
||||
self.lh_download.addWidget(self.l_quality_audio)
|
||||
|
||||
self.cb_quality_audio = QComboBox(self.w_central)
|
||||
self.cb_quality_audio.setObjectName("cb_quality_audio")
|
||||
self.cb_quality_audio.setMinimumSize(QSize(140, 0))
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.cb_quality_audio.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.cb_quality_audio.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.cb_quality_audio.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.cb_quality_audio.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.cb_quality_audio.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.cb_quality_audio.setCurrentText("")
|
||||
self.cb_quality_audio.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow)
|
||||
self.cb_quality_audio.setPlaceholderText("")
|
||||
self.cb_quality_audio.setFrame(True)
|
||||
|
||||
self.lh_download.addWidget(self.cb_quality_audio)
|
||||
|
||||
self.l_quality_video = QLabel(self.w_central)
|
||||
self.l_quality_video.setObjectName("l_quality_video")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.l_quality_video.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.l_quality_video.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.l_quality_video.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.l_quality_video.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.l_quality_video.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.l_quality_video.setText("Video")
|
||||
self.l_quality_video.setAlignment(Qt.AlignRight | Qt.AlignTrailing | Qt.AlignVCenter)
|
||||
|
||||
self.lh_download.addWidget(self.l_quality_video)
|
||||
|
||||
self.cb_quality_video = QComboBox(self.w_central)
|
||||
self.cb_quality_video.setObjectName("cb_quality_video")
|
||||
self.cb_quality_video.setMinimumSize(QSize(100, 0))
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.cb_quality_video.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.cb_quality_video.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.cb_quality_video.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.cb_quality_video.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.cb_quality_video.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.cb_quality_video.setCurrentText("")
|
||||
self.cb_quality_video.setSizeAdjustPolicy(QComboBox.AdjustToContentsOnFirstShow)
|
||||
self.cb_quality_video.setPlaceholderText("")
|
||||
|
||||
self.lh_download.addWidget(self.cb_quality_video)
|
||||
|
||||
self.pb_download = QPushButton(self.w_central)
|
||||
self.pb_download.setObjectName("pb_download")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.pb_download.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.pb_download.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.pb_download.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.pb_download.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.pb_download.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.pb_download.setText("Download")
|
||||
# if QT_CONFIG(shortcut)
|
||||
self.pb_download.setShortcut("")
|
||||
# endif // QT_CONFIG(shortcut)
|
||||
|
||||
self.lh_download.addWidget(self.pb_download)
|
||||
|
||||
self.lh_download.setStretch(0, 5)
|
||||
self.lh_download.setStretch(2, 5)
|
||||
self.lh_download.setStretch(4, 15)
|
||||
|
||||
self.lv_search_result.addLayout(self.lh_download)
|
||||
|
||||
self.te_debug = QPlainTextEdit(self.w_central)
|
||||
self.te_debug.setObjectName("te_debug")
|
||||
self.te_debug.setEnabled(True)
|
||||
sizePolicy2 = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Maximum)
|
||||
sizePolicy2.setHorizontalStretch(0)
|
||||
sizePolicy2.setVerticalStretch(0)
|
||||
sizePolicy2.setHeightForWidth(self.te_debug.sizePolicy().hasHeightForWidth())
|
||||
self.te_debug.setSizePolicy(sizePolicy2)
|
||||
self.te_debug.setMaximumSize(QSize(16777215, 16777215))
|
||||
self.te_debug.setAcceptDrops(False)
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.te_debug.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.te_debug.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.te_debug.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.te_debug.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.te_debug.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.te_debug.setUndoRedoEnabled(False)
|
||||
self.te_debug.setReadOnly(True)
|
||||
|
||||
self.lv_search_result.addWidget(self.te_debug)
|
||||
|
||||
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.Policy.Fixed, QSizePolicy.Policy.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_download = QVBoxLayout()
|
||||
self.lv_queue_download.setObjectName("lv_queue_download")
|
||||
self.l_h_queue_download = QLabel(self.w_central)
|
||||
self.l_h_queue_download.setObjectName("l_h_queue_download")
|
||||
font = QFont()
|
||||
font.setBold(True)
|
||||
font.setItalic(False)
|
||||
font.setKerning(True)
|
||||
self.l_h_queue_download.setFont(font)
|
||||
|
||||
self.lv_queue_download.addWidget(self.l_h_queue_download)
|
||||
|
||||
self.tr_queue_download = QTreeWidget(self.w_central)
|
||||
__qtreewidgetitem4 = QTreeWidgetItem()
|
||||
__qtreewidgetitem4.setText(0, "\ud83e\uddd1\u200d\ud83d\udcbb\ufe0f")
|
||||
self.tr_queue_download.setHeaderItem(__qtreewidgetitem4)
|
||||
self.tr_queue_download.setObjectName("tr_queue_download")
|
||||
self.tr_queue_download.setEditTriggers(QAbstractItemView.NoEditTriggers)
|
||||
self.tr_queue_download.setTabKeyNavigation(False)
|
||||
self.tr_queue_download.setProperty("showDropIndicator", False)
|
||||
self.tr_queue_download.setDragDropOverwriteMode(False)
|
||||
self.tr_queue_download.setSelectionMode(QAbstractItemView.ExtendedSelection)
|
||||
self.tr_queue_download.setSelectionBehavior(QAbstractItemView.SelectRows)
|
||||
self.tr_queue_download.setRootIsDecorated(False)
|
||||
self.tr_queue_download.setItemsExpandable(False)
|
||||
self.tr_queue_download.setSortingEnabled(False)
|
||||
self.tr_queue_download.setExpandsOnDoubleClick(False)
|
||||
self.tr_queue_download.header().setProperty("showSortIndicator", False)
|
||||
self.tr_queue_download.header().setStretchLastSection(False)
|
||||
|
||||
self.lv_queue_download.addWidget(self.tr_queue_download)
|
||||
|
||||
self.pb_queue_download_remove = QPushButton(self.w_central)
|
||||
self.pb_queue_download_remove.setObjectName("pb_queue_download_remove")
|
||||
self.pb_queue_download_remove.setEnabled(True)
|
||||
|
||||
self.lv_queue_download.addWidget(self.pb_queue_download_remove)
|
||||
|
||||
self.horizontalLayout_3 = QHBoxLayout()
|
||||
self.horizontalLayout_3.setObjectName("horizontalLayout_3")
|
||||
self.pb_queue_download_clear_finished = QPushButton(self.w_central)
|
||||
self.pb_queue_download_clear_finished.setObjectName("pb_queue_download_clear_finished")
|
||||
|
||||
self.horizontalLayout_3.addWidget(self.pb_queue_download_clear_finished)
|
||||
|
||||
self.pb_queue_download_clear_all = QPushButton(self.w_central)
|
||||
self.pb_queue_download_clear_all.setObjectName("pb_queue_download_clear_all")
|
||||
|
||||
self.horizontalLayout_3.addWidget(self.pb_queue_download_clear_all)
|
||||
|
||||
self.lv_queue_download.addLayout(self.horizontalLayout_3)
|
||||
|
||||
self.lv_info.addLayout(self.lv_queue_download)
|
||||
|
||||
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, 1200, 24))
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.menubar.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.menubar.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.menubar.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.menubar.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.menubar.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.m_file = QMenu(self.menubar)
|
||||
self.m_file.setObjectName("m_file")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.m_file.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.m_file.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.m_file.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.m_file.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.m_file.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.m_help = QMenu(self.menubar)
|
||||
self.m_help.setObjectName("m_help")
|
||||
MainWindow.setMenuBar(self.menubar)
|
||||
self.statusbar = QStatusBar(MainWindow)
|
||||
self.statusbar.setObjectName("statusbar")
|
||||
# if QT_CONFIG(tooltip)
|
||||
self.statusbar.setToolTip("")
|
||||
# endif // QT_CONFIG(tooltip)
|
||||
# if QT_CONFIG(statustip)
|
||||
self.statusbar.setStatusTip("")
|
||||
# endif // QT_CONFIG(statustip)
|
||||
# if QT_CONFIG(whatsthis)
|
||||
self.statusbar.setWhatsThis("")
|
||||
# endif // QT_CONFIG(whatsthis)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.statusbar.setAccessibleName("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
# if QT_CONFIG(accessibility)
|
||||
self.statusbar.setAccessibleDescription("")
|
||||
# endif // QT_CONFIG(accessibility)
|
||||
self.statusbar.setLayoutDirection(Qt.LeftToRight)
|
||||
MainWindow.setStatusBar(self.statusbar)
|
||||
|
||||
self.menubar.addAction(self.m_file.menuAction())
|
||||
self.menubar.addAction(self.m_help.menuAction())
|
||||
self.m_file.addAction(self.a_preferences)
|
||||
self.m_file.addAction(self.a_logout)
|
||||
self.m_file.addAction(self.a_exit)
|
||||
self.m_help.addAction(self.a_version)
|
||||
self.m_help.addAction(self.a_updates_check)
|
||||
|
||||
self.retranslateUi(MainWindow)
|
||||
|
||||
QMetaObject.connectSlotsByName(MainWindow)
|
||||
|
||||
# setupUi
|
||||
|
||||
def retranslateUi(self, MainWindow):
|
||||
MainWindow.setWindowTitle(QCoreApplication.translate("MainWindow", "MainWindow", None))
|
||||
self.a_version.setText(QCoreApplication.translate("MainWindow", "Version", None))
|
||||
self.a_exit.setText(QCoreApplication.translate("MainWindow", "Exit", None))
|
||||
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(1, QCoreApplication.translate("MainWindow", "obj", None))
|
||||
|
||||
__sortingEnabled = self.tr_lists_user.isSortingEnabled()
|
||||
self.tr_lists_user.setSortingEnabled(False)
|
||||
___qtreewidgetitem1 = self.tr_lists_user.topLevelItem(0)
|
||||
___qtreewidgetitem1.setText(0, QCoreApplication.translate("MainWindow", "Playlists", None))
|
||||
___qtreewidgetitem2 = self.tr_lists_user.topLevelItem(1)
|
||||
___qtreewidgetitem2.setText(0, QCoreApplication.translate("MainWindow", "Mixes", None))
|
||||
___qtreewidgetitem3 = self.tr_lists_user.topLevelItem(2)
|
||||
___qtreewidgetitem3.setText(0, QCoreApplication.translate("MainWindow", "Favorites", None))
|
||||
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))
|
||||
self.te_debug.setPlaceholderText(QCoreApplication.translate("MainWindow", "Logs...", None))
|
||||
self.l_pm_cover.setText("")
|
||||
self.l_h_queue_download.setText(QCoreApplication.translate("MainWindow", "Download Queue", None))
|
||||
___qtreewidgetitem4 = self.tr_queue_download.headerItem()
|
||||
___qtreewidgetitem4.setText(4, QCoreApplication.translate("MainWindow", "Quality", None))
|
||||
___qtreewidgetitem4.setText(3, QCoreApplication.translate("MainWindow", "Type", None))
|
||||
___qtreewidgetitem4.setText(2, QCoreApplication.translate("MainWindow", "Name", None))
|
||||
___qtreewidgetitem4.setText(1, QCoreApplication.translate("MainWindow", "obj", None))
|
||||
self.pb_queue_download_remove.setText(QCoreApplication.translate("MainWindow", "Remove", None))
|
||||
self.pb_queue_download_clear_finished.setText(QCoreApplication.translate("MainWindow", "Clear Finished", None))
|
||||
self.pb_queue_download_clear_all.setText(QCoreApplication.translate("MainWindow", "Clear All", None))
|
||||
self.m_file.setTitle(QCoreApplication.translate("MainWindow", "File", None))
|
||||
self.m_help.setTitle(QCoreApplication.translate("MainWindow", "Help", None))
|
||||
|
||||
# retranslateUi
|
801
tidal_dl_ng/ui/main.ui
Normal file
801
tidal_dl_ng/ui/main.ui
Normal file
@ -0,0 +1,801 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>MainWindow</class>
|
||||
<widget class="QMainWindow" name="MainWindow">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1200</width>
|
||||
<height>800</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>MainWindow</string>
|
||||
</property>
|
||||
<widget class="QWidget" name="w_central">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||
<horstretch>100</horstretch>
|
||||
<verstretch>100</verstretch>
|
||||
</sizepolicy>
|
||||
</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>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,50,25">
|
||||
<item>
|
||||
<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="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</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="QHBoxLayout" name="lh_search">
|
||||
<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"/>
|
||||
</property>
|
||||
<property name="accessibleName">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="accessibleDescription">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="locale">
|
||||
<locale language="English" country="UnitedStates"/>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="placeholderText">
|
||||
<string notr="true">Type and press ENTER to search...</string>
|
||||
</property>
|
||||
<property name="clearButtonEnabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QComboBox" name="cb_search_type">
|
||||
<property name="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</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="currentText">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
||||
</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="QTreeView" 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>
|
||||
</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="minimumSize">
|
||||
<size>
|
||||
<width>140</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</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="currentText">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
||||
</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="minimumSize">
|
||||
<size>
|
||||
<width>100</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</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="currentText">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="sizeAdjustPolicy">
|
||||
<enum>QComboBox::AdjustToContentsOnFirstShow</enum>
|
||||
</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">
|
||||
<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="horizontalLayout_2">
|
||||
<item>
|
||||
<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="maximumSize">
|
||||
<size>
|
||||
<width>280</width>
|
||||
<height>280</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="baseSize">
|
||||
<size>
|
||||
<width>0</width>
|
||||
<height>0</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="frameShape">
|
||||
<enum>QFrame::NoFrame</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
<property name="pixmap">
|
||||
<pixmap>default_album_image.png</pixmap>
|
||||
</property>
|
||||
<property name="scaledContents">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="alignment">
|
||||
<set>Qt::AlignHCenter|Qt::AlignTop</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QVBoxLayout" name="lv_queue_download">
|
||||
<item>
|
||||
<widget class="QLabel" name="l_h_queue_download">
|
||||
<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_queue_download">
|
||||
<property name="editTriggers">
|
||||
<set>QAbstractItemView::NoEditTriggers</set>
|
||||
</property>
|
||||
<property name="tabKeyNavigation">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="showDropIndicator" stdset="0">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="dragDropOverwriteMode">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="selectionMode">
|
||||
<enum>QAbstractItemView::ExtendedSelection</enum>
|
||||
</property>
|
||||
<property name="selectionBehavior">
|
||||
<enum>QAbstractItemView::SelectRows</enum>
|
||||
</property>
|
||||
<property name="rootIsDecorated">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="itemsExpandable">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="sortingEnabled">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="expandsOnDoubleClick">
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<attribute name="headerShowSortIndicator" stdset="0">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<attribute name="headerStretchLastSection">
|
||||
<bool>false</bool>
|
||||
</attribute>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string notr="true">🧑💻️</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>obj</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Type</string>
|
||||
</property>
|
||||
</column>
|
||||
<column>
|
||||
<property name="text">
|
||||
<string>Quality</string>
|
||||
</property>
|
||||
</column>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_queue_download_remove">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Remove</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_queue_download_clear_finished">
|
||||
<property name="text">
|
||||
<string>Clear Finished</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="pb_queue_download_clear_all">
|
||||
<property name="text">
|
||||
<string>Clear All</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QMenuBar" name="menubar">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>1200</width>
|
||||
<height>24</height>
|
||||
</rect>
|
||||
</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>
|
||||
<widget class="QMenu" name="m_file">
|
||||
<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="title">
|
||||
<string>File</string>
|
||||
</property>
|
||||
<addaction name="a_preferences"/>
|
||||
<addaction name="a_logout"/>
|
||||
<addaction name="a_exit"/>
|
||||
</widget>
|
||||
<widget class="QMenu" name="m_help">
|
||||
<property name="title">
|
||||
<string>Help</string>
|
||||
</property>
|
||||
<addaction name="a_version"/>
|
||||
<addaction name="a_updates_check"/>
|
||||
</widget>
|
||||
<addaction name="m_file"/>
|
||||
<addaction name="m_help"/>
|
||||
</widget>
|
||||
<widget class="QStatusBar" name="statusbar">
|
||||
<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="layoutDirection">
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
</widget>
|
||||
<action name="a_preferences">
|
||||
<property name="enabled">
|
||||
<bool>true</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string notr="true">Preferences...</string>
|
||||
</property>
|
||||
<property name="iconText">
|
||||
<string notr="true">Preferences...</string>
|
||||
</property>
|
||||
<property name="toolTip">
|
||||
<string notr="true">Preferences...</string>
|
||||
</property>
|
||||
<property name="statusTip">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
<property name="whatsThis">
|
||||
<string notr="true"/>
|
||||
</property>
|
||||
</action>
|
||||
<action name="a_version">
|
||||
<property name="text">
|
||||
<string>Version</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="a_exit">
|
||||
<property name="text">
|
||||
<string>Exit</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="a_logout">
|
||||
<property name="text">
|
||||
<string>Logout</string>
|
||||
</property>
|
||||
</action>
|
||||
<action name="a_updates_check">
|
||||
<property name="text">
|
||||
<string>Check for Updates</string>
|
||||
</property>
|
||||
</action>
|
||||
</widget>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
221
tidal_dl_ng/ui/spinner.py
Normal file
221
tidal_dl_ng/ui/spinner.py
Normal file
@ -0,0 +1,221 @@
|
||||
"""
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2012-2014 Alexander Turkin
|
||||
Copyright (c) 2014 William Hallatt
|
||||
Copyright (c) 2015 Jacob Dawid
|
||||
Copyright (c) 2016 Luca Weiss
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
"""
|
||||
|
||||
import math
|
||||
|
||||
from PySide6.QtCore import QRect, Qt, QTimer
|
||||
from PySide6.QtGui import QColor, QPainter
|
||||
from PySide6.QtWidgets import QWidget
|
||||
|
||||
|
||||
# Taken from https://github.com/COOLMSF/QtWaitingSpinnerForPyQt6 and adapted for PySide6.
|
||||
class QtWaitingSpinner(QWidget):
|
||||
def __init__(
|
||||
self, parent, centerOnParent=True, disableParentWhenSpinning=False, modality=Qt.WindowModality.NonModal
|
||||
):
|
||||
super().__init__(parent)
|
||||
|
||||
self._centerOnParent = centerOnParent
|
||||
self._disableParentWhenSpinning = disableParentWhenSpinning
|
||||
|
||||
# WAS IN initialize()
|
||||
self._color = QColor(Qt.GlobalColor.black)
|
||||
self._roundness = 100.0
|
||||
self._minimumTrailOpacity = 3.14159265358979323846
|
||||
self._trailFadePercentage = 80.0
|
||||
self._revolutionsPerSecond = 1.57079632679489661923
|
||||
self._numberOfLines = 20
|
||||
self._lineLength = 10
|
||||
self._lineWidth = 2
|
||||
self._innerRadius = 10
|
||||
self._currentCounter = 0
|
||||
self._isSpinning = False
|
||||
|
||||
self._timer = QTimer(self)
|
||||
self._timer.timeout.connect(self.rotate)
|
||||
self.updateSize()
|
||||
self.updateTimer()
|
||||
self.hide()
|
||||
# END initialize()
|
||||
|
||||
self.setWindowModality(modality)
|
||||
self.setAttribute(Qt.WidgetAttribute.WA_TranslucentBackground)
|
||||
|
||||
def paintEvent(self, QPaintEvent):
|
||||
self.updatePosition()
|
||||
painter = QPainter(self)
|
||||
painter.fillRect(self.rect(), Qt.GlobalColor.transparent)
|
||||
# Can't found in Qt6
|
||||
# painter.setRenderHint(QPainter.Antialiasing, True)
|
||||
|
||||
if self._currentCounter >= self._numberOfLines:
|
||||
self._currentCounter = 0
|
||||
|
||||
painter.setPen(Qt.PenStyle.NoPen)
|
||||
for i in range(0, self._numberOfLines):
|
||||
painter.save()
|
||||
painter.translate(self._innerRadius + self._lineLength, self._innerRadius + self._lineLength)
|
||||
rotateAngle = float(360 * i) / float(self._numberOfLines)
|
||||
painter.rotate(rotateAngle)
|
||||
painter.translate(self._innerRadius, 0)
|
||||
distance = self.lineCountDistanceFromPrimary(i, self._currentCounter, self._numberOfLines)
|
||||
color = self.currentLineColor(
|
||||
distance, self._numberOfLines, self._trailFadePercentage, self._minimumTrailOpacity, self._color
|
||||
)
|
||||
painter.setBrush(color)
|
||||
rect = QRect(0, int(-self._lineWidth / 2), int(self._lineLength), int(self._lineWidth))
|
||||
painter.drawRoundedRect(rect, self._roundness, self._roundness, Qt.SizeMode.RelativeSize)
|
||||
painter.restore()
|
||||
|
||||
def start(self):
|
||||
self.updatePosition()
|
||||
self._isSpinning = True
|
||||
self.show()
|
||||
|
||||
if self.parentWidget and self._disableParentWhenSpinning:
|
||||
self.parentWidget().setEnabled(False)
|
||||
|
||||
if not self._timer.isActive():
|
||||
self._timer.start()
|
||||
self._currentCounter = 0
|
||||
|
||||
def stop(self):
|
||||
self._isSpinning = False
|
||||
self.hide()
|
||||
|
||||
if self.parentWidget() and self._disableParentWhenSpinning:
|
||||
self.parentWidget().setEnabled(True)
|
||||
|
||||
if self._timer.isActive():
|
||||
self._timer.stop()
|
||||
self._currentCounter = 0
|
||||
|
||||
def setNumberOfLines(self, lines):
|
||||
self._numberOfLines = lines
|
||||
self._currentCounter = 0
|
||||
self.updateTimer()
|
||||
|
||||
def setLineLength(self, length):
|
||||
self._lineLength = length
|
||||
self.updateSize()
|
||||
|
||||
def setLineWidth(self, width):
|
||||
self._lineWidth = width
|
||||
self.updateSize()
|
||||
|
||||
def setInnerRadius(self, radius):
|
||||
self._innerRadius = radius
|
||||
self.updateSize()
|
||||
|
||||
def color(self):
|
||||
return self._color
|
||||
|
||||
def roundness(self):
|
||||
return self._roundness
|
||||
|
||||
def minimumTrailOpacity(self):
|
||||
return self._minimumTrailOpacity
|
||||
|
||||
def trailFadePercentage(self):
|
||||
return self._trailFadePercentage
|
||||
|
||||
def revolutionsPersSecond(self):
|
||||
return self._revolutionsPerSecond
|
||||
|
||||
def numberOfLines(self):
|
||||
return self._numberOfLines
|
||||
|
||||
def lineLength(self):
|
||||
return self._lineLength
|
||||
|
||||
def lineWidth(self):
|
||||
return self._lineWidth
|
||||
|
||||
def innerRadius(self):
|
||||
return self._innerRadius
|
||||
|
||||
def isSpinning(self):
|
||||
return self._isSpinning
|
||||
|
||||
def setRoundness(self, roundness):
|
||||
self._roundness = max(0.0, min(100.0, roundness))
|
||||
|
||||
def setColor(self, color=Qt.GlobalColor.black):
|
||||
self._color = QColor(color)
|
||||
|
||||
def setRevolutionsPerSecond(self, revolutionsPerSecond):
|
||||
self._revolutionsPerSecond = revolutionsPerSecond
|
||||
self.updateTimer()
|
||||
|
||||
def setTrailFadePercentage(self, trail):
|
||||
self._trailFadePercentage = trail
|
||||
|
||||
def setMinimumTrailOpacity(self, minimumTrailOpacity):
|
||||
self._minimumTrailOpacity = minimumTrailOpacity
|
||||
|
||||
def rotate(self):
|
||||
self._currentCounter += 1
|
||||
if self._currentCounter >= self._numberOfLines:
|
||||
self._currentCounter = 0
|
||||
self.update()
|
||||
|
||||
def updateSize(self):
|
||||
size = int((self._innerRadius + self._lineLength) * 2)
|
||||
self.setFixedSize(size, size)
|
||||
|
||||
def updateTimer(self):
|
||||
self._timer.setInterval(int(1000 / (self._numberOfLines * self._revolutionsPerSecond)))
|
||||
|
||||
def updatePosition(self):
|
||||
if self.parentWidget() and self._centerOnParent:
|
||||
self.move(
|
||||
int(self.parentWidget().width() / 2 - self.width() / 2),
|
||||
int(self.parentWidget().height() / 2 - self.height() / 2),
|
||||
)
|
||||
|
||||
def lineCountDistanceFromPrimary(self, current, primary, totalNrOfLines):
|
||||
distance = primary - current
|
||||
if distance < 0:
|
||||
distance += totalNrOfLines
|
||||
return distance
|
||||
|
||||
def currentLineColor(self, countDistance, totalNrOfLines, trailFadePerc, minOpacity, colorinput):
|
||||
color = QColor(colorinput)
|
||||
if countDistance == 0:
|
||||
return color
|
||||
minAlphaF = minOpacity / 100.0
|
||||
distanceThreshold = int(math.ceil((totalNrOfLines - 1) * trailFadePerc / 100.0))
|
||||
if countDistance > distanceThreshold:
|
||||
color.setAlphaF(minAlphaF)
|
||||
else:
|
||||
alphaDiff = color.alphaF() - minAlphaF
|
||||
gradient = alphaDiff / float(distanceThreshold + 1)
|
||||
resultAlpha = color.alphaF() - gradient * countDistance
|
||||
# If alpha is out of bounds, clip it.
|
||||
resultAlpha = min(1.0, max(0.0, resultAlpha))
|
||||
color.setAlphaF(resultAlpha)
|
||||
return color
|
Reference in New Issue
Block a user