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:
authorGhostkeeper <rubend@tutanota.com>2022-01-18 16:45:43 +0300
committerGhostkeeper <rubend@tutanota.com>2022-01-18 16:53:25 +0300
commitf630b847886f60fffca4fe5c73c9927839f0da9d (patch)
tree778fa17bc99b7f5005a33db23d7598021ff4e5f7 /plugins/PerObjectSettingsTool
parentd4381a6dd0e21bd80e884eea27066ec0f7a46c0f (diff)
Replace ScrollView with QtControls2 ListView
I can't update the buttons (not part of this ticket) so I kept those Controls1. The ScrollView is no longer necessary, just a ListView now with customised scroll bar. Contributes to issue CURA-8686.
Diffstat (limited to 'plugins/PerObjectSettingsTool')
-rw-r--r--plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml303
1 files changed, 151 insertions, 152 deletions
diff --git a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml
index c97989c449..098876e368 100644
--- a/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml
+++ b/plugins/PerObjectSettingsTool/PerObjectSettingsPanel.qml
@@ -1,9 +1,10 @@
-// Copyright (c) 2021 Ultimaker B.V.
-// Uranium 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.2
-import QtQuick.Controls 1.2
+import QtQuick.Controls 1.2 as OldControls
import QtQuick.Controls.Styles 1.2
+import QtQuick.Controls 2.15
import UM 1.5 as UM
import Cura 1.0 as Cura
@@ -76,7 +77,7 @@ Item
id: meshTypeButtons
spacing: UM.Theme.getSize("default_margin").width
- Button
+ OldControls.Button
{
id: normalButton
text: catalog.i18nc("@label", "Normal model")
@@ -88,7 +89,7 @@ Item
z: 4
}
- Button
+ OldControls.Button
{
id: supportMeshButton
text: catalog.i18nc("@label", "Print as support")
@@ -100,7 +101,7 @@ Item
z: 3
}
- Button
+ OldControls.Button
{
id: overlapMeshButton
text: catalog.i18nc("@label", "Modify settings for overlaps")
@@ -112,7 +113,7 @@ Item
z: 2
}
- Button
+ OldControls.Button
{
id: antiOverhangMeshButton
text: catalog.i18nc("@label", "Don't support overlaps")
@@ -179,189 +180,187 @@ Item
height: Math.min(contents.count * (UM.Theme.getSize("section").height + UM.Theme.getSize("default_lining").height), maximumHeight)
visible: currentMeshType != "anti_overhang_mesh"
- ScrollView
+ ListView
{
+ id: contents
height: parent.height
width: UM.Theme.getSize("setting").width + UM.Theme.getSize("default_margin").width
- style: UM.Theme.styles.scrollview
- ListView
- {
- id: contents
- spacing: UM.Theme.getSize("default_lining").height
+ ScrollBar.vertical: UM.ScrollBar {}
+ clip: true
+ spacing: UM.Theme.getSize("default_lining").height
- model: UM.SettingDefinitionsModel
+ model: UM.SettingDefinitionsModel
+ {
+ id: addedSettingsModel
+ containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
+ expanded: [ "*" ]
+ filter:
{
- id: addedSettingsModel
- containerId: Cura.MachineManager.activeMachine != null ? Cura.MachineManager.activeMachine.definition.id: ""
- expanded: [ "*" ]
- filter:
- {
- if (printSequencePropertyProvider.properties.value == "one_at_a_time")
- {
- return {"settable_per_meshgroup": true}
- }
- return {"settable_per_mesh": true}
- }
- exclude:
+ if (printSequencePropertyProvider.properties.value == "one_at_a_time")
{
- var excluded_settings = [ "support_mesh", "anti_overhang_mesh", "cutting_mesh", "infill_mesh" ]
-
- if (currentMeshType == "support_mesh")
- {
- excluded_settings = excluded_settings.concat(base.allCategoriesExceptSupport)
- }
- return excluded_settings
+ return {"settable_per_meshgroup": true}
}
+ return {"settable_per_mesh": true}
+ }
+ exclude:
+ {
+ var excluded_settings = [ "support_mesh", "anti_overhang_mesh", "cutting_mesh", "infill_mesh" ]
- visibilityHandler: Cura.PerObjectSettingVisibilityHandler
+ if (currentMeshType == "support_mesh")
{
- id: visibility_handler
- selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId")
+ excluded_settings = excluded_settings.concat(base.allCategoriesExceptSupport)
}
+ return excluded_settings
+ }
- // For some reason the model object is updated after removing him from the memory and
- // it happens only on Windows. For this reason, set the destroyed value manually.
- Component.onDestruction:
- {
- setDestroyed(true)
- }
+ visibilityHandler: Cura.PerObjectSettingVisibilityHandler
+ {
+ id: visibility_handler
+ selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId")
+ }
+
+ // For some reason the model object is updated after removing him from the memory and
+ // it happens only on Windows. For this reason, set the destroyed value manually.
+ Component.onDestruction:
+ {
+ setDestroyed(true)
}
+ }
- delegate: Row
+ delegate: Row
+ {
+ spacing: - UM.Theme.getSize("default_margin").width
+ Loader
{
- spacing: - UM.Theme.getSize("default_margin").width
- Loader
+ id: settingLoader
+ width: UM.Theme.getSize("setting").width
+ height: UM.Theme.getSize("section").height
+ enabled: provider.properties.enabled === "True"
+ property var definition: model
+ property var settingDefinitionsModel: addedSettingsModel
+ property var propertyProvider: provider
+ property var globalPropertyProvider: inheritStackProvider
+ property var externalResetHandler: false
+
+ //Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
+ //In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
+ //causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
+ asynchronous: model.type != "enum" && model.type != "extruder"
+
+ onLoaded:
{
- id: settingLoader
- width: UM.Theme.getSize("setting").width
- height: UM.Theme.getSize("section").height
- enabled: provider.properties.enabled === "True"
- property var definition: model
- property var settingDefinitionsModel: addedSettingsModel
- property var propertyProvider: provider
- property var globalPropertyProvider: inheritStackProvider
- property var externalResetHandler: false
-
- //Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
- //In addition, while it works for 5.5 and higher, the ordering of the actual combo box drop down changes,
- //causing nasty issues when selecting different options. So disable asynchronous loading of enum type completely.
- asynchronous: model.type != "enum" && model.type != "extruder"
-
- onLoaded:
- {
- settingLoader.item.showRevertButton = false
- settingLoader.item.showInheritButton = false
- settingLoader.item.showLinkedSettingIcon = false
- settingLoader.item.doDepthIndentation = false
- settingLoader.item.doQualityUserSettingEmphasis = false
- }
+ settingLoader.item.showRevertButton = false
+ settingLoader.item.showInheritButton = false
+ settingLoader.item.showLinkedSettingIcon = false
+ settingLoader.item.doDepthIndentation = false
+ settingLoader.item.doQualityUserSettingEmphasis = false
+ }
- sourceComponent:
+ sourceComponent:
+ {
+ switch(model.type)
{
- switch(model.type)
- {
- case "int":
- return settingTextField
- case "[int]":
- return settingTextField
- case "float":
- return settingTextField
- case "enum":
- return settingComboBox
- case "extruder":
- return settingExtruder
- case "optional_extruder":
- return settingOptionalExtruder
- case "bool":
- return settingCheckBox
- case "str":
- return settingTextField
- case "category":
- return settingCategory
- default:
- return settingUnknown
- }
+ case "int":
+ return settingTextField
+ case "[int]":
+ return settingTextField
+ case "float":
+ return settingTextField
+ case "enum":
+ return settingComboBox
+ case "extruder":
+ return settingExtruder
+ case "optional_extruder":
+ return settingOptionalExtruder
+ case "bool":
+ return settingCheckBox
+ case "str":
+ return settingTextField
+ case "category":
+ return settingCategory
+ default:
+ return settingUnknown
}
}
+ }
- Button
- {
- width: Math.round(UM.Theme.getSize("setting").height / 2)
- height: UM.Theme.getSize("setting").height
+ OldControls.Button
+ {
+ width: Math.round(UM.Theme.getSize("setting").height / 2)
+ height: UM.Theme.getSize("setting").height
- onClicked: addedSettingsModel.setVisible(model.key, false)
+ onClicked: addedSettingsModel.setVisible(model.key, false)
- style: ButtonStyle
+ style: ButtonStyle
+ {
+ background: Item
{
- background: Item
+ UM.RecolorImage
{
- UM.RecolorImage
- {
- anchors.verticalCenter: parent.verticalCenter
- width: parent.width
- height: width
- sourceSize.height: width
- color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
- source: UM.Theme.getIcon("Minus")
- }
+ anchors.verticalCenter: parent.verticalCenter
+ width: parent.width
+ height: width
+ sourceSize.height: width
+ color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
+ source: UM.Theme.getIcon("Minus")
}
}
}
+ }
- // Specialty provider that only watches global_inherits (we can't filter on what property changed we get events
- // so we bypass that to make a dedicated provider).
- UM.SettingPropertyProvider
- {
- id: provider
+ // Specialty provider that only watches global_inherits (we can't filter on what property changed we get events
+ // so we bypass that to make a dedicated provider).
+ UM.SettingPropertyProvider
+ {
+ id: provider
- containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
- key: model.key
- watchedProperties: [ "value", "enabled", "validationState" ]
- storeIndex: 0
- removeUnusedValue: false
- }
+ containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
+ key: model.key
+ watchedProperties: [ "value", "enabled", "validationState" ]
+ storeIndex: 0
+ removeUnusedValue: false
+ }
- UM.SettingPropertyProvider
- {
- id: inheritStackProvider
- containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
- key: model.key
- watchedProperties: [ "limit_to_extruder" ]
- }
+ UM.SettingPropertyProvider
+ {
+ id: inheritStackProvider
+ containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
+ key: model.key
+ watchedProperties: [ "limit_to_extruder" ]
+ }
- Connections
- {
- target: inheritStackProvider
- function onPropertiesChanged() { provider.forcePropertiesChanged() }
- }
+ Connections
+ {
+ target: inheritStackProvider
+ function onPropertiesChanged() { provider.forcePropertiesChanged() }
+ }
- Connections
+ Connections
+ {
+ target: UM.ActiveTool
+ function onPropertiesChanged()
{
- target: UM.ActiveTool
- function onPropertiesChanged()
+ // the values cannot be bound with UM.ActiveTool.properties.getValue() calls,
+ // so here we connect to the signal and update the those values.
+ if (typeof UM.ActiveTool.properties.getValue("SelectedObjectId") !== "undefined")
+ {
+ const selectedObjectId = UM.ActiveTool.properties.getValue("SelectedObjectId")
+ if (addedSettingsModel.visibilityHandler.selectedObjectId != selectedObjectId)
+ {
+ addedSettingsModel.visibilityHandler.selectedObjectId = selectedObjectId
+ }
+ }
+ if (typeof UM.ActiveTool.properties.getValue("ContainerID") !== "undefined")
{
- // the values cannot be bound with UM.ActiveTool.properties.getValue() calls,
- // so here we connect to the signal and update the those values.
- if (typeof UM.ActiveTool.properties.getValue("SelectedObjectId") !== "undefined")
+ const containerId = UM.ActiveTool.properties.getValue("ContainerID")
+ if (provider.containerStackId != containerId)
{
- const selectedObjectId = UM.ActiveTool.properties.getValue("SelectedObjectId")
- if (addedSettingsModel.visibilityHandler.selectedObjectId != selectedObjectId)
- {
- addedSettingsModel.visibilityHandler.selectedObjectId = selectedObjectId
- }
+ provider.containerStackId = containerId
}
- if (typeof UM.ActiveTool.properties.getValue("ContainerID") !== "undefined")
+ if (inheritStackProvider.containerStackId != containerId)
{
- const containerId = UM.ActiveTool.properties.getValue("ContainerID")
- if (provider.containerStackId != containerId)
- {
- provider.containerStackId = containerId
- }
- if (inheritStackProvider.containerStackId != containerId)
- {
- inheritStackProvider.containerStackId = containerId
- }
+ inheritStackProvider.containerStackId = containerId
}
}
}