Welcome to mirror list, hosted at ThFree Co, Russian Federation.

ClusterControlItem.qml « qml « resources « UM3NetworkPrinting « plugins - github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 94e75a6de039db0b83541b64c7b4b676b7c759ce (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.

import QtQuick 2.3
import QtQuick.Controls 1.4
import QtQuick.Controls.Styles 1.3
import UM 1.3 as UM
import Cura 1.0 as Cura

Component {
    Rectangle {
        id: base;
        property var shadowRadius: UM.Theme.getSize("monitor_shadow_radius").width;
        property var cornerRadius: UM.Theme.getSize("monitor_corner_radius").width;
        anchors.fill: parent;
        color: UM.Theme.getColor("main_background");
        visible: OutputDevice != null;

        UM.I18nCatalog {
            id: catalog;
            name: "cura";
        }

        Label {
            id: printingLabel;
            anchors {
                left: parent.left;
                leftMargin: 4 * UM.Theme.getSize("default_margin").width;
                margins: 2 * UM.Theme.getSize("default_margin").width;
                right: parent.right;
                top: parent.top;
            }
            color: UM.Theme.getColor("text");
            elide: Text.ElideRight;
            font: UM.Theme.getFont("large");
            text: catalog.i18nc("@label", "Printing");
        }

        Label {
            id: managePrintersLabel;
            anchors {
                bottom: printingLabel.bottom;
                right: printerScrollView.right;
                rightMargin: 4 * UM.Theme.getSize("default_margin").width;
            }
            color: UM.Theme.getColor("primary"); // "Cura Blue"
            font: UM.Theme.getFont("default");
            linkColor: UM.Theme.getColor("primary"); // "Cura Blue"
            text: catalog.i18nc("@label link to connect manager", "Manage printers");
        }

        MouseArea {
            anchors.fill: managePrintersLabel;
            hoverEnabled: true;
            onClicked: Cura.MachineManager.printerOutputDevices[0].openPrinterControlPanel();
            onEntered: managePrintersLabel.font.underline = true;
            onExited: managePrintersLabel.font.underline = false;
        }

        // Skeleton loading
        Column {
            id: skeletonLoader;
            anchors {
                left: parent.left;
                leftMargin: UM.Theme.getSize("wide_margin").width;
                right: parent.right;
                rightMargin: UM.Theme.getSize("wide_margin").width;
                top: printingLabel.bottom;
                topMargin: UM.Theme.getSize("default_margin").height;
            }
            spacing: UM.Theme.getSize("default_margin").height - 10;
            visible: printerList.count === 0;

            PrinterCard {
                printer: null;
            }
            PrinterCard {
                printer: null;
            }
        }

        // Actual content
        ScrollView {
            id: printerScrollView;
            anchors {
                bottom: parent.bottom;
                left: parent.left;
                right: parent.right;
                top: printingLabel.bottom;
                topMargin: UM.Theme.getSize("default_margin").height;
            }
            style: UM.Theme.styles.scrollview;

            ListView {
                id: printerList;
                property var currentIndex: -1;
                anchors {
                    fill: parent;
                    leftMargin: UM.Theme.getSize("wide_margin").width;
                    rightMargin: UM.Theme.getSize("wide_margin").width;
                }
                delegate: PrinterCard {
                    printer: modelData;
                }
                model: OutputDevice.printers;
                spacing: UM.Theme.getSize("default_margin").height - 10;
            }
        }
    }
}