mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-02 00:34:26 +08:00
122 lines
3.8 KiB
QML
122 lines
3.8 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.4
|
|
import QtQuick.Controls.Styles 1.4
|
|
import UM 1.2 as UM
|
|
|
|
Item {
|
|
id: extruderInfo;
|
|
property var printCoreConfiguration: null;
|
|
height: childrenRect.height;
|
|
width: Math.round(parent.width / 2);
|
|
|
|
// Extruder circle
|
|
Item {
|
|
id: extruderCircle;
|
|
height: UM.Theme.getSize("monitor_extruder_circle").height;
|
|
width: UM.Theme.getSize("monitor_extruder_circle").width;
|
|
|
|
// Loading skeleton
|
|
Rectangle {
|
|
anchors.fill: parent;
|
|
color: UM.Theme.getColor("monitor_skeleton_fill");
|
|
radius: Math.round(width / 2);
|
|
visible: !printCoreConfiguration;
|
|
}
|
|
|
|
// Actual content
|
|
Rectangle {
|
|
anchors.fill: parent;
|
|
border.width: UM.Theme.getSize("monitor_thick_lining").width;
|
|
border.color: UM.Theme.getColor("monitor_lining_heavy");
|
|
color: "transparent";
|
|
opacity: {
|
|
if (printCoreConfiguration == null || printCoreConfiguration.activeMaterial == null || printCoreConfiguration.hotendID == null) {
|
|
return 0.5;
|
|
}
|
|
return 1;
|
|
}
|
|
radius: Math.round(width / 2);
|
|
visible: printCoreConfiguration;
|
|
|
|
Label {
|
|
anchors.centerIn: parent;
|
|
color: UM.Theme.getColor("text");
|
|
font: UM.Theme.getFont("default_bold");
|
|
text: printCoreConfiguration ? printCoreConfiguration.position + 1 : 0;
|
|
}
|
|
}
|
|
}
|
|
|
|
// Print core and material labels
|
|
Item {
|
|
id: materialLabel
|
|
anchors {
|
|
left: extruderCircle.right;
|
|
leftMargin: UM.Theme.getSize("default_margin").width;
|
|
right: parent.right;
|
|
top: parent.top;
|
|
}
|
|
height: UM.Theme.getSize("monitor_text_line").height;
|
|
|
|
// Loading skeleton
|
|
Rectangle {
|
|
anchors.fill: parent;
|
|
color: UM.Theme.getColor("monitor_skeleton_fill");
|
|
visible: !extruderInfo.printCoreConfiguration;
|
|
}
|
|
|
|
// Actual content
|
|
Label {
|
|
anchors.fill: parent;
|
|
elide: Text.ElideRight;
|
|
color: UM.Theme.getColor("text");
|
|
font: UM.Theme.getFont("default");
|
|
text: {
|
|
if (printCoreConfiguration && printCoreConfiguration.activeMaterial != undefined) {
|
|
return printCoreConfiguration.activeMaterial.name;
|
|
}
|
|
return "";
|
|
}
|
|
visible: extruderInfo.printCoreConfiguration;
|
|
}
|
|
}
|
|
|
|
Item {
|
|
id: printCoreLabel;
|
|
anchors {
|
|
left: extruderCircle.right;
|
|
leftMargin: UM.Theme.getSize("default_margin").width;
|
|
right: parent.right;
|
|
top: materialLabel.bottom;
|
|
topMargin: Math.floor(UM.Theme.getSize("default_margin").height/4);
|
|
}
|
|
height: UM.Theme.getSize("monitor_text_line").height;
|
|
|
|
// Loading skeleton
|
|
Rectangle {
|
|
color: UM.Theme.getColor("monitor_skeleton_fill");
|
|
height: parent.height;
|
|
visible: !extruderInfo.printCoreConfiguration;
|
|
width: Math.round(parent.width / 3);
|
|
}
|
|
|
|
// Actual content
|
|
Label {
|
|
color: UM.Theme.getColor("text");
|
|
elide: Text.ElideRight;
|
|
font: UM.Theme.getFont("default");
|
|
opacity: 0.6;
|
|
text: {
|
|
if (printCoreConfiguration != undefined && printCoreConfiguration.hotendID != undefined) {
|
|
return printCoreConfiguration.hotendID;
|
|
}
|
|
return "";
|
|
}
|
|
visible: extruderInfo.printCoreConfiguration;
|
|
}
|
|
}
|
|
}
|