mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-05-08 20:29:00 +08:00

Before it was the case in which sometimes the user needs two clicks for that. Also collapse the dropdown when the configuration is applied.
102 lines
3.0 KiB
QML
102 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()
|
|
}
|
|
}
|
|
} |