diff --git a/tidal_dl_ng/config.py b/tidal_dl_ng/config.py
index f41f314..1ba8c8c 100644
--- a/tidal_dl_ng/config.py
+++ b/tidal_dl_ng/config.py
@@ -224,14 +224,6 @@ class Tidal(BaseConfig, metaclass=SingletonMeta):
return True
- def validate_session(self) -> bool:
- """Validate that the TIDAL session is still authenticated.
-
- Returns:
- bool: True if session is valid, False otherwise.
- """
- return self.session.check_login()
-
def is_authentication_error(self, error: Exception) -> bool:
"""Check if an error is related to authentication/OAuth issues.
diff --git a/tidal_dl_ng/gui.py b/tidal_dl_ng/gui.py
index fb8b6c8..14142c1 100644
--- a/tidal_dl_ng/gui.py
+++ b/tidal_dl_ng/gui.py
@@ -568,8 +568,10 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
# We build the menu.
menu = QtWidgets.QMenu()
menu.addAction("Download Playlist", lambda: self.thread_download_list_media(point))
+ menu.addAction(
+ "Download All Albums in Playlist", lambda: self.thread_it(self.on_download_all_albums_from_playlist, point)
+ )
menu.addAction("Copy Share URL", lambda: self.on_copy_url_share(self.tr_lists_user, point))
- menu.addAction("Download All Albums", lambda: self.thread_it(self.on_download_all_albums_from_playlist, point))
menu.exec(self.tr_lists_user.mapToGlobal(point))
@@ -742,7 +744,7 @@ class MainWindow(QtWidgets.QMainWindow, Ui_MainWindow):
time.sleep(delay_sec)
# Check session validity before making API calls
- if not self.tidal.validate_session():
+ if not self.tidal.session.check_login():
logger_gui.error("Session expired. Please restart the application and login again.")
return albums_dict
diff --git a/tidal_dl_ng/ui/dialog_settings.py b/tidal_dl_ng/ui/dialog_settings.py
index 8ab6092..b7ae709 100644
--- a/tidal_dl_ng/ui/dialog_settings.py
+++ b/tidal_dl_ng/ui/dialog_settings.py
@@ -27,7 +27,7 @@ class Ui_DialogSettings:
def setupUi(self, DialogSettings):
if not DialogSettings.objectName():
DialogSettings.setObjectName("DialogSettings")
- DialogSettings.resize(640, 800)
+ DialogSettings.resize(640, 832)
sizePolicy = QSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Expanding)
sizePolicy.setHorizontalStretch(100)
sizePolicy.setVerticalStretch(100)
@@ -187,20 +187,6 @@ class Ui_DialogSettings:
self.horizontalLayout_12.addLayout(self.lv_playlist_create)
- self.lv_flag_use_primary_album_artist = QVBoxLayout()
- self.lv_flag_use_primary_album_artist.setObjectName("lv_flag_use_primary_album_artist")
- self.cb_use_primary_album_artist = QCheckBox(self.gb_flags)
- self.cb_use_primary_album_artist.setObjectName("cb_use_primary_album_artist")
-
- self.lv_flag_use_primary_album_artist.addWidget(self.cb_use_primary_album_artist)
-
- self.horizontalLayout_12.addLayout(self.lv_flag_use_primary_album_artist)
-
- self.lv_flags.addLayout(self.horizontalLayout_12)
-
- self.horizontalLayout_13 = QHBoxLayout()
- self.horizontalLayout_13.setObjectName("horizontalLayout_13")
-
self.lv_mark_explicit = QVBoxLayout()
self.lv_mark_explicit.setObjectName("lv_mark_explicit")
self.cb_mark_explicit = QCheckBox(self.gb_flags)
@@ -208,26 +194,31 @@ class Ui_DialogSettings:
self.lv_mark_explicit.addWidget(self.cb_mark_explicit)
- self.horizontalLayout_13.addLayout(self.lv_mark_explicit)
+ self.horizontalLayout_12.addLayout(self.lv_mark_explicit)
- self.lv_flags.addLayout(self.horizontalLayout_13)
+ self.lv_flags.addLayout(self.horizontalLayout_12)
- self.lh_flags_atmos = QHBoxLayout()
- self.lh_flags_atmos.setObjectName("lh_flags_atmos")
- self.lv_flag_download_dolby_atmos = QVBoxLayout()
- self.lv_flag_download_dolby_atmos.setObjectName("lv_flag_download_dolby_atmos")
+ self.horizontalLayout_13 = QHBoxLayout()
+ self.horizontalLayout_13.setObjectName("horizontalLayout_13")
+ self.lv_use_primary_album_artist = QVBoxLayout()
+ self.lv_use_primary_album_artist.setObjectName("lv_use_primary_album_artist")
+ self.cb_use_primary_album_artist = QCheckBox(self.gb_flags)
+ self.cb_use_primary_album_artist.setObjectName("cb_use_primary_album_artist")
+
+ self.lv_use_primary_album_artist.addWidget(self.cb_use_primary_album_artist)
+
+ self.horizontalLayout_13.addLayout(self.lv_use_primary_album_artist)
+
+ self.lv_download_dolby_atmos = QVBoxLayout()
+ self.lv_download_dolby_atmos.setObjectName("lv_download_dolby_atmos")
self.cb_download_dolby_atmos = QCheckBox(self.gb_flags)
self.cb_download_dolby_atmos.setObjectName("cb_download_dolby_atmos")
- self.lv_flag_download_dolby_atmos.addWidget(self.cb_download_dolby_atmos)
+ self.lv_download_dolby_atmos.addWidget(self.cb_download_dolby_atmos)
- self.lh_flags_atmos.addLayout(self.lv_flag_download_dolby_atmos)
+ self.horizontalLayout_13.addLayout(self.lv_download_dolby_atmos)
- self.lv_flag_empty_atmos = QVBoxLayout()
- self.lv_flag_empty_atmos.setObjectName("lv_flag_empty_atmos")
- self.lh_flags_atmos.addLayout(self.lv_flag_empty_atmos)
-
- self.lv_flags.addLayout(self.lh_flags_atmos)
+ self.lv_flags.addLayout(self.horizontalLayout_13)
self.lv_main.addWidget(self.gb_flags)
@@ -626,7 +617,6 @@ class Ui_DialogSettings:
# 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_use_primary_album_artist.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))
@@ -635,6 +625,8 @@ class Ui_DialogSettings:
self.cb_symlink_to_track.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
self.cb_playlist_create.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
self.cb_mark_explicit.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
+ self.cb_use_primary_album_artist.setText(QCoreApplication.translate("DialogSettings", "CheckBox", None))
+ self.cb_download_dolby_atmos.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))
diff --git a/tidal_dl_ng/ui/dialog_settings.ui b/tidal_dl_ng/ui/dialog_settings.ui
index 95c6b52..3161095 100644
--- a/tidal_dl_ng/ui/dialog_settings.ui
+++ b/tidal_dl_ng/ui/dialog_settings.ui
@@ -7,7 +7,7 @@
0
0
640
- 800
+ 832
@@ -262,6 +262,32 @@
+ -
+
+
-
+
+
-
+
+
+ CheckBox
+
+
+
+
+
+ -
+
+
-
+
+
+ CheckBox
+
+
+
+
+
+
+