mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-05 23:04:30 +08:00
88 lines
2.6 KiB
QML
88 lines
2.6 KiB
QML
// 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.1
|
|
|
|
import UM 1.2 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
Menu
|
|
{
|
|
id: menu
|
|
title: "Build plate"
|
|
|
|
property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
|
|
property bool isClusterPrinter:
|
|
{
|
|
if(Cura.MachineManager.printerOutputDevices.length == 0)
|
|
{
|
|
return false;
|
|
}
|
|
var clusterSize = Cura.MachineManager.printerOutputDevices[0].clusterSize;
|
|
// This is not a cluster printer or the cluster it is just one printer
|
|
if(clusterSize == undefined || clusterSize == 1)
|
|
{
|
|
return false;
|
|
}
|
|
return true;
|
|
}
|
|
|
|
MenuItem
|
|
{
|
|
id: automaticBuildplate
|
|
text:
|
|
{
|
|
if(printerConnected && Cura.MachineManager.printerOutputDevices[0].buildplateId != "" && !isClusterPrinter)
|
|
{
|
|
var buildplateName = Cura.MachineManager.printerOutputDevices[0].buildplateId
|
|
return catalog.i18nc("@title:menuitem %1 is the buildplate currently loaded in the printer", "Automatic: %1").arg(buildplateName)
|
|
}
|
|
return ""
|
|
}
|
|
visible: printerConnected && Cura.MachineManager.printerOutputDevices[0].buildplateId != "" && !isClusterPrinter
|
|
onTriggered:
|
|
{
|
|
var buildplateId = Cura.MachineManager.printerOutputDevices[0].buildplateId
|
|
var itemIndex = buildplateInstantiator.model.find("name", buildplateId)
|
|
if(itemIndex > -1)
|
|
{
|
|
Cura.MachineManager.setActiveVariantBuildplate(buildplateInstantiator.model.getItem(itemIndex).id)
|
|
}
|
|
}
|
|
}
|
|
|
|
MenuSeparator
|
|
{
|
|
visible: automaticBuildplate.visible
|
|
}
|
|
|
|
Instantiator
|
|
{
|
|
id: buildplateInstantiator
|
|
model: UM.InstanceContainersModel
|
|
{
|
|
filter:
|
|
{
|
|
"type": "variant",
|
|
"hardware_type": "buildplate",
|
|
"definition": Cura.MachineManager.activeDefinitionId //Only show variants of this machine
|
|
}
|
|
}
|
|
MenuItem {
|
|
text: model.name
|
|
checkable: true
|
|
checked: model.id == Cura.MachineManager.globalVariantId
|
|
exclusiveGroup: group
|
|
onTriggered:
|
|
{
|
|
Cura.MachineManager.setActiveVariantBuildplate(model.id);
|
|
}
|
|
}
|
|
onObjectAdded: menu.insertItem(index, object)
|
|
onObjectRemoved: menu.removeItem(object)
|
|
}
|
|
|
|
ExclusiveGroup { id: group }
|
|
}
|