Lipu Fei 7 лет назад
Родитель
Сommit
1a19175b35

+ 4 - 3
cura/Settings/ProfilesModel.py

@@ -67,6 +67,7 @@ class NewQualityProfilesModel(ListModel):
 
             item = {"id": "TODO",  # TODO: probably will be removed
                     "name": quality_group.name,
+                    "quality_type": quality_group.quality_type,
                     "layer_height": layer_height + self._layer_height_unit,
                     "layer_height_without_unit": layer_height,
                     "available": quality_group.is_available,
@@ -74,6 +75,9 @@ class NewQualityProfilesModel(ListModel):
 
             item_list.append(item)
 
+        # Sort items based on layer_height
+        item_list = sorted(item_list, key = lambda x: float(x["layer_height_without_unit"]))
+
         self.setItems(item_list)
 
     def _fetchLayerHeight(self, quality_group: "QualityGroup"):
@@ -84,9 +88,6 @@ class NewQualityProfilesModel(ListModel):
                 unit = ""
             self._layer_height_unit = unit
 
-        if not quality_group.is_available:
-            return ""
-
         # Get layer_height from the quality profile for the GlobalStack
         container = quality_group.node_for_global.getContainer()
 

+ 1 - 1
resources/qml/Menus/ProfileMenu.qml

@@ -34,7 +34,7 @@ Menu
     MenuSeparator
     {
         id: customSeparator
-        visible: Cura.UserProfilesModel.rowCount > 0
+        visible: Cura.NewCustomQualityProfilesModel.rowCount > 0
     }
 
     Instantiator

+ 14 - 10
resources/qml/SidebarSimple.qml

@@ -57,7 +57,10 @@ Item
                     interval: 50
                     running: false
                     repeat: false
-                    onTriggered: Cura.MachineManager.setActiveQuality(Cura.ProfilesModel.getItem(qualitySlider.value).id)
+                    onTriggered: {
+                        var item = Cura.NewQualityProfilesModel.getItem(qualitySlider.value);
+                        Cura.MachineManager.activeQualityGroup = item.quality_group;
+                    }
                 }
 
                 Component.onCompleted: qualityModel.update()
@@ -102,14 +105,14 @@ Item
                         var availableMin = -1
                         var availableMax = -1
 
-                        for (var i = 0; i < Cura.ProfilesModel.rowCount(); i++) {
-                            var qualityItem = Cura.ProfilesModel.getItem(i)
+                        for (var i = 0; i < Cura.NewQualityProfilesModel.rowCount(); i++) {
+                            var qualityItem = Cura.NewQualityProfilesModel.getItem(i)
 
                             // Add each quality item to the UI quality model
                             qualityModel.append(qualityItem)
 
                             // Set selected value
-                            if (Cura.MachineManager.activeQualityType == qualityItem.metadata.quality_type) {
+                            if (Cura.MachineManager.activeQualityType == qualityItem.quality_type) {
 
                                 // set to -1 when switching to user created profile so all ticks are clickable
                                 if (Cura.SimpleModeSettingsManager.isProfileUserCreated) {
@@ -165,7 +168,7 @@ Item
                         qualityModel.existingQualityProfile = 0
 
                         // check, the ticks count cannot be less than zero
-                        qualityModel.totalTicks = Math.max(0, Cura.ProfilesModel.rowCount() - 1)
+                        qualityModel.totalTicks = Math.max(0, Cura.NewQualityProfilesModel.rowCount() - 1)
                     }
                 }
 
@@ -191,13 +194,13 @@ Item
                             anchors.verticalCenter: parent.verticalCenter
                             anchors.top: parent.top
                             anchors.topMargin: Math.round(UM.Theme.getSize("sidebar_margin").height / 2)
-                            color: (Cura.MachineManager.activeMachine != null && Cura.ProfilesModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
+                            color: (Cura.MachineManager.activeMachine != null && Cura.NewQualityProfilesModel.getItem(index).available) ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
                             text:
                             {
                                 var result = ""
                                 if(Cura.MachineManager.activeMachine != null)
                                 {
-                                    result = Cura.ProfilesModel.getItem(index).layer_height_without_unit
+                                    result = Cura.NewQualityProfilesModel.getItem(index).layer_height_without_unit
 
                                     if(result == undefined)
                                     {
@@ -262,7 +265,7 @@ Item
                         Rectangle
                         {
                             anchors.verticalCenter: parent.verticalCenter
-                            color: Cura.ProfilesModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
+                            color: Cura.NewQualityProfilesModel.getItem(index).available ? UM.Theme.getColor("quality_slider_available") : UM.Theme.getColor("quality_slider_unavailable")
                             width: 1 * screenScaleFactor
                             height: 6 * screenScaleFactor
                             y: 0
@@ -408,9 +411,10 @@ Item
                         // if the current profile is user-created, switch to a built-in quality
                         if (Cura.SimpleModeSettingsManager.isProfileUserCreated)
                         {
-                            if (Cura.ProfilesModel.rowCount() > 0)
+                            if (Cura.NewQualityProfilesModel.rowCount() > 0)
                             {
-                                Cura.MachineManager.setActiveQuality(Cura.ProfilesModel.getItem(0).id)
+                                var item = Cura.NewQualityProfilesModel.getItem(0);
+                                Cura.MachineManager.activeQualityGroup = item.quality_group;
                             }
                         }
                         if (Cura.SimpleModeSettingsManager.isProfileCustomized)