Implement test version of showing cloud connected printers in list

This commit is contained in:
ChrisTerBeke 2018-12-04 14:09:20 +01:00
parent 82d2696739
commit e98f3bff38
5 changed files with 99 additions and 3 deletions

View file

@ -0,0 +1,26 @@
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.2
import QtQuick.Controls 1.4
import UM 1.2 as UM
import Cura 1.0 as Cura
Instantiator {
model: UM.ContainerStacksModel {
filter: {"type": "machine", "um_cloud_cluster_id": "*", "hidden": "False"}
}
MenuItem {
// iconSource: UM.Theme.getIcon("printer_single") TODO: use cloud icon here
text: model.name
checkable: true
checked: true // cloud printers are only listed if they are actually online
exclusiveGroup: group;
onTriggered: Cura.MachineManager.setActiveMachine(model.id);
}
onObjectAdded: menu.insertItem(index, object)
onObjectRemoved: menu.removeItem(object)
}

View file

@ -37,6 +37,23 @@ Menu
visible: networkPrinterMenu.count > 0
}
MenuItem
{
text: catalog.i18nc("@label:category menu label", "Cloud enabled printers")
enabled: false
visible: cloudPrinterMenu.count > 0
}
CloudPrinterMenu
{
id: cloudPrinterMenu
}
MenuSeparator
{
visible: cloudPrinterMenu.count > 0
}
MenuItem
{
text: catalog.i18nc("@label:category menu label", "Local printers")

View file

@ -50,6 +50,46 @@ Column
}
}
Label
{
text: catalog.i18nc("@label", "Cloud connected printers")
visible: cloudPrintersModel.items.length > 0
leftPadding: UM.Theme.getSize("default_margin").width
height: visible ? contentHeight + 2 * UM.Theme.getSize("default_margin").height : 0
renderType: Text.NativeRendering
font: UM.Theme.getFont("medium")
color: UM.Theme.getColor("text_medium")
verticalAlignment: Text.AlignVCenter
}
Repeater
{
id: cloudPrinters
model: UM.ContainerStacksModel
{
id: cloudPrintersModel
filter:
{
"type": "machine",
"um_cloud_cluster_id": "*"
}
}
delegate: MachineSelectorButton
{
text: model.metadata["connect_group_name"]
checked: Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"]
outputDevice: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
Connections
{
target: Cura.MachineManager
onActiveMachineNetworkGroupNameChanged: checked = Cura.MachineManager.activeMachineNetworkGroupName == model.metadata["connect_group_name"]
}
}
}
Label
{
text: catalog.i18nc("@label", "Preset printers")
@ -71,7 +111,9 @@ Column
id: virtualPrintersModel
filter:
{
"type": "machine", "um_network_key": null
"type": "machine",
"um_network_key": null,
"um_cloud_cluster_id": null
}
}