123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.10
- import QtQuick.Controls 2.3
- import UM 1.5 as UM
- import Cura 1.0 as Cura
- Loader {
- id: loader
- width: parent.width
- sourceComponent: {
- switch (model.componentType) {
- case "HIDE_BUTTON":
- hideButtonComponent
- break;
- case "SHOW_BUTTON":
- showButtonComponent
- break;
- case "MACHINE":
- machineListButtonComponent
- break;
- default:
- }
- }
- property var onClicked
- Component
- {
- id: hideButtonComponent
- Cura.TertiaryButton
- {
- text: catalog.i18nc("@label", "Hide all connected printers")
- height: UM.Theme.getSize("large_button").height
- onClicked: if (loader.onClicked) loader.onClicked()
- iconSource: UM.Theme.getIcon("ChevronSingleUp")
- width: parent.width
- }
- }
- Component
- {
- id: showButtonComponent
- Cura.TertiaryButton
- {
- text: catalog.i18nc("@label", "Show all connected printers")
- height: UM.Theme.getSize("large_button").height
- onClicked: if (loader.onClicked) loader.onClicked()
- iconSource: UM.Theme.getIcon("ChevronSingleDown")
- width: parent.width
- }
- }
- Component
- {
- id: machineListButtonComponent
- Button
- {
- id: machineListButton
- onClicked: if (loader.onClicked) loader.onClicked()
- width: parent.width
- height: UM.Theme.getSize("large_button").height
- leftPadding: UM.Theme.getSize("default_margin").width
- rightPadding: UM.Theme.getSize("default_margin").width
- checkable: true
- hoverEnabled: true
- contentItem: Item
- {
- width: machineListButton.width - machineListButton.leftPadding - machineListButton.rightPadding
- height: UM.Theme.getSize("action_button").height
- UM.ColorImage
- {
- id: printerIcon
- height: UM.Theme.getSize("medium_button").height
- width: UM.Theme.getSize("medium_button").width
- color: UM.Theme.getColor("machine_selector_printer_icon")
- visible: model.isAbstractMachine || !model.isOnline
- source: model.isAbstractMachine ? UM.Theme.getIcon("PrinterTriple", "medium") : UM.Theme.getIcon("Printer", "medium")
- anchors
- {
- left: parent.left
- verticalCenter: parent.verticalCenter
- }
- }
- UM.Label
- {
- id: buttonText
- anchors
- {
- left: printerIcon.right
- right: printerCount.left
- verticalCenter: parent.verticalCenter
- leftMargin: UM.Theme.getSize("default_margin").width
- }
- text: model.name ? model.name : ""
- font: model.isAbstractMachine ? UM.Theme.getFont("medium_bold") : UM.Theme.getFont("medium")
- visible: text != ""
- elide: Text.ElideRight
- }
- Rectangle
- {
- id: printerCount
- color: UM.Theme.getColor("background_2")
- radius: height
- width: height
- anchors
- {
- right: parent.right
- top: buttonText.top
- bottom: buttonText.bottom
- }
- visible: model.isAbstractMachine ? model.isAbstractMachine : false
- UM.Label
- {
- text: model.machineCount ? model.machineCount : ""
- anchors.centerIn: parent
- font: UM.Theme.getFont("default_bold")
- }
- }
- }
- background: Rectangle
- {
- id: backgroundRect
- color: machineListButton.hovered ? UM.Theme.getColor("action_button_hovered") : "transparent"
- }
- }
- }
- }
|