summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/ui
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-02-04 12:19:40 +0100
committerRobert Honz <exislow+github@gmail.com>2024-02-04 12:19:40 +0100
commitc71a2bdb0b0bd007a629d2f0692bfb4b1e753a1f (patch)
treeb53d0852e6551c00b041e232d41a37dbc27a33bd /tidal_dl_ng/ui
parentc8e4cc6fd70b4059d180976e4a078c44babcbd3e (diff)
downloadtidal-dl-ng-c71a2bdb0b0bd007a629d2f0692bfb4b1e753a1f.tar.gz
✨ Preferences dialog added. Show settings.
Diffstat (limited to 'tidal_dl_ng/ui')
-rw-r--r--tidal_dl_ng/ui/dialog_settings.py493
-rw-r--r--tidal_dl_ng/ui/dialog_settings.ui645
-rw-r--r--tidal_dl_ng/ui/main.py2
-rw-r--r--tidal_dl_ng/ui/main.ui2
4 files changed, 1140 insertions, 2 deletions
diff --git a/tidal_dl_ng/ui/dialog_settings.py b/tidal_dl_ng/ui/dialog_settings.py
new file mode 100644
index 0000000..019fdc6
--- /dev/null
+++ b/tidal_dl_ng/ui/dialog_settings.py
@@ -0,0 +1,493 @@
+################################################################################
+## Form generated from reading UI file 'dialog_settings.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, Qt
+from PySide6.QtWidgets import (
+ QCheckBox,
+ QComboBox,
+ QDialogButtonBox,
+ QGroupBox,
+ QHBoxLayout,
+ QLabel,
+ QLayout,
+ QLineEdit,
+ QPushButton,
+ QSizePolicy,
+ QVBoxLayout,
+)
+
+
+class Ui_DialogSettings:
+ def setupUi(self, DialogSettings):
+ if not DialogSettings.objectName():
+ DialogSettings.setObjectName("DialogSettings")
+ DialogSettings.resize(640, 682)
+ sizePolicy = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.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.Expanding, QSizePolicy.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_flags_video_download = QVBoxLayout()
+ self.lv_flags_video_download.setObjectName("lv_flags_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_flags_video_download.addWidget(self.cb_video_download)
+
+ self.lh_flags_1.addLayout(self.lv_flags_video_download)
+
+ self.lv_flags_video_convert = QVBoxLayout()
+ self.lv_flags_video_convert.setObjectName("lv_flags_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_flags_video_convert.addWidget(self.cb_video_convert_mp4)
+
+ self.lh_flags_1.addLayout(self.lv_flags_video_convert)
+
+ self.lv_flags.addLayout(self.lh_flags_1)
+
+ self.lh_flags_2 = QHBoxLayout()
+ self.lh_flags_2.setObjectName("lh_flags_2")
+ self.lh_flags_lyrics_embed = QHBoxLayout()
+ self.lh_flags_lyrics_embed.setObjectName("lh_flags_lyrics_embed")
+ self.cb_lyrics_embed = QCheckBox(self.gb_flags)
+ self.cb_lyrics_embed.setObjectName("cb_lyrics_embed")
+ sizePolicy2 = QSizePolicy(QSizePolicy.Expanding, QSizePolicy.Fixed)
+ sizePolicy2.setHorizontalStretch(0)
+ sizePolicy2.setVerticalStretch(0)
+ sizePolicy2.setHeightForWidth(self.cb_lyrics_embed.sizePolicy().hasHeightForWidth())
+ self.cb_lyrics_embed.setSizePolicy(sizePolicy2)
+
+ self.lh_flags_lyrics_embed.addWidget(self.cb_lyrics_embed)
+
+ self.lh_flags_2.addLayout(self.lh_flags_lyrics_embed)
+
+ self.lh_flags_lyrics_file = QHBoxLayout()
+ self.lh_flags_lyrics_file.setObjectName("lh_flags_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.lh_flags_lyrics_file.addWidget(self.cb_lyrics_file)
+
+ self.lh_flags_2.addLayout(self.lh_flags_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.verticalLayout_4 = QVBoxLayout()
+ self.verticalLayout_4.setObjectName("verticalLayout_4")
+
+ self.lh_flag_3.addLayout(self.verticalLayout_4)
+
+ self.lv_flags.addLayout(self.lh_flag_3)
+
+ self.lv_main.addWidget(self.gb_flags)
+
+ self.gb_choices = QGroupBox(DialogSettings)
+ self.gb_choices.setObjectName("gb_choices")
+ sizePolicy3 = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.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_skip_existing = QHBoxLayout()
+ self.lh_choices_skip_existing.setObjectName("lh_choices_skip_existing")
+ self.l_icon_skip_existing = QLabel(self.gb_choices)
+ self.l_icon_skip_existing.setObjectName("l_icon_skip_existing")
+ sizePolicy4 = QSizePolicy(QSizePolicy.Fixed, QSizePolicy.Fixed)
+ sizePolicy4.setHorizontalStretch(0)
+ sizePolicy4.setVerticalStretch(0)
+ sizePolicy4.setHeightForWidth(self.l_icon_skip_existing.sizePolicy().hasHeightForWidth())
+ self.l_icon_skip_existing.setSizePolicy(sizePolicy4)
+
+ self.lh_choices_skip_existing.addWidget(self.l_icon_skip_existing)
+
+ self.l_skip_existing = QLabel(self.gb_choices)
+ self.l_skip_existing.setObjectName("l_skip_existing")
+ sizePolicy4.setHeightForWidth(self.l_skip_existing.sizePolicy().hasHeightForWidth())
+ self.l_skip_existing.setSizePolicy(sizePolicy4)
+
+ self.lh_choices_skip_existing.addWidget(self.l_skip_existing)
+
+ self.c_skip_existing = QComboBox(self.gb_choices)
+ self.c_skip_existing.setObjectName("c_skip_existing")
+
+ self.lh_choices_skip_existing.addWidget(self.c_skip_existing)
+
+ self.lh_choices_skip_existing.setStretch(2, 50)
+
+ self.lv_choices.addLayout(self.lh_choices_skip_existing)
+
+ 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.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.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.Preferred, QSizePolicy.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_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.Fixed, QSizePolicy.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.horizontalLayout_2.addLayout(self.verticalLayout_2)
+
+ self.verticalLayout = QVBoxLayout()
+ self.verticalLayout.setObjectName("verticalLayout")
+ self.horizontalLayout_3 = QHBoxLayout()
+ self.horizontalLayout_3.setObjectName("horizontalLayout_3")
+ 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_3.addWidget(self.le_download_base_path)
+
+ self.b_download_base_path = QPushButton(self.gb_path)
+ self.b_download_base_path.setObjectName("b_download_base_path")
+
+ self.horizontalLayout_3.addWidget(self.b_download_base_path)
+
+ self.verticalLayout.addLayout(self.horizontalLayout_3)
+
+ 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_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.Horizontal)
+ self.bb_dialog.setStandardButtons(QDialogButtonBox.Cancel | QDialogButtonBox.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.gb_choices.setTitle(QCoreApplication.translate("DialogSettings", "Choices", None))
+ self.l_icon_skip_existing.setText(QCoreApplication.translate("DialogSettings", "TextLabel", None))
+ self.l_skip_existing.setText(QCoreApplication.translate("DialogSettings", "TextLabel", 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_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.b_download_base_path.setText(QCoreApplication.translate("DialogSettings", "...", None))
+
+ # retranslateUi
diff --git a/tidal_dl_ng/ui/dialog_settings.ui b/tidal_dl_ng/ui/dialog_settings.ui
new file mode 100644
index 0000000..7826271
--- /dev/null
+++ b/tidal_dl_ng/ui/dialog_settings.ui
@@ -0,0 +1,645 @@
+<?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>682</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_flags_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_flags_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="QHBoxLayout" name="lh_flags_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="QHBoxLayout" name="lh_flags_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="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_skip_existing" stretch="0,0,50">
+ <item>
+ <widget class="QLabel" name="l_icon_skip_existing">
+ <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_skip_existing">
+ <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_skip_existing"/>
+ </item>
+ </layout>
+ </item>
+ <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::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_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>
+ </layout>
+ </item>
+ <item>
+ <layout class="QVBoxLayout" name="verticalLayout">
+ <item>
+ <layout class="QHBoxLayout" name="horizontalLayout_3">
+ <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="b_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>
+ </layout>
+ </item>
+ </layout>
+ </widget>
+ </item>
+ <item>
+ <widget class="QDialogButtonBox" name="bb_dialog">
+ <property name="orientation">
+ <enum>Qt::Horizontal</enum>
+ </property>
+ <property name="standardButtons">
+ <set>QDialogButtonBox::Cancel|QDialogButtonBox::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>
diff --git a/tidal_dl_ng/ui/main.py b/tidal_dl_ng/ui/main.py
index 50c1b2f..65735e6 100644
--- a/tidal_dl_ng/ui/main.py
+++ b/tidal_dl_ng/ui/main.py
@@ -35,7 +35,7 @@ class Ui_MainWindow:
MainWindow.resize(900, 700)
self.a_preferences = QAction(MainWindow)
self.a_preferences.setObjectName("a_preferences")
- self.a_preferences.setEnabled(False)
+ self.a_preferences.setEnabled(True)
self.a_preferences.setText("Preferences...")
self.a_preferences.setIconText("Preferences...")
# if QT_CONFIG(tooltip)
diff --git a/tidal_dl_ng/ui/main.ui b/tidal_dl_ng/ui/main.ui
index 4152dd7..7a5f86f 100644
--- a/tidal_dl_ng/ui/main.ui
+++ b/tidal_dl_ng/ui/main.ui
@@ -568,7 +568,7 @@
</widget>
<action name="a_preferences">
<property name="enabled">
- <bool>false</bool>
+ <bool>true</bool>
</property>
<property name="text">
<string notr="true">Preferences...</string>