Browse Source

Remove back Cura.ExtrudersModel{}, because if retrieve the model from backend
the tabs cannot be removed after model update. The QML bug
CURA-6036

Aleksei S 6 years ago
parent
commit
7cf1df7435
1 changed files with 15 additions and 14 deletions
  1. 15 14
      plugins/MachineSettingsAction/MachineSettingsAction.qml

+ 15 - 14
plugins/MachineSettingsAction/MachineSettingsAction.qml

@@ -13,10 +13,22 @@ import Cura 1.0 as Cura
 Cura.MachineAction
 {
     id: base
-    property var extrudersModel: CuraApplication.getExtrudersModel()
+    property var extrudersModel: Cura.ExtrudersModel{} // Do not retrieve the Model from a backend. Otherwise the tabs
+                                                       // in tabView will not removed/updated. Probably QML bug
+    property int extruderTabsCount: 0
 
     property var activeMachineId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.id : ""
 
+    Connections
+    {
+        target: base.extrudersModel
+        onModelChanged:
+        {
+            var extruderCount = base.extrudersModel.count;
+            base.extruderTabsCount = extruderCount;
+        }
+    }
+
     Connections
     {
         target: dialog ? dialog : null
@@ -346,22 +358,11 @@ Cura.MachineAction
             Repeater
             {
                 id: extruderTabsRepeater
-                model: base.extrudersModel
-
-
-                onItemAdded:
-                {
-                    settingsTabs.addTab(index + 1, item)
-                }
-
-                onItemRemoved:
-                {
-                    settingsTabs.removeTab(index + 1)
-                }
+                model: base.extruderTabsCount
 
                 Tab
                 {
-                    title: model.name
+                    title: base.extrudersModel.getItem(index).name
                     anchors.margins: UM.Theme.getSize("default_margin").width
 
                     Column