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

RecommendedResolutionSelector.qml « Recommended « PrintSetupSelector « qml « resources - github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 6217cfe1cc579620eaa17110cc7640ef20fdf0e3 (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
// Copyright (c) 2022 Ultimaker B.V.
// Cura is released under the terms of the LGPLv3 or higher.

import QtQuick 2.10

import UM 1.6 as UM
import Cura 1.7 as Cura

Item
{
    id: recommendedResolutionSelector
    height: childrenRect.height

    property real labelColumnWidth: Math.round(width / 3)
    property string _previousResolution: ""  //Internal variable to detect changes.
    Component.onCompleted: _previousResolution = Cura.MachineManager.activeQualityType;

    visible: visibilityPreset.count > 0 //Only show if there are quality types to select from.

    Cura.IconWithText
    {
        id: resolutionTitle
        anchors.top: parent.top
        anchors.left: parent.left
        source: UM.Theme.getIcon("PrintQuality")
        text: catalog.i18nc("@label", "Resolution")
        width: labelColumnWidth
        height: parent.height
        spacing: UM.Theme.getSize("thick_margin").width
        iconSize: UM.Theme.getSize("medium_button_icon").width
    }

    Cura.ComboBox
    {
        id: visibilityPreset
        implicitHeight: UM.Theme.getSize("combobox").height
        implicitWidth: UM.Theme.getSize("combobox").width
        anchors
        {
            top: parent.top
            right: parent.right
        }

        textRole: "display_text"
        textFormat: Text.StyledText

        model: Cura.ActiveIntentQualitiesModel{}

        currentIndex:
        {
            var current_quality_type = Cura.MachineManager.activeQualityType

            var index = 0
            for (var i = 0; i < model.count; i++)
            {
                if (model.getItem(i).quality_type == current_quality_type)
                {
                    index = i
                    break
                }
            }
            return index
        }

        onActivated:
        {
            var selected_item = model.getItem(currentIndex)
            Cura.IntentManager.selectIntent(selected_item.intent_category, selected_item.quality_type)
        }

        Connections
        {
            target: Cura.IntentManager
            function onIntentCategoryChanged()
            {
                if(recommendedResolutionSelector._previousResolution !== Cura.MachineManager.activeQualityType)
                {
                    visibilityPreset.pulse();
                }
                recommendedResolutionSelector._previousResolution = Cura.MachineManager.activeQualityType;
            }
        }
    }
}