Browse Source

Add icon to licenseDialog (Toolbox flow)

CURA-7129
Nino van Hooff 5 years ago
parent
commit
3b534ea986
1 changed files with 12 additions and 8 deletions
  1. 12 8
      plugins/Toolbox/src/Toolbox.py

+ 12 - 8
plugins/Toolbox/src/Toolbox.py

@@ -154,10 +154,11 @@ class Toolbox(QObject, Extension):
     def getLicenseDialogPluginFileLocation(self) -> str:
         return self._license_dialog_plugin_file_location
 
-    def openLicenseDialog(self, plugin_name: str, license_content: str, plugin_file_location: str) -> None:
+    def openLicenseDialog(self, plugin_name: str, license_content: str, plugin_file_location: str, icon_url: str) -> None:
         # Set page 1/1 when opening the dialog for a single package
         self._license_model.setCurrentPageIdx(0)
         self._license_model.setPageCount(1)
+        self._license_model.setIconUrl(icon_url)
 
         self._license_model.setPackageName(plugin_name)
         self._license_model.setLicenseText(license_content)
@@ -670,14 +671,17 @@ class Toolbox(QObject, Extension):
             return
 
         license_content = self._package_manager.getPackageLicense(file_path)
+        package_id = package_info["package_id"]
         if license_content is not None:
-            self.openLicenseDialog(package_info["package_id"], license_content, file_path)
+            # get the icon url for package_id, make sure the result is a string, never None
+            icon_url = next((x["icon_url"] for x in self.packagesModel.items if x["id"] == package_id), None) or ""
+            self.openLicenseDialog(package_id, license_content, file_path, icon_url)
             return
 
-        package_id = self.install(file_path)
-        if package_id != package_info["package_id"]:
-            Logger.error("Installed package {} does not match {}".format(package_id, package_info["package_id"]))
-        self.subscribe(package_id)
+        installed_id = self.install(file_path)
+        if installed_id != package_id:
+            Logger.error("Installed package {} does not match {}".format(installed_id, package_id))
+        self.subscribe(installed_id)
 
     # Getter & Setters for Properties:
     # --------------------------------------------------------------------------
@@ -699,14 +703,14 @@ class Toolbox(QObject, Extension):
     def isDownloading(self) -> bool:
         return self._is_downloading
 
-    def setActivePackage(self, package: Dict[str, Any]) -> None:
+    def setActivePackage(self, package: QObject) -> None:
         if self._active_package != package:
             self._active_package = package
             self.activePackageChanged.emit()
 
     ##  The active package is the package that is currently being downloaded
     @pyqtProperty(QObject, fset = setActivePackage, notify = activePackageChanged)
-    def activePackage(self) -> Optional[Dict[str, Any]]:
+    def activePackage(self) -> Optional[QObject]:
         return self._active_package
 
     def setViewCategory(self, category: str = "plugin") -> None: