|
@@ -15,7 +15,7 @@ from plugins.Toolbox.src.CloudSync.LicenseModel import LicenseModel
|
|
|
# licenseAnswers emits a list of Dicts containing answers when the user has made a choice for all provided packages
|
|
|
class LicensePresenter(QObject):
|
|
|
|
|
|
- def __init__(self, app: CuraApplication):
|
|
|
+ def __init__(self, app: CuraApplication) -> None:
|
|
|
super().__init__()
|
|
|
self._dialog = None # type: Optional[QObject]
|
|
|
self._package_manager = app.getPackageManager() # type: PackageManager
|
|
@@ -34,7 +34,7 @@ class LicensePresenter(QObject):
|
|
|
## Show a license dialog for multiple packages where users can read a license and accept or decline them
|
|
|
# \param plugin_path: Root directory of the Toolbox plugin
|
|
|
# \param packages: Dict[package id, file path]
|
|
|
- def present(self, plugin_path: str, packages: Dict[str, str]):
|
|
|
+ def present(self, plugin_path: str, packages: Dict[str, str]) -> None:
|
|
|
path = os.path.join(plugin_path, self._compatibility_dialog_path)
|
|
|
|
|
|
self._initState(packages)
|
|
@@ -51,16 +51,16 @@ class LicensePresenter(QObject):
|
|
|
self._present_current_package()
|
|
|
|
|
|
@pyqtSlot()
|
|
|
- def onLicenseAccepted(self):
|
|
|
+ def onLicenseAccepted(self) -> None:
|
|
|
self._package_models[self._current_package_idx]["accepted"] = True
|
|
|
self._check_next_page()
|
|
|
|
|
|
@pyqtSlot()
|
|
|
- def onLicenseDeclined(self):
|
|
|
+ def onLicenseDeclined(self) -> None:
|
|
|
self._package_models[self._current_package_idx]["accepted"] = False
|
|
|
self._check_next_page()
|
|
|
|
|
|
- def _initState(self, packages: Dict[str, str]):
|
|
|
+ def _initState(self, packages: Dict[str, str]) -> None:
|
|
|
self._package_models = [
|
|
|
{
|
|
|
"package_id" : package_id,
|
|
@@ -70,26 +70,27 @@ class LicensePresenter(QObject):
|
|
|
for package_id, package_path in packages.items()
|
|
|
]
|
|
|
|
|
|
- def _present_current_package(self):
|
|
|
+ def _present_current_package(self) -> None:
|
|
|
package_model = self._package_models[self._current_package_idx]
|
|
|
license_content = self._package_manager.getPackageLicense(package_model["package_path"])
|
|
|
if license_content is None:
|
|
|
- # implicitly accept when there is no license
|
|
|
+ # Implicitly accept when there is no license
|
|
|
self.onLicenseAccepted()
|
|
|
return
|
|
|
|
|
|
self._license_model.setCurrentPageIdx(self._current_package_idx)
|
|
|
self._license_model.setPackageName(package_model["package_id"])
|
|
|
self._license_model.setLicenseText(license_content)
|
|
|
+ if self._dialog:
|
|
|
+ self._dialog.open() # Does nothing if already open
|
|
|
|
|
|
- self._dialog.open() # does nothing if already open
|
|
|
-
|
|
|
- def _check_next_page(self):
|
|
|
+ def _check_next_page(self) -> None:
|
|
|
if self._current_package_idx + 1 < len(self._package_models):
|
|
|
self._current_package_idx += 1
|
|
|
self._present_current_package()
|
|
|
else:
|
|
|
- self._dialog.close()
|
|
|
+ if self._dialog:
|
|
|
+ self._dialog.close()
|
|
|
self.licenseAnswers.emit(self._package_models)
|
|
|
|
|
|
|