Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cura/CuraPackageManager.py8
-rw-r--r--plugins/Toolbox/src/Toolbox.py49
2 files changed, 32 insertions, 25 deletions
diff --git a/cura/CuraPackageManager.py b/cura/CuraPackageManager.py
index 096bfc9065..24a7bda267 100644
--- a/cura/CuraPackageManager.py
+++ b/cura/CuraPackageManager.py
@@ -134,7 +134,7 @@ class CuraPackageManager(QObject):
return None
- def getAllInstalledPackagesInfo(self) -> dict:
+ def getAllInstalledPackageIDs(self) -> set:
# Add bundled, installed, and to-install packages to the set of installed package IDs
all_installed_ids = set()
@@ -147,6 +147,12 @@ class CuraPackageManager(QObject):
if self._to_install_package_dict.keys():
all_installed_ids = all_installed_ids.union(set(self._to_install_package_dict.keys()))
+ return all_installed_ids
+
+ def getAllInstalledPackagesInfo(self) -> dict:
+
+ all_installed_ids = self.getAllInstalledPackageIDs()
+
# map of <package_type> -> <package_id> -> <package_info>
installed_packages_dict = {}
for package_id in all_installed_ids:
diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py
index 4bf04c1e38..9e3adcc789 100644
--- a/plugins/Toolbox/src/Toolbox.py
+++ b/plugins/Toolbox/src/Toolbox.py
@@ -64,14 +64,17 @@ class Toolbox(QObject, Extension):
]
self._request_urls = {}
self._to_update = [] # Package_ids that are waiting to be updated
+ self._old_plugin_ids = []
# Data:
self._metadata = {
"authors": [],
"packages": [],
"plugins_showcase": [],
+ "plugins_available": [],
"plugins_installed": [],
"materials_showcase": [],
+ "materials_available": [],
"materials_installed": []
}
@@ -166,30 +169,11 @@ class Toolbox(QObject, Extension):
"authors": QUrl("{base_url}/authors".format(base_url=self._api_url)),
"packages": QUrl("{base_url}/packages".format(base_url=self._api_url)),
"plugins_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)),
- "materials_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url))
+ "plugins_available": QUrl("{base_url}/packages?package_type=plugin".format(base_url=self._api_url)),
+ "materials_showcase": QUrl("{base_url}/showcase".format(base_url=self._api_url)),
+ "materials_available": QUrl("{base_url}/packages?package_type=material".format(base_url=self._api_url))
}
- OLD_PLUGINS = ['3DPrinterOS',
- 'BarbarianPlugin',
- 'CuraSolidWorksPlugin',
- 'MakePrintablePlugin',
- 'OctoPrintPlugin',
- 'OrientationPlugin',
- 'ZOffsetPlugin',
- 'cura-siemensnx-plugin']
-
- # check for plugins that were installed with the old plugin-browser
- def _isOldPlugin(self, plugin_id: str) -> bool:
- if plugin_id in self.OLD_PLUGINS and plugin_id in self._plugin_registry.getInstalledPlugins():
- Logger.log('i', 'Found a plugin that was installed with the old plugin browser: %s', plugin_id)
- if not self._package_manager.isPackageInstalled(plugin_id):
- Logger.log('i', 'Plugin was not found in package.json: %s', self._package_manager.getInstalledPackageInfo(plugin_id))
- return True
- return False
-
-
-
-
# Get the API root for the packages API depending on Cura version settings.
def _getCloudAPIRoot(self) -> str:
if not hasattr(cura, "CuraVersion"):
@@ -256,6 +240,17 @@ class Toolbox(QObject, Extension):
@pyqtSlot()
def _updateInstalledModels(self) -> None:
+
+ # This is moved here to avoid code duplication and so that after installing plugins they get removed from the
+ # list of old plugins
+ old_plugin_ids = self._plugin_registry.getInstalledPlugins()
+ installed_package_ids = self._package_manager.getAllInstalledPackageIDs()
+ self._old_plugin_ids = []
+ for plugin_id in old_plugin_ids:
+ if plugin_id not in installed_package_ids:
+ Logger.log('i', 'Found a plugin that was installed with the old plugin browser: %s', plugin_id)
+ self._old_plugin_ids.append(plugin_id)
+
all_packages = self._package_manager.getAllInstalledPackagesInfo()
if "plugin" in all_packages:
self._metadata["plugins_installed"] = all_packages["plugin"]
@@ -346,7 +341,7 @@ class Toolbox(QObject, Extension):
# --------------------------------------------------------------------------
@pyqtSlot(str, result = bool)
def canUpdate(self, package_id: str) -> bool:
- if self._isOldPlugin(package_id):
+ if self.isOldPlugin(package_id):
return True
local_package = self._package_manager.getInstalledPackageInfo(package_id)
@@ -379,7 +374,7 @@ class Toolbox(QObject, Extension):
@pyqtSlot(str, result = bool)
def isInstalled(self, package_id: str) -> bool:
- return self._package_manager.isPackageInstalled(package_id) or self._isOldPlugin(package_id)
+ return self._package_manager.isPackageInstalled(package_id)
@pyqtSlot(str, result = bool)
def isEnabled(self, package_id: str) -> bool:
@@ -387,6 +382,12 @@ class Toolbox(QObject, Extension):
return True
return False
+ # Check for plugins that were installed with the old plugin browser
+ def isOldPlugin(self, plugin_id: str) -> bool:
+ if plugin_id in self._old_plugin_ids:
+ return True
+ return False
+
def loadingComplete(self) -> bool:
populated = 0
for list in self._metadata.items():