diff options
| author | Robert Honz <exislow+github@gmail.com> | 2024-03-28 07:44:47 +0100 |
|---|---|---|
| committer | Robert Honz <exislow+github@gmail.com> | 2024-03-28 07:44:47 +0100 |
| commit | 9e27dd39b94a37594a2dd2ddeb48041a4a024fb8 (patch) | |
| tree | 923c17d40f26ea7826d673688770e022507b2861 /tidal_dl_ng/dialog.py | |
| parent | 1ab71a45d385cc51d65ab04d71989e2906588509 (diff) | |
| download | tidal-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.py | 36 |
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.""" |
