mirror of
https://git.mirrors.martin98.com/https://github.com/Ultimaker/Cura
synced 2025-04-22 13:49:39 +08:00
Tweak layout of Per Object Settings
CURA-1799
This commit is contained in:
parent
ca2daae6ab
commit
2c61fe3249
@ -147,106 +147,111 @@ Item {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Repeater
|
Column
|
||||||
{
|
{
|
||||||
id: contents
|
spacing: UM.Theme.getSize("default_lining").height
|
||||||
height: childrenRect.height;
|
|
||||||
|
|
||||||
model: UM.SettingDefinitionsModel
|
Repeater
|
||||||
{
|
{
|
||||||
id: addedSettingsModel;
|
id: contents
|
||||||
containerId: Cura.MachineManager.activeDefinitionId
|
height: childrenRect.height;
|
||||||
expanded: [ "*" ]
|
|
||||||
|
|
||||||
visibilityHandler: Cura.PerObjectSettingVisibilityHandler
|
model: UM.SettingDefinitionsModel
|
||||||
{
|
{
|
||||||
selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId")
|
id: addedSettingsModel;
|
||||||
}
|
containerId: Cura.MachineManager.activeDefinitionId
|
||||||
}
|
expanded: [ "*" ]
|
||||||
|
|
||||||
delegate: Row
|
visibilityHandler: Cura.PerObjectSettingVisibilityHandler
|
||||||
{
|
|
||||||
Loader
|
|
||||||
{
|
|
||||||
id: settingLoader
|
|
||||||
width: UM.Theme.getSize("setting").width;
|
|
||||||
height: UM.Theme.getSize("section").height;
|
|
||||||
|
|
||||||
property var definition: model
|
|
||||||
property var settingDefinitionsModel: addedSettingsModel
|
|
||||||
property var propertyProvider: provider
|
|
||||||
|
|
||||||
//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
|
|
||||||
}
|
|
||||||
|
|
||||||
sourceComponent:
|
|
||||||
{
|
{
|
||||||
switch(model.type)
|
selectedObjectId: UM.ActiveTool.properties.getValue("SelectedObjectId")
|
||||||
{
|
}
|
||||||
case "int":
|
}
|
||||||
return settingTextField
|
|
||||||
case "float":
|
delegate: Row
|
||||||
return settingTextField
|
{
|
||||||
case "enum":
|
Loader
|
||||||
return settingComboBox
|
{
|
||||||
case "extruder":
|
id: settingLoader
|
||||||
return settingExtruder
|
width: UM.Theme.getSize("setting").width
|
||||||
case "bool":
|
height: UM.Theme.getSize("section").height
|
||||||
return settingCheckBox
|
|
||||||
case "str":
|
property var definition: model
|
||||||
return settingTextField
|
property var settingDefinitionsModel: addedSettingsModel
|
||||||
case "category":
|
property var propertyProvider: provider
|
||||||
return settingCategory
|
|
||||||
default:
|
//Qt5.4.2 and earlier has a bug where this causes a crash: https://bugreports.qt.io/browse/QTBUG-35989
|
||||||
return settingUnknown
|
//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
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Button
|
sourceComponent:
|
||||||
{
|
|
||||||
width: UM.Theme.getSize("setting").height;
|
|
||||||
height: UM.Theme.getSize("setting").height;
|
|
||||||
|
|
||||||
onClicked: addedSettingsModel.setVisible(model.key, false);
|
|
||||||
|
|
||||||
style: ButtonStyle
|
|
||||||
{
|
|
||||||
background: Item
|
|
||||||
{
|
{
|
||||||
UM.RecolorImage
|
switch(model.type)
|
||||||
{
|
{
|
||||||
anchors.verticalCenter: parent.verticalCenter
|
case "int":
|
||||||
anchors.horizontalCenter: parent.horizontalCenter
|
return settingTextField
|
||||||
width: parent.width/2
|
case "float":
|
||||||
height: parent.height/2
|
return settingTextField
|
||||||
sourceSize.width: width
|
case "enum":
|
||||||
sourceSize.height: width
|
return settingComboBox
|
||||||
color: control.hovered ? UM.Theme.getColor("setting_control_button_hover") : UM.Theme.getColor("setting_control_button")
|
case "extruder":
|
||||||
source: UM.Theme.getIcon("cross1")
|
return settingExtruder
|
||||||
|
case "bool":
|
||||||
|
return settingCheckBox
|
||||||
|
case "str":
|
||||||
|
return settingTextField
|
||||||
|
case "category":
|
||||||
|
return settingCategory
|
||||||
|
default:
|
||||||
|
return settingUnknown
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
UM.SettingPropertyProvider
|
|
||||||
{
|
|
||||||
id: provider
|
|
||||||
|
|
||||||
containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
|
Button
|
||||||
key: model.key
|
{
|
||||||
watchedProperties: [ "value", "enabled", "validationState" ]
|
width: UM.Theme.getSize("setting").height / 2;
|
||||||
storeIndex: 0
|
height: UM.Theme.getSize("setting").height;
|
||||||
removeUnusedValue: false
|
|
||||||
|
onClicked: addedSettingsModel.setVisible(model.key, false);
|
||||||
|
|
||||||
|
style: ButtonStyle
|
||||||
|
{
|
||||||
|
background: Item
|
||||||
|
{
|
||||||
|
UM.RecolorImage
|
||||||
|
{
|
||||||
|
anchors.verticalCenter: parent.verticalCenter
|
||||||
|
width: parent.width
|
||||||
|
height: parent.height / 2
|
||||||
|
sourceSize.width: 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")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UM.SettingPropertyProvider
|
||||||
|
{
|
||||||
|
id: provider
|
||||||
|
|
||||||
|
containerStackId: UM.ActiveTool.properties.getValue("ContainerID")
|
||||||
|
key: model.key
|
||||||
|
watchedProperties: [ "value", "enabled", "validationState" ]
|
||||||
|
storeIndex: 0
|
||||||
|
removeUnusedValue: false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
10260
resources/themes/cura/icons/minus.svg
Normal file
10260
resources/themes/cura/icons/minus.svg
Normal file
File diff suppressed because it is too large
Load Diff
After Width: | Height: | Size: 760 KiB |
Loading…
x
Reference in New Issue
Block a user