Merge RestartManager into marketplace

CURA-8588
This commit is contained in:
Jaime van Kessel 2022-01-03 11:12:52 +01:00
parent 6af2677c52
commit 6a39862349
6 changed files with 19 additions and 45 deletions

View file

@ -13,7 +13,6 @@ from UM.PluginRegistry import PluginRegistry # To find out where we are stored
from .RemotePackageList import RemotePackageList # To register this type with QML.
from .LocalPackageList import LocalPackageList # To register this type with QML.
from .RestartManager import RestartManager # To register this type with QML.
class Marketplace(Extension, QObject):
@ -36,9 +35,10 @@ class Marketplace(Extension, QObject):
self._local_package_list = LocalPackageList(self)
self._local_package_list.checkForUpdates(self._package_manager.local_packages)
self._tab_shown: int = 0
self._package_manager.installedPackagesChanged.connect(self.checkIfRestartNeeded)
qmlRegisterType(RestartManager, "Marketplace", 1, 0, "RestartManager")
self._tab_shown: int = 0
self._restart_needed = False
def getTabShown(self) -> int:
return self._tab_shown
@ -79,6 +79,7 @@ class Marketplace(Extension, QObject):
"""
if self._window is None:
self._plugin_registry = PluginRegistry.getInstance()
self._plugin_registry.pluginsEnabledOrDisabledChanged.connect(self.checkIfRestartNeeded)
plugin_path = PluginRegistry.getInstance().getPluginPath(self.getPluginId())
if plugin_path is None:
plugin_path = os.path.dirname(__file__)
@ -97,3 +98,17 @@ class Marketplace(Extension, QObject):
Not implemented in a more generic way because it needs the ability to be called with 'callExtensionMethod'.
"""
self.setTabShown(1)
def checkIfRestartNeeded(self) -> None:
if self._package_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