diff --git a/cura/Settings/ExtrudersModel.py b/cura/Settings/ExtrudersModel.py index ae8cff3c9a..4ee5ab3c3b 100644 --- a/cura/Settings/ExtrudersModel.py +++ b/cura/Settings/ExtrudersModel.py @@ -1,7 +1,7 @@ # Copyright (c) 2017 Ultimaker B.V. # Cura is released under the terms of the LGPLv3 or higher. -from PyQt5.QtCore import Qt, pyqtSignal, pyqtProperty, QTimer +from PyQt5.QtCore import Qt, pyqtSignal, pyqtSlot, pyqtProperty, QTimer from typing import Iterable from UM.i18n import i18nCatalog diff --git a/resources/qml/Settings/SettingExtruder.qml b/resources/qml/Settings/SettingExtruder.qml index 35ad198edf..2ddbb135c7 100644 --- a/resources/qml/Settings/SettingExtruder.qml +++ b/resources/qml/Settings/SettingExtruder.qml @@ -26,6 +26,20 @@ SettingItem textRole: "name" + // knowing the extruder position, try to find the item index in the model + function getIndexByPosition(position) + { + for (var item_index in model.items) + { + var item = model.getItem(item_index) + if (item.index == position) + { + return item_index + } + } + return -1 + } + onActivated: { if (model.getItem(index).enabled) @@ -83,8 +97,7 @@ SettingItem { if(propertyProvider.properties.value == -1) { - // TODO: accidently the extruder position is also the index. fix it - return Cura.MachineManager.defaultExtruderPosition; + return control.getIndexByPosition(Cura.MachineManager.defaultExtruderPosition); } return propertyProvider.properties.value }