1234567891011121314151617181920212223242526272829303132 |
- # Copyright (c) 2021 Ultimaker B.V.
- # Cura is released under the terms of the LGPLv3 or higher.
- from typing import Optional
- from PyQt5.QtCore import QObject, pyqtProperty, pyqtSignal
- from cura.CuraApplication import CuraApplication
- from UM.PluginRegistry import PluginRegistry
- class Manager(QObject):
- def __init__(self, parent: Optional[QObject] = None):
- super().__init__(parent = parent)
- self._manager: "CuraPackageManager" = CuraApplication.getInstance().getPackageManager()
- self._plugin_registry: PluginRegistry = CuraApplication.getInstance().getPluginRegistry()
- self._manager.installedPackagesChanged.connect(self.checkIfRestartNeeded)
- self._plugin_registry.hasPluginsEnabledOrDisabledChanged.connect(self.checkIfRestartNeeded)
- self._restart_needed = False
- def checkIfRestartNeeded(self):
- if self._manager.hasPackagesToRemoveOrInstall or len(self._plugin_registry.getCurrentSessionActivationChangedPlugins()) > 0:
- self._restart_needed = True
- else:
- self._restart_needed = False
- self.showRestartNotificationChanged.emit()
- showRestartNotificationChanged = pyqtSignal()
- @pyqtProperty(bool, notify = showRestartNotificationChanged)
- def showRestartNotification(self) -> bool:
- return self._restart_needed
|