Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Marketplace/CloudSync/LicenseModel.py')
-rw-r--r--plugins/Marketplace/CloudSync/LicenseModel.py80
1 files changed, 80 insertions, 0 deletions
diff --git a/plugins/Marketplace/CloudSync/LicenseModel.py b/plugins/Marketplace/CloudSync/LicenseModel.py
new file mode 100644
index 0000000000..777ecca1e9
--- /dev/null
+++ b/plugins/Marketplace/CloudSync/LicenseModel.py
@@ -0,0 +1,80 @@
+# Copyright (c) 2022 Ultimaker B.V.
+# Cura is released under the terms of the LGPLv3 or higher.
+
+from PyQt6.QtCore import QObject, pyqtProperty, pyqtSignal
+from UM.i18n import i18nCatalog
+
+catalog = i18nCatalog("cura")
+
+
+# Model for the ToolboxLicenseDialog
+class LicenseModel(QObject):
+ DEFAULT_DECLINE_BUTTON_TEXT = catalog.i18nc("@button", "Decline")
+ ACCEPT_BUTTON_TEXT = catalog.i18nc("@button", "Agree")
+
+ dialogTitleChanged = pyqtSignal()
+ packageNameChanged = pyqtSignal()
+ licenseTextChanged = pyqtSignal()
+ iconChanged = pyqtSignal()
+
+ def __init__(self, decline_button_text: str = DEFAULT_DECLINE_BUTTON_TEXT, parent = None) -> None:
+ super().__init__(parent)
+
+ self._current_page_idx = 0
+ self._page_count = 1
+ self._dialogTitle = ""
+ self._license_text = ""
+ self._package_name = ""
+ self._icon_url = ""
+ self._decline_button_text = decline_button_text
+
+ @pyqtProperty(str, constant = True)
+ def acceptButtonText(self):
+ return self.ACCEPT_BUTTON_TEXT
+
+ @pyqtProperty(str, constant = True)
+ def declineButtonText(self):
+ return self._decline_button_text
+
+ @pyqtProperty(str, notify=dialogTitleChanged)
+ def dialogTitle(self) -> str:
+ return self._dialogTitle
+
+ @pyqtProperty(str, notify=packageNameChanged)
+ def packageName(self) -> str:
+ return self._package_name
+
+ def setPackageName(self, name: str) -> None:
+ self._package_name = name
+ self.packageNameChanged.emit()
+
+ @pyqtProperty(str, notify=iconChanged)
+ def iconUrl(self) -> str:
+ return self._icon_url
+
+ def setIconUrl(self, url: str):
+ self._icon_url = url
+ self.iconChanged.emit()
+
+ @pyqtProperty(str, notify=licenseTextChanged)
+ def licenseText(self) -> str:
+ return self._license_text
+
+ def setLicenseText(self, license_text: str) -> None:
+ if self._license_text != license_text:
+ self._license_text = license_text
+ self.licenseTextChanged.emit()
+
+ def setCurrentPageIdx(self, idx: int) -> None:
+ self._current_page_idx = idx
+ self._updateDialogTitle()
+
+ def setPageCount(self, count: int) -> None:
+ self._page_count = count
+ self._updateDialogTitle()
+
+ def _updateDialogTitle(self):
+ self._dialogTitle = catalog.i18nc("@title:window", "Plugin License Agreement")
+ if self._page_count > 1:
+ self._dialogTitle = self._dialogTitle + " ({}/{})".format(self._current_page_idx + 1, self._page_count)
+ self.dialogTitleChanged.emit()