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

github.com/Ultimaker/Cura.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCasper Lamboo <c.lamboo@ultimaker.com>2022-06-15 19:24:18 +0300
committerGitHub <noreply@github.com>2022-06-15 19:24:18 +0300
commitdd76369b9aa062267e323d4e774c59318127cb45 (patch)
treeaca70f2f438f8897266f60e2da6f53c2f9887d9c /resources
parentcd3429491405fa8f3e1e02fb7b62015ac267fba2 (diff)
parentf9dda4040984f14766fc1e8f0cd15a7f1a6b8da4 (diff)
Merge pull request #12528 from Ultimaker/CURA-8849
[CURA-8849] Improve intent profile selection
Diffstat (limited to 'resources')
-rw-r--r--resources/qml/IconWithText.qml2
-rw-r--r--resources/qml/PrintSetupSelector/Recommended/ProfileWarningReset.qml108
-rw-r--r--resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml66
-rw-r--r--resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml176
-rw-r--r--resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml93
-rw-r--r--resources/qml/PrintSetupSelector/Recommended/RecommendedResolutionSelector.qml84
-rw-r--r--resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml54
-rw-r--r--resources/qml/Widgets/ComboBox.qml38
-rw-r--r--resources/themes/cura-light/icons/default/GearCheck.svg4
-rw-r--r--resources/themes/cura-light/icons/default/Nut.svg8
-rw-r--r--resources/themes/cura-light/icons/default/Visual.svg9
-rw-r--r--resources/themes/cura-light/theme.json11
12 files changed, 486 insertions, 167 deletions
diff --git a/resources/qml/IconWithText.qml b/resources/qml/IconWithText.qml
index cc0834d7ea..24f211ae17 100644
--- a/resources/qml/IconWithText.qml
+++ b/resources/qml/IconWithText.qml
@@ -22,6 +22,7 @@ Item
property alias elide: label.elide
property real margin: UM.Theme.getSize("narrow_margin").width
property alias wrapMode: label.wrapMode
+ property real spacing: UM.Theme.getSize("narrow_margin").width
// These properties can be used in combination with layouts.
readonly property real contentWidth: icon.width + margin + label.contentWidth
@@ -61,6 +62,7 @@ Item
top: parent.top
bottom: parent.bottom
rightMargin: 0
+ leftMargin: spacing
margins: margin
}
}
diff --git a/resources/qml/PrintSetupSelector/Recommended/ProfileWarningReset.qml b/resources/qml/PrintSetupSelector/Recommended/ProfileWarningReset.qml
new file mode 100644
index 0000000000..c9abcab1c8
--- /dev/null
+++ b/resources/qml/PrintSetupSelector/Recommended/ProfileWarningReset.qml
@@ -0,0 +1,108 @@
+import QtQuick 2.10
+
+import UM 1.6 as UM
+import Cura 1.6 as Cura
+
+Rectangle
+{
+ height: visible ? UM.Theme.getSize("action_button_icon").height : 0
+ visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.MachineManager.hasCustomQuality
+ anchors.topMargin: UM.Theme.getSize("default_margin")
+ anchors.bottomMargin: UM.Theme.getSize("default_margin")
+
+
+ Rectangle
+ {
+ id: warningIcon
+ color: UM.Theme.getColor("um_yellow_5")
+ height: UM.Theme.getSize("action_button_icon").height
+ width: height
+ radius: width
+ anchors
+ {
+ left: parent.left
+ verticalCenter: parent.verticalCenter
+ }
+ UM.ColorImage
+ {
+ height: UM.Theme.getSize("action_button_icon").height
+ width: height
+ source: UM.Theme.getIcon("Warning", "low")
+ }
+ }
+
+ UM.Label
+ {
+ id: warning
+ anchors
+ {
+ left: warningIcon.right
+ verticalCenter: parent.verticalCenter
+ leftMargin: UM.Theme.getSize("thin_margin").width
+ }
+
+ text: ""
+
+ states: [
+ State
+ {
+ name: "settings changed and custom quality"
+ when: Cura.SimpleModeSettingsManager.isProfileCustomized && Cura.MachineManager.hasCustomQuality
+ PropertyChanges
+ {
+ target: warning
+ text: {
+ var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
+ return "<b>%1</b> %2".arg(profile_name).arg(catalog.i18nc("@info", "custom profile is active and you overwrote some settings."))
+ }
+ }
+
+ },
+ State
+ {
+ name: "custom quality"
+ when: Cura.MachineManager.hasCustomQuality
+ PropertyChanges
+ {
+ target: warning
+ text: {
+ var profile_name = Cura.MachineManager.activeQualityChangesGroup.name
+ return "<b>%1</b> %2".arg(profile_name).arg(catalog.i18nc("@info", "custom profile is overriding some settings."))
+ }
+ }
+ },
+ State
+ {
+ name: "settings changed"
+ when: Cura.SimpleModeSettingsManager.isProfileCustomized
+ PropertyChanges
+ {
+ target: warning
+ text: catalog.i18nc("@info", "Some settings were changed.")
+ }
+ }
+ ]
+
+ }
+
+ UM.SimpleButton
+ {
+ id: resetToDefaultQualityButton
+ height: UM.Theme.getSize("action_button_icon").height
+ width: height
+ iconSource: UM.Theme.getIcon("ArrowReset")
+ anchors
+ {
+ right: parent.right
+ verticalCenter: parent.verticalCenter
+ }
+
+ color: UM.Theme.getColor("accent_1")
+
+ onClicked:
+ {
+ Cura.MachineManager.resetToUseDefaultQuality()
+ }
+ }
+
+} \ No newline at end of file
diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml
index de8cce6e94..aac8dcecfb 100644
--- a/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml
+++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedPrintSetup.qml
@@ -1,10 +1,11 @@
-// Copyright (c) 2018 Ultimaker B.V.
-// Cura is released under the terms of the LGPLv3 or higher.
+//Copyright (c) 2022 Ultimaker B.V.
+//Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.10
+import QtQuick.Layouts 1.1
-import UM 1.2 as UM
-import Cura 1.0 as Cura
+import UM 1.6 as UM
+import Cura 1.6 as Cura
Item
{
@@ -13,11 +14,11 @@ Item
height: childrenRect.height + 2 * padding
property bool settingsEnabled: Cura.ExtruderManager.activeExtruderStackId || extrudersEnabledCount.properties.value == 1
- property real padding: UM.Theme.getSize("thick_margin").width
+ property real padding: UM.Theme.getSize("default_margin").width
- Column
+ ColumnLayout
{
- spacing: UM.Theme.getSize("wide_margin").height
+ spacing: UM.Theme.getSize("default_margin").height
anchors
{
@@ -30,11 +31,53 @@ Item
// TODO
property real firstColumnWidth: Math.round(width / 3)
+ UM.Label
+ {
+ text: catalog.i18nc("@label", "Profiles")
+ font: UM.Theme.getFont("medium")
+ }
+
RecommendedQualityProfileSelector
{
width: parent.width
- // TODO Create a reusable component with these properties to not define them separately for each component
- labelColumnWidth: parent.firstColumnWidth
+ visible: recommendedResolutionSelector.visible
+ }
+
+ RecommendedResolutionSelector
+ {
+ id: recommendedResolutionSelector
+ Layout.fillWidth: true
+ width: parent.width
+ }
+
+ UnsupportedProfileIndication
+ {
+ width: parent.width
+ visible: !recommendedResolutionSelector.visible
+ }
+
+
+ ProfileWarningReset
+ {
+ width: parent.width
+ Layout.fillWidth: true
+ }
+
+ //Line between the sections.
+ Rectangle
+ {
+ width: parent.width
+ height: UM.Theme.getSize("default_lining").height
+ Layout.topMargin: UM.Theme.getSize("narrow_margin").height
+ Layout.bottomMargin: UM.Theme.getSize("narrow_margin").height
+ Layout.fillWidth: true
+ color: UM.Theme.getColor("lining")
+ }
+
+ UM.Label
+ {
+ text: catalog.i18nc("@label", "Print settings")
+ font: UM.Theme.getFont("medium")
}
RecommendedInfillDensitySelector
@@ -42,6 +85,9 @@ Item
width: parent.width
// TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth
+ Layout.fillWidth: true
+ Layout.leftMargin: UM.Theme.getSize("default_margin").width
+ Layout.rightMargin: UM.Theme.getSize("default_margin").width
}
RecommendedSupportSelector
@@ -49,6 +95,7 @@ Item
width: parent.width
// TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth
+ Layout.leftMargin: UM.Theme.getSize("default_margin").width
}
RecommendedAdhesionSelector
@@ -56,6 +103,7 @@ Item
width: parent.width
// TODO Create a reusable component with these properties to not define them separately for each component
labelColumnWidth: parent.firstColumnWidth
+ Layout.leftMargin: UM.Theme.getSize("default_margin").width
}
}
diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml
index 3d0077abb0..6bcca955d1 100644
--- a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml
+++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelector.qml
@@ -3,180 +3,46 @@
import QtQuick 2.10
import QtQuick.Controls 2.3
+import QtQuick.Layouts 2.10
import UM 1.5 as UM
-import Cura 1.6 as Cura
+import Cura 1.7 as Cura
import ".."
Item
{
id: qualityRow
height: childrenRect.height
+ visible: intentSelectionRepeater.count > 1 //Only show selector if there's more options than just "default".
- property real labelColumnWidth: Math.round(width / 3)
- property real settingsColumnWidth: width - labelColumnWidth
-
- // Here are the elements that are shown in the left column
-
- Column
+ RowLayout
{
- anchors
- {
- left: parent.left
- right: parent.right
- }
-
- spacing: UM.Theme.getSize("default_margin").height
-
- ButtonGroup
- {
- id: activeProfileButtonGroup
- exclusive: true
- onClicked: Cura.IntentManager.selectIntent(button.modelData.intent_category, button.modelData.quality_type)
- }
-
- Item
- {
- height: childrenRect.height
- anchors
- {
- left: parent.left
- right: parent.right
- }
- Cura.IconWithText
- {
- id: profileLabel
- source: UM.Theme.getIcon("PrintQuality")
- text: catalog.i18nc("@label", "Profiles")
- font: UM.Theme.getFont("medium")
- width: labelColumnWidth
- iconSize: UM.Theme.getSize("medium_button_icon").width
- }
- UM.SimpleButton
- {
- id: resetToDefaultQualityButton
-
- visible: Cura.SimpleModeSettingsManager.isProfileCustomized || Cura.MachineManager.hasCustomQuality
- height: visible ? UM.Theme.getSize("print_setup_icon").height : 0
- width: height
- anchors
- {
- right: profileLabel.right
- rightMargin: UM.Theme.getSize("default_margin").width
- leftMargin: UM.Theme.getSize("default_margin").width
- verticalCenter: parent.verticalCenter
- }
-
- color: hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
- iconSource: UM.Theme.getIcon("ArrowReset")
-
- onClicked:
- {
- // if the current profile is user-created, switch to a built-in quality
- Cura.MachineManager.resetToUseDefaultQuality()
- }
- onEntered:
- {
- var tooltipContent = catalog.i18nc("@tooltip","You have modified some profile settings. If you want to change these go to custom mode.")
- base.showTooltip(qualityRow, Qt.point(-UM.Theme.getSize("thick_margin").width, 0), tooltipContent)
- }
- onExited: base.hideTooltip()
- }
-
- Cura.LabelBar
- {
- id: labelbar
- anchors
- {
- left: profileLabel.right
- right: parent.right
- verticalCenter: profileLabel.verticalCenter
- }
-
- model: Cura.QualityProfilesDropDownMenuModel
- modelKey: "layer_height"
- }
- }
-
+ id: intentRow
+ width: parent.width
Repeater
{
- model: Cura.IntentCategoryModel {}
- Item
- {
- anchors
- {
- left: parent.left
- right: parent.right
- }
- height: intentCategoryLabel.height
-
- UM.Label
- {
- id: intentCategoryLabel
- text: model.name
- width: labelColumnWidth - UM.Theme.getSize("section_icon").width
- anchors.left: parent.left
- anchors.leftMargin: UM.Theme.getSize("section_icon").width + UM.Theme.getSize("narrow_margin").width
- font: UM.Theme.getFont("medium")
- elide: Text.ElideRight
- }
+ id: intentSelectionRepeater
+ model: Cura.IntentSelectionModel {}
- Cura.RadioCheckbar
- {
- anchors
- {
- left: intentCategoryLabel.right
- right: parent.right
- }
- dataModel: model["qualities"]
- buttonGroup: activeProfileButtonGroup
-
- function checkedFunction(modelItem)
- {
- if(Cura.MachineManager.hasCustomQuality)
- {
- // When user created profile is active, no quality tickbox should be active.
- return false
- }
-
- if(modelItem === null)
- {
- return false
- }
- return Cura.MachineManager.activeQualityType == modelItem.quality_type && Cura.MachineManager.activeIntentCategory == modelItem.intent_category
- }
-
- isCheckedFunction: checkedFunction
- }
+ RecommendedQualityProfileSelectorButton
+ {
+ profileName: model.name
+ icon: model.icon
- MouseArea // Intent description tooltip hover area
- {
- id: intentDescriptionHoverArea
- anchors.fill: parent
- hoverEnabled: true
- enabled: model.description !== undefined
- acceptedButtons: Qt.NoButton // react to hover only, don't steal clicks
- Timer
- {
- id: intentTooltipTimer
- interval: 500
- running: false
- repeat: false
- onTriggered: base.showTooltip(
- intentCategoryLabel,
- Qt.point(-(intentCategoryLabel.x - qualityRow.x) - UM.Theme.getSize("thick_margin").width, 0),
- model.description
- )
- }
+ selected: Cura.MachineManager.activeIntentCategory == model.intent_category
- onEntered: intentTooltipTimer.start()
- onExited:
+ onClicked: {
+ var qualityType
+ if (Cura.MachineManager.intentCategoryHasQuality(model.intent_category, Cura.MachineManager.activeQualityType))
{
- base.hideTooltip()
- intentTooltipTimer.stop()
+ qualityType = Cura.MachineManager.activeQualityType
+ } else {
+ qualityType = Cura.MachineManager.getDefaultQualityTypeForIntent(model.intent_category)
+ print(Cura.MachineManager.getDefaultQualityTypeForIntent(model.intent_category))
}
+ Cura.IntentManager.selectIntent(model.intent_category, qualityType)
}
}
}
diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml
new file mode 100644
index 0000000000..6804e7e5ba
--- /dev/null
+++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedQualityProfileSelectorButton.qml
@@ -0,0 +1,93 @@
+// 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 QtQuick.Layouts 2.10
+
+import UM 1.5 as UM
+import Cura 1.7 as Cura
+
+
+Rectangle
+{
+ id: base
+ height: 60
+ Layout.fillWidth: true
+ color: mouseArea.containsMouse || selected ? UM.Theme.getColor("background_3") : UM.Theme.getColor("background_1")
+
+ property bool selected: false
+ property string profileName: ""
+ property string icon: ""
+
+ signal clicked()
+
+ MouseArea
+ {
+ id: mouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ onClicked: base.clicked()
+ }
+
+ Item
+ {
+ width: intentIcon.width
+ anchors
+ {
+ top: parent.top
+ bottom: qualityLabel.top
+ horizontalCenter: parent.horizontalCenter
+ topMargin: UM.Theme.getSize("narrow_margin").height
+ }
+
+ Item
+ {
+ id: intentIcon
+ width: UM.Theme.getSize("recommended_button_icon").width
+ height: UM.Theme.getSize("recommended_button_icon").height
+ UM.ColorImage
+ {
+ anchors.fill: parent
+ anchors.centerIn: parent
+ visible: icon != ""
+ source: UM.Theme.getIcon(icon)
+ color: UM.Theme.getColor("icon")
+ }
+
+ Rectangle
+ {
+ id: circle
+ anchors.fill: parent
+ radius: width
+ anchors.verticalCenter: parent.verticalCenter
+ visible: icon == ""
+ border.width: UM.Theme.getSize("thick_lining").width
+ border.color: UM.Theme.getColor("text")
+
+ UM.Label
+ {
+ id: initialLabel
+ anchors.centerIn: parent
+ text: profileName.charAt(0).toUpperCase()
+ font: UM.Theme.getFont("small_bold")
+ horizontalAlignment: Text.AlignHCenter
+ }
+ }
+
+
+ }
+ }
+
+ UM.Label
+ {
+ id: qualityLabel
+ text: profileName
+ anchors
+ {
+ bottom: parent.bottom
+ horizontalCenter: parent.horizontalCenter
+ bottomMargin: UM.Theme.getSize("narrow_margin").height
+ }
+ }
+} \ No newline at end of file
diff --git a/resources/qml/PrintSetupSelector/Recommended/RecommendedResolutionSelector.qml b/resources/qml/PrintSetupSelector/Recommended/RecommendedResolutionSelector.qml
new file mode 100644
index 0000000000..6217cfe1cc
--- /dev/null
+++ b/resources/qml/PrintSetupSelector/Recommended/RecommendedResolutionSelector.qml
@@ -0,0 +1,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;
+ }
+ }
+ }
+} \ No newline at end of file
diff --git a/resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml b/resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml
new file mode 100644
index 0000000000..ff12fa9307
--- /dev/null
+++ b/resources/qml/PrintSetupSelector/Recommended/UnsupportedProfileIndication.qml
@@ -0,0 +1,54 @@
+//Copyright (c) 2022 Ultimaker B.V.
+//Cura is released under the terms of the LGPLv3 or higher.
+
+import QtQuick 2.15
+
+import Cura 1.6 as Cura
+import UM 1.6 as UM
+
+//Message showing the user that the configuration they have selected has no profiles.
+Column
+{
+ spacing: UM.Theme.getSize("default_margin").height
+
+ Row
+ {
+ width: parent.width
+
+ spacing: UM.Theme.getSize("thin_margin").width
+
+ UM.StatusIcon
+ {
+ width: UM.Theme.getSize("notification_icon").width
+ status: UM.StatusIcon.Status.ERROR
+ }
+
+ UM.Label
+ {
+ width: parent.width
+
+ font: UM.Theme.getFont("default_bold")
+ text: catalog.i18nc("@error", "Configuration not supported")
+ }
+ }
+
+ UM.Label
+ {
+ width: parent.width
+
+ text: catalog.i18nc("@message:text %1 is the name the printer uses for 'nozzle'.", "No profiles are available for the selected material/%1 configuration. Please change your configuration."
+ ).arg(Cura.MachineManager.activeDefinitionVariantsName)
+ }
+
+ Cura.TertiaryButton
+ {
+ anchors.right: parent.right
+
+ text: catalog.i18nc("@button:label", "Learn more")
+ textFont: UM.Theme.getFont("default")
+ iconSource: UM.Theme.getIcon("LinkExternal")
+ isIconOnRightSide: true
+
+ onClicked: Qt.openUrlExternally("https://support.ultimaker.com/hc/en-us/articles/360012909099")
+ }
+} \ No newline at end of file
diff --git a/resources/qml/Widgets/ComboBox.qml b/resources/qml/Widgets/ComboBox.qml
index 988b7c3782..77e6c489e9 100644
--- a/resources/qml/Widgets/ComboBox.qml
+++ b/resources/qml/Widgets/ComboBox.qml
@@ -17,6 +17,8 @@ ComboBox
property var defaultTextOnEmptyModel: catalog.i18nc("@label", "No items to select from") // Text displayed in the combobox when the model is empty
property var defaultTextOnEmptyIndex: "" // Text displayed in the combobox when the model has items but no item is selected
+ property alias textFormat: contentLabel.textFormat
+
enabled: delegateModel.count > 0
onVisibleChanged: { popup.close() }
@@ -52,7 +54,34 @@ ComboBox
}
]
- background: UM.UnderlineBackground{}
+ background: UM.UnderlineBackground
+ {
+ //Rectangle for highlighting when this combobox needs to pulse.
+ Rectangle
+ {
+ anchors.fill: parent
+ opacity: 0
+ color: UM.Theme.getColor("warning")
+
+ SequentialAnimation on opacity
+ {
+ id: pulseAnimation
+ running: false
+ loops: 1
+ alwaysRunToEnd: true
+ PropertyAnimation
+ {
+ to: 1
+ duration: 300
+ }
+ PropertyAnimation
+ {
+ to: 0
+ duration : 2000
+ }
+ }
+ }
+ }
indicator: UM.ColorImage
{
@@ -146,7 +175,7 @@ ComboBox
anchors.rightMargin: UM.Theme.getSize("setting_unit_margin").width
text: delegateItem.text
- textFormat: Text.PlainText
+ textFormat: control.textFormat
color: UM.Theme.getColor("setting_control_text")
elide: Text.ElideRight
wrapMode: Text.NoWrap
@@ -162,4 +191,9 @@ ComboBox
text: delegateLabel.truncated ? delegateItem.text : ""
}
}
+
+ function pulse()
+ {
+ pulseAnimation.restart();
+ }
}
diff --git a/resources/themes/cura-light/icons/default/GearCheck.svg b/resources/themes/cura-light/icons/default/GearCheck.svg
new file mode 100644
index 0000000000..1ec89a5a8d
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/GearCheck.svg
@@ -0,0 +1,4 @@
+<svg width="24" height="24" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
+<path d="M19 12C19 11.895 18.9888 11.7928 18.9843 11.6889L21.2354 9.9966L18.3525 5.0034L15.7525 6.1005C15.5837 5.9927 15.4112 5.8905 15.2325 5.7972L14.8828 3H9.11725L8.76725 5.7972C8.58555 5.8923 8.40965 5.9964 8.23725 6.1066L5.64725 5.0034L2.76465 9.9966L5.01525 11.7C5.01095 11.8 5.00005 11.8988 5.00005 12C5.00005 12.105 5.01125 12.2072 5.01575 12.3111L2.76465 14.0034L5.64755 18.9966L8.24755 17.8994C8.41635 18.0072 8.58885 18.1094 8.76755 18.2028L9.11725 21H14.8828L15.2328 18.2028C15.4145 18.1077 15.5904 18.0036 15.7628 17.8934L18.3528 18.9966L21.2357 14.0034L18.9848 12.3C18.9891 12.2 19 12.1012 19 12ZM18.62 14.5327L17.5028 16.4673L15.4513 15.6018C14.8703 16.1531 14.1649 16.5564 13.3949 16.7773L13.1172 19H10.8828L10.605 16.7773C9.8351 16.5564 9.12973 16.1531 8.54865 15.6018L6.49715 16.4673L5.38005 14.5327L7.15795 13.1865C6.94757 12.4095 6.94757 11.5905 7.15795 10.8135L5.38005 9.4673L6.49715 7.5327L8.54865 8.3982C9.12973 7.84686 9.8351 7.44364 10.605 7.2227L10.8828 5H13.1172L13.395 7.2227C14.165 7.44364 14.8704 7.84686 15.4514 8.3982L17.5029 7.5327L18.62 9.4673L16.8421 10.8135C17.0525 11.5905 17.0525 12.4095 16.8421 13.1865L18.62 14.5327Z"/>
+<path d="M11 15.414L8.29297 12.707L9.70697 11.293L11 12.586L14.293 9.29297L15.707 10.707L11 15.414Z"/>
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Nut.svg b/resources/themes/cura-light/icons/default/Nut.svg
new file mode 100644
index 0000000000..77df86d31b
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Nut.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
+<g>
+ <path d="M17,3.3H7L2,12l5,8.7h10l5-8.7L17,3.3z M15.8,18.7H8.2L4.3,12l3.8-6.7h7.7l3.8,6.7L15.8,18.7z"/>
+ <path d="M12,7c-2.8,0-5,2.2-5,5s2.2,5,5,5s5-2.2,5-5S14.8,7,12,7z M12,15c-1.7,0-3-1.3-3-3s1.3-3,3-3s3,1.3,3,3S13.7,15,12,15z"/>
+</g>
+</svg>
diff --git a/resources/themes/cura-light/icons/default/Visual.svg b/resources/themes/cura-light/icons/default/Visual.svg
new file mode 100644
index 0000000000..8d75b7feb4
--- /dev/null
+++ b/resources/themes/cura-light/icons/default/Visual.svg
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="utf-8"?>
+<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
+ viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
+<g>
+ <path d="M18,3H6C4.3,3,3,4.3,3,6v12c0,1.7,1.3,3,3,3h12c1.7,0,3-1.3,3-3V6C21,4.3,19.7,3,18,3z M19,19H5v-2.6l4-4l5,5l3-3l2,2V19z
+ M19,13.6l-2-2l-3,3l-5-5l-4,4V5h14V13.6z"/>
+ <circle cx="15.5" cy="8.5" r="1.5"/>
+</g>
+</svg>
diff --git a/resources/themes/cura-light/theme.json b/resources/themes/cura-light/theme.json
index b3ee4c912b..83eb13f0cb 100644
--- a/resources/themes/cura-light/theme.json
+++ b/resources/themes/cura-light/theme.json
@@ -133,6 +133,11 @@
"weight": 400,
"family": "Noto Sans"
},
+ "small_bold": {
+ "size": 0.9,
+ "weight": 700,
+ "family": "Noto Sans"
+ },
"small_ja_JP": {
"size": 0.9,
"weight": 400,
@@ -637,6 +642,10 @@
"marketplace_large_icon": [4.0, 4.0],
- "preferences_page_list_item": [8.0, 2.0]
+ "preferences_page_list_item": [8.0, 2.0],
+
+ "recommended_button_icon": [1.7, 1.7],
+
+ "reset_profile_icon": [1, 1]
}
}