Browse Source

Merge branch 'CURA-8587_disable_update_install_and_uninstall' of github.com:Ultimaker/Cura into CURA-8587_disable_update_install_and_uninstall

Jaime van Kessel 3 years ago
parent
commit
b28cb5ad5e
2 changed files with 16 additions and 4 deletions
  1. 6 2
      plugins/Marketplace/PackageList.py
  2. 10 2
      plugins/Marketplace/PackageModel.py

+ 6 - 2
plugins/Marketplace/PackageList.py

@@ -11,6 +11,7 @@ from UM.Qt.ListModel import ListModel
 from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
 from UM.TaskManagement.HttpRequestScope import JsonDecoratorScope
 from UM.TaskManagement.HttpRequestManager import HttpRequestData, HttpRequestManager
 from UM.TaskManagement.HttpRequestManager import HttpRequestData, HttpRequestManager
 from UM.Logger import Logger
 from UM.Logger import Logger
+from UM import PluginRegistry
 
 
 from cura.CuraApplication import CuraApplication
 from cura.CuraApplication import CuraApplication
 from cura import CuraPackageManager
 from cura import CuraPackageManager
@@ -35,6 +36,7 @@ class PackageList(ListModel):
     def __init__(self, parent: Optional["QObject"] = None) -> None:
     def __init__(self, parent: Optional["QObject"] = None) -> None:
         super().__init__(parent)
         super().__init__(parent)
         self._manager: CuraPackageManager = CuraApplication.getInstance().getPackageManager()
         self._manager: CuraPackageManager = CuraApplication.getInstance().getPackageManager()
+        self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry()
         self._account = CuraApplication.getInstance().getCuraAPI().account
         self._account = CuraApplication.getInstance().getCuraAPI().account
         self._error_message = ""
         self._error_message = ""
         self.addRoleName(self.PackageRole, "package")
         self.addRoleName(self.PackageRole, "package")
@@ -229,7 +231,8 @@ class PackageList(ListModel):
         package = self.getPackageModel(package_id)
         package = self.getPackageModel(package_id)
         package.is_enabling = True
         package.is_enabling = True
         Logger.debug(f"Enabling {package_id}")
         Logger.debug(f"Enabling {package_id}")
-        # TODO: implement enabling functionality
+        self._plugin_registry.enablePlugin(package_id)
+        package.is_active = True
         package.is_enabling = False
         package.is_enabling = False
 
 
     @pyqtSlot(str)
     @pyqtSlot(str)
@@ -237,5 +240,6 @@ class PackageList(ListModel):
         package = self.getPackageModel(package_id)
         package = self.getPackageModel(package_id)
         package.is_enabling = True
         package.is_enabling = True
         Logger.debug(f"Disabling {package_id}")
         Logger.debug(f"Disabling {package_id}")
-        # TODO: implement disabling functionality
+        self._plugin_registry.disablePlugin(package_id)
+        package.is_active = False
         package.is_enabling = False
         package.is_enabling = False

+ 10 - 2
plugins/Marketplace/PackageModel.py

@@ -287,8 +287,6 @@ class PackageModel(QObject):
         if self._is_recently_managed:
         if self._is_recently_managed:
             return "hidden"
             return "hidden"
         if self._package_type == "material":
         if self._package_type == "material":
-            if self._is_bundled:  # TODO: Check if a bundled material can/should be un-/install en-/disabled
-                return "secondary"
             return "hidden"
             return "hidden"
         if not self._is_installed:
         if not self._is_installed:
             return "hidden"
             return "hidden"
@@ -306,6 +304,16 @@ class PackageModel(QObject):
             self._is_enabling = value
             self._is_enabling = value
             self.stateManageButtonChanged.emit()
             self.stateManageButtonChanged.emit()
 
 
+    @property
+    def is_active(self) -> bool:
+        return self._is_active
+
+    @is_active.setter
+    def is_active(self, value: bool) -> None:
+        if value != self._is_active:
+            self._is_active = value
+            self.stateManageButtonChanged.emit()
+
     # --- Installing ---
     # --- Installing ---
 
 
     @pyqtProperty(str, notify = stateManageButtonChanged)
     @pyqtProperty(str, notify = stateManageButtonChanged)