Enable or disable a plugin functionality added

Contributes to: CURA-8587
This commit is contained in:
Jelle Spijker 2021-12-06 11:34:23 +01:00
parent ea85e59e50
commit 579cc7bdbc
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
2 changed files with 16 additions and 4 deletions

View file

@ -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

View file

@ -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)