From 7ee8270b2e5431f645cad7c585e9a02f6988b731 Mon Sep 17 00:00:00 2001 From: Dimitriovski Date: Fri, 24 Jan 2020 13:51:49 +0100 Subject: [PATCH] Added the mechanism to dismiss all Incompatible packages when the Compatibility Dialog is closed CURA-7090 --- plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py | 4 +++- plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py | 7 +++++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py b/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py index f6b5622aad..78587117a0 100644 --- a/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py +++ b/plugins/Toolbox/src/CloudSync/DiscrepanciesPresenter.py @@ -36,5 +36,7 @@ class DiscrepanciesPresenter(QObject): def _onConfirmClicked(self, model: SubscribedPackagesModel) -> None: # For now, all compatible packages presented to the user should be installed. # Later, we might remove items for which the user unselected the package + if model.getIncompatiblePackages(): + self._package_manager.dismissAllIncompatiblePackages(model.getIncompatiblePackages()) model.setItems(model.getCompatiblePackages()) - self.packageMutations.emit(model) + self.packageMutations.emit(model) # #### proveri sho e ova??? diff --git a/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py b/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py index fd5eae254d..dc684a11a7 100644 --- a/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py +++ b/plugins/Toolbox/src/CloudSync/SubscribedPackagesModel.py @@ -50,9 +50,12 @@ class SubscribedPackagesModel(ListModel): def getCompatiblePackages(self) -> List[Dict[str, Any]]: return [package for package in self._items if package["is_compatible"]] - def initialize(self, json_data: List[Dict[str, Any]]) -> None: + def getIncompatiblePackages(self) -> List[str]: + return [package["package_id"] for package in self._items if not package["is_compatible"]] + + def initialize(self, subscribed_packages_payload: List[Dict[str, Any]]) -> None: self._items.clear() - for item in json_data: + for item in subscribed_packages_payload: if item["package_id"] not in self._discrepancies: continue package = {