mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-01 08:14:22 +08:00
101 lines
3.0 KiB
QML
101 lines
3.0 KiB
QML
// Copyright (c) 2018 Ultimaker B.V.
|
|
// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
|
import QtQuick 2.7
|
|
import QtQuick.Controls 1.4
|
|
import QtQuick.Controls.Styles 1.4
|
|
|
|
import UM 1.2 as UM
|
|
import Cura 1.0 as Cura
|
|
|
|
Button
|
|
{
|
|
id: base
|
|
property var outputDevice: null
|
|
property var matched: updateOnSync()
|
|
text: matched == true ? "Yes" : "No"
|
|
width: parent.width
|
|
height: parent.height
|
|
|
|
function updateOnSync()
|
|
{
|
|
if (outputDevice != undefined)
|
|
{
|
|
for (var index in outputDevice.uniqueConfigurations)
|
|
{
|
|
var configuration = outputDevice.uniqueConfigurations[index]
|
|
if (Cura.MachineManager.matchesConfiguration(configuration))
|
|
{
|
|
base.matched = true;
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
base.matched = false;
|
|
}
|
|
|
|
style: ButtonStyle
|
|
{
|
|
background: Rectangle
|
|
{
|
|
color:
|
|
{
|
|
if(control.pressed)
|
|
{
|
|
return UM.Theme.getColor("sidebar_header_active");
|
|
}
|
|
else if(control.hovered)
|
|
{
|
|
return UM.Theme.getColor("sidebar_header_hover");
|
|
}
|
|
else
|
|
{
|
|
return UM.Theme.getColor("sidebar_header_bar");
|
|
}
|
|
}
|
|
Behavior on color { ColorAnimation { duration: 50; } }
|
|
|
|
UM.RecolorImage
|
|
{
|
|
id: downArrow
|
|
anchors.verticalCenter: parent.verticalCenter
|
|
anchors.right: parent.right
|
|
anchors.rightMargin: UM.Theme.getSize("default_margin").width
|
|
width: UM.Theme.getSize("standard_arrow").width
|
|
height: UM.Theme.getSize("standard_arrow").height
|
|
sourceSize.width: width
|
|
sourceSize.height: height
|
|
color: UM.Theme.getColor("text_emphasis")
|
|
source: UM.Theme.getIcon("arrow_bottom")
|
|
}
|
|
UM.RecolorImage
|
|
{
|
|
id: sidebarComboBoxLabel
|
|
anchors.left: parent.left
|
|
anchors.leftMargin: UM.Theme.getSize("default_margin").width
|
|
anchors.verticalCenter: parent.verticalCenter;
|
|
|
|
width: UM.Theme.getSize("printer_sync_icon").width
|
|
height: UM.Theme.getSize("printer_sync_icon").height
|
|
|
|
color: control.matched ? UM.Theme.getColor("printer_config_matched") : UM.Theme.getColor("printer_config_mismatch")
|
|
source: UM.Theme.getIcon("tab_status_connected")
|
|
sourceSize.width: width
|
|
sourceSize.height: height
|
|
}
|
|
}
|
|
label: Label {}
|
|
}
|
|
|
|
Connections
|
|
{
|
|
target: outputDevice
|
|
onUniqueConfigurationsChanged: updateOnSync()
|
|
}
|
|
|
|
Connections
|
|
{
|
|
target: Cura.MachineManager
|
|
onCurrentConfigurationChanged: updateOnSync()
|
|
}
|
|
} |