diff --git a/plugins/Toolbox/src/SubscribedPackagesModel.py b/plugins/Toolbox/src/SubscribedPackagesModel.py index 118048eec2..d2ed486de2 100644 --- a/plugins/Toolbox/src/SubscribedPackagesModel.py +++ b/plugins/Toolbox/src/SubscribedPackagesModel.py @@ -55,7 +55,6 @@ class SubscribedPackagesModel(ListModel): package.update({"icon_url": ""}) self._items.append(package) - print("All items:: %s" % self._items) self.setItems(self._items) @@ -73,11 +72,14 @@ class SubscribedPackagesModel(ListModel): has_incompatible_items = True return has_incompatible_items - @pyqtSlot(str) def setDismiss(self, package_id) -> None: package_id_in_list_of_items = self.find(key="package_id", value=package_id) if package_id_in_list_of_items != -1: self.setProperty(package_id_in_list_of_items, property="is_dismissed", value=True) Logger.debug("Package {} has been dismissed".format(package_id)) - # Now store this package_id as DISMISSED somewhere in local files \ No newline at end of file + def addDismissed(self, list_of_dismissed) -> None: + for package in list_of_dismissed: + item = self.find(key="package_id", value=package) + if item != -1: + self.setProperty(item, property="is_dismissed", value=True) diff --git a/plugins/Toolbox/src/Toolbox.py b/plugins/Toolbox/src/Toolbox.py index c77e148140..f12cc3ba3d 100644 --- a/plugins/Toolbox/src/Toolbox.py +++ b/plugins/Toolbox/src/Toolbox.py @@ -558,8 +558,8 @@ class Toolbox(QObject, Extension): @pyqtSlot(str) def dismissIncompatiblePackage(self, package_id): - print("---in toolbox: %s" % package_id) self._models["subscribed_packages"].setDismiss(package_id) + self._package_manager.setAsDismissed(package_id) # Make API Calls # -------------------------------------------------------------------------- @@ -668,12 +668,17 @@ class Toolbox(QObject, Extension): def _checkCompatibilities(self, json_data) -> None: user_subscribed_packages = [plugin["package_id"] for plugin in json_data] user_installed_packages = self._package_manager.getUserInstalledPackages() + user_dismissed_packages = list(self._package_manager.getDismissedPackages()) + + user_installed_packages += user_dismissed_packages # We check if there are packages installed in Cloud Marketplace but not in Cura marketplace (discrepancy) package_discrepancy = list(set(user_subscribed_packages).difference(user_installed_packages)) + if package_discrepancy: self._models["subscribed_packages"].addValue(package_discrepancy) self._models["subscribed_packages"].update() + self._models["subscribed_packages"].addDismissed(user_dismissed_packages) Logger.log("d", "Discrepancy found between Cloud subscribed packages and Cura installed packages") sync_message = Message(i18n_catalog.i18nc( "@info:generic", @@ -802,11 +807,11 @@ class Toolbox(QObject, Extension): return cast(SubscribedPackagesModel, self._models["subscribed_packages"]) @pyqtProperty(bool, constant=True) - def has_compatible_packages(self) -> str: + def has_compatible_packages(self) -> bool: return self._models["subscribed_packages"].hasCompatiblePackages() @pyqtProperty(bool, constant=True) - def has_incompatible_packages(self) -> str: + def has_incompatible_packages(self) -> bool: return self._models["subscribed_packages"].hasIncompatiblePackages() @pyqtProperty(QObject, constant = True)