From eb3083c84d5dacf39dbc9ae8c38cbc55649a146a Mon Sep 17 00:00:00 2001 From: Jelle Spijker Date: Thu, 18 Nov 2021 18:44:55 +0100 Subject: [PATCH] use differentiate icon for Ultimaker controlled material/plugin Materials can be certified, while plugins can be verified. Added packageType to the model such that the card knows which icon to use. Contributes to CURA-8562 --- plugins/Marketplace/PackageModel.py | 14 ++++++++++---- plugins/Marketplace/resources/qml/PackageCard.qml | 8 ++++---- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/plugins/Marketplace/PackageModel.py b/plugins/Marketplace/PackageModel.py index f87a30e0b7..3bdf6fbada 100644 --- a/plugins/Marketplace/PackageModel.py +++ b/plugins/Marketplace/PackageModel.py @@ -27,9 +27,11 @@ class PackageModel(QObject): """ super().__init__(parent) self._package_id = package_data.get("package_id", "UnknownPackageId") + self._package_type = package_data.get("package_type", "") self._icon_url = package_data.get("icon_url", "") self._display_name = package_data.get("display_name", catalog.i18nc("@label:property", "Unknown Package")) - self._is_verified = "verified" in package_data.get("tags", []) + tags = package_data.get("tags", []) + self._is_checked_by_ultimaker = "verified" in tags and self._package_type == "plugin" or "certified" in tags and self._package_type == "material" self._package_version = package_data.get("package_version", "") # Display purpose, no need for 'UM.Version'. self._package_info_url = package_data.get("website", "") # Not to be confused with 'download_url'. self._download_count = package_data.get("download_count", 0) @@ -49,6 +51,10 @@ class PackageModel(QObject): def packageId(self) -> str: return self._package_id + @pyqtProperty(str, constant = True) + def packageType(self) -> str: + return self._package_type + @pyqtProperty(str, constant=True) def iconUrl(self): return self._icon_url @@ -57,9 +63,9 @@ class PackageModel(QObject): def displayName(self) -> str: return self._display_name - @pyqtProperty(bool, constant=True) - def isVerified(self): - return self._is_verified + @pyqtProperty(bool, constant = True) + def isCheckedByUltimaker(self): + return self._is_checked_by_ultimaker @pyqtProperty(str, constant=True) def packageVersion(self): diff --git a/plugins/Marketplace/resources/qml/PackageCard.qml b/plugins/Marketplace/resources/qml/PackageCard.qml index 6387a9d893..58047ceb4e 100644 --- a/plugins/Marketplace/resources/qml/PackageCard.qml +++ b/plugins/Marketplace/resources/qml/PackageCard.qml @@ -85,12 +85,12 @@ Rectangle Layout.preferredHeight: UM.Theme.getSize("card_tiny_icon").height - enabled: packageData.isVerified - visible: packageData.isVerified + enabled: packageData.isCheckedByUltimaker + visible: packageData.isCheckedByUltimaker Cura.ToolTip { - tooltipText: catalog.i18nc("@info", "Verified") + tooltipText: packageData.packageType == "plugin" ? catalog.i18nc("@info", "Verified") : catalog.i18nc("@info", "Ultimaker Certified Materials") visible: parent.hovered targetPoint: Qt.point(0, Math.round(parent.y + parent.height / 2)) } @@ -104,7 +104,7 @@ Rectangle { anchors.fill: parent color: UM.Theme.getColor("primary") - source: UM.Theme.getIcon("CheckCircle") + source: packageData.packageType == "plugin" ? UM.Theme.getIcon("CheckCircle") : UM.Theme.getIcon("Certified") } }