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

PrepareMenu.qml « PrepareStage « plugins - github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: fa94bc88b20e217f2737d53444ee6107b5179c3a (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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
// Copyright (c) 2018 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.

import QtQuick 2.7
import QtQuick.Layouts 1.1
import QtQuick.Controls 2.3

import UM 1.3 as UM
import Cura 1.1 as Cura

import QtGraphicalEffects 1.0 // For the dropshadow

Item
{
    id: prepareMenu
    // This widget doesn't show tooltips by itself. Instead it emits signals so others can do something with it.
    signal showTooltip(Item item, point location, string text)
    signal hideTooltip()


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

    // Item to ensure that all of the buttons are nicely centered.
    Item
    {
        anchors.horizontalCenter: parent.horizontalCenter
        width: openFileButton.width + itemRow.width + UM.Theme.getSize("default_margin").width
        height: parent.height

        RowLayout
        {
            id: itemRow

            anchors.left: openFileButton.right
            anchors.leftMargin: UM.Theme.getSize("default_margin").width

            width: Math.round(0.9 * prepareMenu.width)
            height: parent.height
            spacing: 0

            Cura.MachineSelector
            {
                id: machineSelection
                z: openFileButton.z - 1 //Ensure that the tooltip of the open file button stays above the item row.
                headerCornerSide: Cura.RoundedRectangle.Direction.Left
                Layout.minimumWidth: UM.Theme.getSize("machine_selector_widget").width
                Layout.maximumWidth: UM.Theme.getSize("machine_selector_widget").width
                Layout.fillWidth: true
                Layout.fillHeight: true
            }

            // Separator line
            Rectangle
            {
                height: parent.height
                width: UM.Theme.getSize("default_lining").width
                color: UM.Theme.getColor("lining")
            }

            Cura.ConfigurationMenu
            {
                Layout.fillHeight: true
                Layout.fillWidth: true
                Layout.preferredWidth: itemRow.width - machineSelection.width - printSetupSelectorItem.width - 2 * UM.Theme.getSize("default_lining").width
            }

            // Separator line
            Rectangle
            {
                height: parent.height
                width: UM.Theme.getSize("default_lining").width
                color: UM.Theme.getColor("lining")
            }

            Item
            {
                id: printSetupSelectorItem
                // This is a work around to prevent the printSetupSelector from having to be re-loaded every time
                // a stage switch is done.
                children: [printSetupSelector]
                height: childrenRect.height
                width: childrenRect.width
            }
        }

        Button
        {
            id: openFileButton
            height: UM.Theme.getSize("stage_menu").height
            width: UM.Theme.getSize("stage_menu").height
            onClicked: Cura.Actions.open.trigger()
            hoverEnabled: true

            contentItem: Item
            {
                anchors.fill: parent
                UM.RecolorImage
                {
                    id: buttonIcon
                    anchors.centerIn: parent
                    source: UM.Theme.getIcon("load")
                    width: UM.Theme.getSize("button_icon").width
                    height: UM.Theme.getSize("button_icon").height
                    color: UM.Theme.getColor("toolbar_button_text")

                    sourceSize.height: height
                }
            }

            background: Rectangle
            {
                id: background
                height: UM.Theme.getSize("stage_menu").height
                width: UM.Theme.getSize("stage_menu").height

                radius: UM.Theme.getSize("default_radius").width
                color: openFileButton.hovered ? UM.Theme.getColor("action_button_hovered") : UM.Theme.getColor("action_button")
            }

            DropShadow
            {
                id: shadow
                // Don't blur the shadow
                radius: 0
                anchors.fill: background
                source: background
                verticalOffset: 2
                visible: true
                color: UM.Theme.getColor("action_button_shadow")
                // Should always be drawn behind the background.
                z: background.z - 1
            }
        }
    }
}