Browse Source

Separate black and grey text for quality menu

CURA-6846
Lipu Fei 5 years ago
parent
commit
8940097265

+ 14 - 7
cura/Settings/MachineManager.py

@@ -1592,18 +1592,20 @@ class MachineManager(QObject):
         if not no_dialog and self.hasUserSettings and self._application.getPreferences().getValue("cura/active_mode") == 1:
             self._application.discardOrKeepProfileChanges()
 
-    # The display name of currently active quality.
+    # The display name map of currently active quality.
+    # The display name has 2 parts, a main part and a suffix part.
     # This display name is:
     #  - For built-in qualities (quality/intent): the quality type name, such as "Fine", "Normal", etc.
     #  - For custom qualities: <custom_quality_name> - <intent_name> - <quality_type_name>
     #        Examples:
     #          - "my_profile - Fine" (only based on a default quality, no intent involved)
     #          - "my_profile - Engineering - Fine" (based on an intent)
-    @pyqtProperty(str, notify = activeQualityDisplayNameChanged)
-    def activeQualityDisplayName(self) -> str:
+    @pyqtProperty("QVariantMap", notify = activeQualityDisplayNameChanged)
+    def activeQualityDisplayNameMap(self) -> Dict[str, str]:
         global_stack = cura.CuraApplication.CuraApplication.getInstance().getGlobalContainerStack()
         if global_stack is None:
-            return ""
+            return {"main": "",
+                    "suffix": ""}
 
         display_name = global_stack.quality.getName()
 
@@ -1612,13 +1614,18 @@ class MachineManager(QObject):
             intent_display_name = IntentCategoryModel.name_translation.get(intent_category,
                                                                            catalog.i18nc("@label", "Unknown"))
             display_name = "{intent_name} - {the_rest}".format(intent_name = intent_display_name,
-                                                                the_rest = display_name)
+                                                               the_rest = display_name)
+
+        main_part = display_name
+        suffix_part = ""
 
         # Not a custom quality
         if global_stack.qualityChanges != empty_quality_changes_container:
-            display_name = self.activeQualityOrQualityChangesName + " - " + display_name
+            main_part = self.activeQualityOrQualityChangesName
+            suffix_part = display_name
 
-        return display_name
+        return {"main": main_part,
+                "suffix": suffix_part}
 
     ##  Change the intent category of the current printer.
     #

+ 15 - 3
resources/qml/PrintSetupSelector/Custom/CustomPrintSetup.qml

@@ -100,18 +100,30 @@ Item
 
             function generateActiveQualityText()
             {
-                var result = Cura.MachineManager.activeQualityDisplayName
+                var resultMap = Cura.MachineManager.activeQualityDisplayNameMap
+                var resultMain = resultMap["main"]
+                var resultSuffix = resultMap["suffix"]
+                var result = ""
 
                 if (Cura.MachineManager.isActiveQualityExperimental)
                 {
-                    result += " (Experimental)"
+                    resultSuffix += " (Experimental)"
                 }
 
                 if (Cura.MachineManager.isActiveQualitySupported)
                 {
                     if (Cura.MachineManager.activeQualityLayerHeight > 0)
                     {
-                        result += " <font color=\"" + UM.Theme.getColor("text_detail") + "\">"
+                        result = resultMain
+                        if (resultSuffix)
+                        {
+                            result += " - "
+                        }
+                        result += "<font color=\"" + UM.Theme.getColor("text_detail") + "\">"
+                        if (resultSuffix)
+                        {
+                            result +=  resultSuffix
+                        }
                         result += " - "
                         result += Cura.MachineManager.activeQualityLayerHeight + "mm"
                         result += "</font>"

+ 6 - 1
resources/qml/PrintSetupSelector/PrintSetupSelectorHeader.qml

@@ -20,7 +20,12 @@ RowLayout
         {
             if (Cura.MachineManager.activeStack)
             {
-                var text = Cura.MachineManager.activeQualityDisplayName
+                var resultMap = Cura.MachineManager.activeQualityDisplayNameMap
+                var text = resultMap["main"]
+                if (resultMap["suffix"])
+                {
+                    text += " - " + resultMap["suffix"]
+                }
 
                 if (!Cura.MachineManager.hasNotSupportedQuality)
                 {