|
@@ -1,145 +0,0 @@
|
|
|
-// Copyright (c) 2022 UltiMaker
|
|
|
-// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
-
|
|
|
-import QtQuick 2.7
|
|
|
-import QtQuick.Controls 2.15
|
|
|
-
|
|
|
-import UM 1.5 as UM
|
|
|
-import Cura 1.0 as Cura
|
|
|
-import QtQuick.Layouts 1.3
|
|
|
-
|
|
|
-RowLayout
|
|
|
-{
|
|
|
- height: childrenRect.height
|
|
|
- spacing: UM.Theme.getSize("default_margin").width
|
|
|
-
|
|
|
- anchors
|
|
|
- {
|
|
|
- left: strengthSection.right
|
|
|
- right: parent.right
|
|
|
- verticalCenter: strengthSection.verticalCenter
|
|
|
- }
|
|
|
-
|
|
|
- UM.SettingPropertyProvider
|
|
|
- {
|
|
|
- id: infillDensity
|
|
|
- containerStackId: Cura.MachineManager.activeStackId
|
|
|
- key: "infill_sparse_density"
|
|
|
- watchedProperties: [ "value" ]
|
|
|
- storeIndex: 0
|
|
|
- }
|
|
|
-
|
|
|
- UM.Label { Layout.fillWidth: false; text: "0" }
|
|
|
-
|
|
|
- Slider
|
|
|
- {
|
|
|
- id: infillSlider
|
|
|
- Layout.fillWidth: true
|
|
|
-
|
|
|
- width: parent.width
|
|
|
-
|
|
|
- from: 0; to: 100; stepSize: 1
|
|
|
-
|
|
|
- // disable slider when gradual support is enabled
|
|
|
- enabled: parseInt(infillSteps.properties.value) == 0
|
|
|
-
|
|
|
- // set initial value from stack
|
|
|
- value: parseInt(infillDensity.properties.value)
|
|
|
-
|
|
|
- //Draw line
|
|
|
- background: Rectangle
|
|
|
- {
|
|
|
- id: backgroundLine
|
|
|
- height: UM.Theme.getSize("print_setup_slider_groove").height
|
|
|
- width: parent.width - UM.Theme.getSize("print_setup_slider_handle").width
|
|
|
- anchors.horizontalCenter: parent.horizontalCenter
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
- color: UM.Theme.getColor("lining")
|
|
|
-
|
|
|
- Repeater
|
|
|
- {
|
|
|
- id: repeater
|
|
|
- anchors.fill: parent
|
|
|
- model: 11
|
|
|
-
|
|
|
- Rectangle
|
|
|
- {
|
|
|
- color: UM.Theme.getColor("lining")
|
|
|
- implicitWidth: UM.Theme.getSize("print_setup_slider_tickmarks").width
|
|
|
- implicitHeight: UM.Theme.getSize("print_setup_slider_tickmarks").height
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
-
|
|
|
- x: Math.round(backgroundLine.width / (repeater.count - 1) * index - width / 2)
|
|
|
-
|
|
|
- radius: Math.round(width / 2)
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- handle: Rectangle
|
|
|
- {
|
|
|
- id: handleButton
|
|
|
- x: infillSlider.leftPadding + infillSlider.visualPosition * (infillSlider.availableWidth - width)
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
- implicitWidth: UM.Theme.getSize("print_setup_slider_handle").width
|
|
|
- implicitHeight: UM.Theme.getSize("print_setup_slider_handle").height
|
|
|
- radius: Math.round(width / 2)
|
|
|
- color: UM.Theme.getColor("main_background")
|
|
|
- border.color: UM.Theme.getColor("primary")
|
|
|
- border.width: UM.Theme.getSize("wide_lining").height
|
|
|
- }
|
|
|
-
|
|
|
- UM.PointingRectangle
|
|
|
- {
|
|
|
- arrowSize: UM.Theme.getSize("button_tooltip_arrow").width
|
|
|
- width: childrenRect.width
|
|
|
- height: childrenRect.height
|
|
|
- target: Qt.point(handleButton.x + handleButton.width / 2, handleButton.y + handleButton.height / 2)
|
|
|
- x: handleButton.x + Math.round((handleButton.width - width) / 2)
|
|
|
- y: handleButton.y - height - UM.Theme.getSize("button_tooltip_arrow").height - UM.Theme.getSize("narrow_margin").height
|
|
|
- color: UM.Theme.getColor("tooltip");
|
|
|
-
|
|
|
- UM.Label
|
|
|
- {
|
|
|
- text: `${infillSlider.value}%`
|
|
|
- horizontalAlignment: TextInput.AlignHCenter
|
|
|
- leftPadding: UM.Theme.getSize("narrow_margin").width
|
|
|
- rightPadding: UM.Theme.getSize("narrow_margin").width
|
|
|
- color: UM.Theme.getColor("tooltip_text");
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- Connections
|
|
|
- {
|
|
|
- target: infillSlider
|
|
|
- function onValueChanged()
|
|
|
- {
|
|
|
- // Work around, the `infillDensity.properties.value` is initially `undefined`. As
|
|
|
- // `parseInt(infillDensity.properties.value)` is parsed as 0 and is initially set as
|
|
|
- // the slider value. By setting this 0 value an update is triggered setting the actual
|
|
|
- // infill value to 0.
|
|
|
- if (isNaN(parseInt(infillDensity.properties.value)))
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // Don't update if the setting value, if the slider has the same value
|
|
|
- if (parseInt(infillDensity.properties.value) == infillSlider.value)
|
|
|
- {
|
|
|
- return;
|
|
|
- }
|
|
|
-
|
|
|
- // Round the slider value to the nearest multiple of 10 (simulate step size of 10)
|
|
|
- const roundedSliderValue = Math.round(infillSlider.value / 10) * 10;
|
|
|
-
|
|
|
- // Update the slider value to represent the rounded value
|
|
|
- infillSlider.value = roundedSliderValue;
|
|
|
-
|
|
|
- Cura.MachineManager.setSettingForAllExtruders("infill_sparse_density", "value", roundedSliderValue)
|
|
|
- Cura.MachineManager.resetSettingForAllExtruders("infill_line_distance")
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- UM.Label { Layout.fillWidth: false; text: "100" }
|
|
|
-}
|