Swap out UpdatableMachinesModel for MachineListModel.

This has to be instantiated with the WorkspaceDialog but attaching the listeners throws an error because it is done too early. The listeners are not needed anyway, so they have been disabled.

Update WorkspaceDialog.qml to use MachineListModel

CURA-9424
This commit is contained in:
Joey de l'Arago 2022-11-04 16:44:04 +01:00
parent 1ebf5bb650
commit 088ea0a768
2 changed files with 47 additions and 48 deletions

View file

@ -107,50 +107,50 @@ UM.Dialog
comboboxTitle: catalog.i18nc("@action:label", "Open With")
comboboxTooltipText: catalog.i18nc("@info:tooltip", "How should the conflict in the machine be resolved?")
comboboxVisible: workspaceDialog.visible && manager.updatableMachinesModel.count > 1
combobox: Cura.ComboBox
combobox: Cura.MachineSelector
{
id: machineResolveComboBox
model: manager.updatableMachinesModel
textRole: "displayName"
visible: workspaceDialog.visible && model.count > 1
currentIndex: machineVisibleChanged()
onCurrentIndexChanged:
{
if (model.getItem(currentIndex).id == "new"
&& model.getItem(currentIndex).type == "default_option")
{
manager.setResolveStrategy("machine", "new")
}
else
{
manager.setResolveStrategy("machine", "override")
manager.setMachineToOverride(model.getItem(currentIndex).id)
}
}
function machineVisibleChanged()
{
if (!visible) {return}
currentIndex = 0
// If the project printer exists in Cura, set it as the default dropdown menu option.
// No need to check object 0, which is the "Create new" option
for (var i = 1; i < model.count; i++)
{
if (model.getItem(i).name == manager.machineName)
{
currentIndex = i
break
}
}
// The project printer does not exist in Cura. If there is at least one printer of the same
// type, select the first one, else set the index to "Create new"
if (currentIndex == 0 && model.count > 1)
{
currentIndex = 1
}
}
id: machineSelector
headerCornerSide: Cura.RoundedRectangle.Direction.All
width: UM.Theme.getSize("machine_selector_widget").width
height: parent.height
anchors.centerIn: parent
machineListModel: manager.updatableMachinesModel
// onCurrentIndexChanged:
// {
// if (model.getItem(currentIndex).id == "new"
// && model.getItem(currentIndex).type == "default_option")
// {
// manager.setResolveStrategy("machine", "new")
// }
// else
// {
// manager.setResolveStrategy("machine", "override")
// manager.setMachineToOverride(model.getItem(currentIndex).id)
// }
// }
//
// function machineVisibleChanged()
// {
// if (!visible) {return}
//
// currentIndex = 0
// // If the project printer exists in Cura, set it as the default dropdown menu option.
// // No need to check object 0, which is the "Create new" option
// for (var i = 1; i < model.count; i++)
// {
// if (model.getItem(i).name == manager.machineName)
// {
// currentIndex = i
// break
// }
// }
// // The project printer does not exist in Cura. If there is at least one printer of the same
// // type, select the first one, else set the index to "Create new"
// if (currentIndex == 0 && model.count > 1)
// {
// currentIndex = 1
// }
// }
}
}