summaryrefslogtreecommitdiff
path: root/tidal_dl_ng/dialog.py
diff options
context:
space:
mode:
authorRobert Honz <exislow+github@gmail.com>2024-03-28 07:44:47 +0100
committerRobert Honz <exislow+github@gmail.com>2024-03-28 07:44:47 +0100
commit9e27dd39b94a37594a2dd2ddeb48041a4a024fb8 (patch)
tree923c17d40f26ea7826d673688770e022507b2861 /tidal_dl_ng/dialog.py
parent1ab71a45d385cc51d65ab04d71989e2906588509 (diff)
downloadtidal-dl-ng-9e27dd39b94a37594a2dd2ddeb48041a4a024fb8.tar.gz
✨ Updates will be automatically checked on startup and can also be checked manually. Version dialog is used to display update information. Fixes #76
Diffstat (limited to 'tidal_dl_ng/dialog.py')
-rw-r--r--tidal_dl_ng/dialog.py36
1 files changed, 35 insertions, 1 deletions
diff --git a/tidal_dl_ng/dialog.py b/tidal_dl_ng/dialog.py
index 2faa79c..8d48037 100644
--- a/tidal_dl_ng/dialog.py
+++ b/tidal_dl_ng/dialog.py
@@ -1,4 +1,5 @@
import os.path
+import webbrowser
from enum import Enum
from pathlib import Path
@@ -11,6 +12,7 @@ from tidal_dl_ng.constants import CoverDimensions, QualityVideo, SkipExisting
from tidal_dl_ng.helper.path import is_installed_ffmpeg
from tidal_dl_ng.model.cfg import HelpSettings
from tidal_dl_ng.model.cfg import Settings as ModelSettings
+from tidal_dl_ng.model.meta import ReleaseLatest
from tidal_dl_ng.ui.dialog_login import Ui_DialogLogin
from tidal_dl_ng.ui.dialog_settings import Ui_DialogSettings
from tidal_dl_ng.ui.dialog_version import Ui_DialogVersion
@@ -21,7 +23,9 @@ class DialogVersion(QtWidgets.QDialog):
ui: Ui_DialogVersion
- def __init__(self, parent=None):
+ def __init__(
+ self, parent=None, update_check: bool = False, update_available: bool = False, update_info: ReleaseLatest = None
+ ):
super().__init__(parent)
# Create an instance of the GUI
@@ -31,9 +35,39 @@ class DialogVersion(QtWidgets.QDialog):
self.ui.setupUi(self)
# Set the version.
self.ui.l_version.setText("v" + __version__)
+
+ if not update_check:
+ self.update_info_hide()
+ self.error_hide()
+ else:
+ self.update_info(update_available, update_info)
+
# Show
self.exec()
+ def update_info(self, update_available: bool, update_info: ReleaseLatest):
+ if not update_available and update_info.version == "v0.0.0":
+ self.update_info_hide()
+ self.ui.l_error_details.setText(
+ "Cannot retrieve update information. Maybe something is wrong with your internet connection."
+ )
+ else:
+ self.error_hide()
+ self.ui.l_version_new.setText(update_info.version)
+ self.ui.l_changelog_details.setText(update_info.release_info)
+ self.ui.pb_download.clicked.connect(lambda: webbrowser.open(update_info.url))
+
+ def error_hide(self):
+ self.ui.l_error.setHidden(True)
+ self.ui.l_error_details.setHidden(True)
+
+ def update_info_hide(self):
+ self.ui.l_h_version_new.setHidden(True)
+ self.ui.l_version_new.setHidden(True)
+ self.ui.l_changelog.setHidden(True)
+ self.ui.l_changelog_details.setHidden(True)
+ self.ui.pb_download.setHidden(True)
+
class DialogLogin(QtWidgets.QDialog):
"""Version dialog."""