|
@@ -10,245 +10,154 @@ import UM 1.1 as UM
|
|
|
|
|
|
Item {
|
|
|
id: base;
|
|
|
+ property int currentIndex: UM.ActiveTool.properties.SelectedIndex;
|
|
|
|
|
|
- width: 0;
|
|
|
- height: 0;
|
|
|
+ width: childrenRect.width;
|
|
|
+ height: childrenRect.height;
|
|
|
|
|
|
- property variant position: mapToItem(null, 0, 0)
|
|
|
+ Column {
|
|
|
+ id: items
|
|
|
+ anchors.top: parent.top;
|
|
|
+ anchors.left: parent.left;
|
|
|
|
|
|
- property real viewportWidth: UM.Application.mainWindow.width * UM.Application.mainWindow.viewportRect.width;
|
|
|
- property real viewportHeight: UM.Application.mainWindow.height * UM.Application.mainWindow.viewportRect.height;
|
|
|
+ spacing: UM.Theme.sizes.default_lining.height;
|
|
|
|
|
|
- property int currentIndex;
|
|
|
+ UM.SettingItem {
|
|
|
+ id: profileSelection
|
|
|
|
|
|
- Rectangle {
|
|
|
- id: settingsPanel;
|
|
|
+ width: UM.Theme.sizes.setting.width;
|
|
|
+ height: UM.Theme.sizes.setting.height;
|
|
|
|
|
|
- z: 3;
|
|
|
+ name: catalog.i18nc("@label", "Profile")
|
|
|
+ type: "enum"
|
|
|
+ indent: false
|
|
|
|
|
|
- width: UM.Theme.sizes.per_object_settings_panel.width;
|
|
|
- height: items.height + UM.Theme.sizes.default_margin.height * 2;
|
|
|
+ style: UM.Theme.styles.setting_item;
|
|
|
|
|
|
- opacity: 0;
|
|
|
- Behavior on opacity { NumberAnimation { } }
|
|
|
+ options: UM.ProfilesModel { addUseGlobal: true }
|
|
|
|
|
|
- border.width: UM.Theme.sizes.per_object_settings_panel_border.width;
|
|
|
- border.color: UM.Theme.colors.per_object_settings_panel_border;
|
|
|
+ value: UM.ActiveTool.properties.Model.getItem(base.currentIndex).profile
|
|
|
|
|
|
- color: UM.Theme.colors.per_object_settings_panel_background;
|
|
|
-
|
|
|
- DropArea {
|
|
|
- anchors.fill: parent;
|
|
|
- }
|
|
|
-
|
|
|
- Button {
|
|
|
- id: closeButton;
|
|
|
- width: UM.Theme.sizes.message_close.width;
|
|
|
- height: UM.Theme.sizes.message_close.height;
|
|
|
- anchors {
|
|
|
- right: parent.right;
|
|
|
- rightMargin: UM.Theme.sizes.default_margin.width / 2;
|
|
|
- top: parent.top;
|
|
|
- topMargin: UM.Theme.sizes.default_margin.width / 2;
|
|
|
- }
|
|
|
- UM.RecolorImage {
|
|
|
- anchors.fill: parent;
|
|
|
- sourceSize.width: width
|
|
|
- sourceSize.height: width
|
|
|
- color: UM.Theme.colors.message_dismiss
|
|
|
- source: UM.Theme.icons.cross2;
|
|
|
+ onItemValueChanged: {
|
|
|
+ var item = UM.ActiveTool.properties.Model.getItem(base.currentIndex);
|
|
|
+ UM.ActiveTool.properties.Model.setObjectProfile(item.id, value)
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
- onClicked: settingsPanel.opacity = 0
|
|
|
-
|
|
|
- style: ButtonStyle {
|
|
|
- background: Rectangle {
|
|
|
- color: UM.Theme.colors.message_background
|
|
|
- }
|
|
|
- }
|
|
|
+ Item
|
|
|
+ {
|
|
|
+ height: UM.Theme.sizes.default_margin.height
|
|
|
+ width: parent.width
|
|
|
}
|
|
|
|
|
|
- Column {
|
|
|
- id: items
|
|
|
- anchors.top: parent.top;
|
|
|
- anchors.topMargin: UM.Theme.sizes.default_margin.height;
|
|
|
+ Repeater {
|
|
|
+ id: settings;
|
|
|
|
|
|
- spacing: UM.Theme.sizes.default_lining.height;
|
|
|
+ model: UM.ActiveTool.properties.Model.getItem(base.currentIndex).settings
|
|
|
|
|
|
UM.SettingItem {
|
|
|
- id: profileSelection
|
|
|
-
|
|
|
- x: UM.Theme.sizes.per_object_settings_panel_border.width + 1
|
|
|
-
|
|
|
width: UM.Theme.sizes.setting.width;
|
|
|
height: UM.Theme.sizes.setting.height;
|
|
|
|
|
|
- name: catalog.i18nc("@label", "Profile")
|
|
|
- type: "enum"
|
|
|
+ name: model.label;
|
|
|
+ type: model.type;
|
|
|
+ value: model.value;
|
|
|
+ description: model.description;
|
|
|
+ unit: model.unit;
|
|
|
+ valid: model.valid;
|
|
|
+ options: model.options
|
|
|
+ indent: false
|
|
|
|
|
|
style: UM.Theme.styles.setting_item;
|
|
|
|
|
|
- options: UM.ProfilesModel { addUseGlobal: true }
|
|
|
-
|
|
|
- value: UM.ActiveTool.properties.Model.getItem(base.currentIndex).profile
|
|
|
-
|
|
|
onItemValueChanged: {
|
|
|
- var item = UM.ActiveTool.properties.Model.getItem(base.currentIndex);
|
|
|
- UM.ActiveTool.properties.Model.setObjectProfile(item.id, value)
|
|
|
+ settings.model.setSettingValue(model.key, value)
|
|
|
}
|
|
|
- }
|
|
|
-
|
|
|
- Repeater {
|
|
|
- id: settings;
|
|
|
|
|
|
- model: UM.ActiveTool.properties.Model.getItem(base.currentIndex).settings
|
|
|
+ Button
|
|
|
+ {
|
|
|
+ anchors.left: parent.left;
|
|
|
+ anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
|
|
|
|
|
- UM.SettingItem {
|
|
|
- width: UM.Theme.sizes.setting.width;
|
|
|
+ width: UM.Theme.sizes.setting.height;
|
|
|
height: UM.Theme.sizes.setting.height;
|
|
|
- x: UM.Theme.sizes.per_object_settings_panel_border.width + 1
|
|
|
-
|
|
|
- name: model.label;
|
|
|
- type: model.type;
|
|
|
- value: model.value;
|
|
|
- description: model.description;
|
|
|
- unit: model.unit;
|
|
|
- valid: model.valid;
|
|
|
- options: model.options
|
|
|
|
|
|
- style: UM.Theme.styles.setting_item;
|
|
|
+ opacity: parent.hovered || hovered ? 1 : 0;
|
|
|
+ onClicked: UM.ActiveTool.properties.Model.removeSettingOverride(UM.ActiveTool.properties.Model.getItem(base.currentIndex).id, model.key)
|
|
|
|
|
|
- onItemValueChanged: {
|
|
|
- settings.model.setSettingValue(model.key, value)
|
|
|
- }
|
|
|
-
|
|
|
- Button
|
|
|
+ style: ButtonStyle
|
|
|
{
|
|
|
- anchors.left: parent.horizontalCenter;
|
|
|
- anchors.leftMargin: UM.Theme.sizes.default_margin.width;
|
|
|
-
|
|
|
- width: UM.Theme.sizes.setting.height;
|
|
|
- height: UM.Theme.sizes.setting.height;
|
|
|
-
|
|
|
- opacity: parent.hovered || hovered ? 1 : 0;
|
|
|
- onClicked: UM.ActiveTool.properties.Model.removeSettingOverride(UM.ActiveTool.properties.Model.getItem(base.currentIndex).id, model.key)
|
|
|
-
|
|
|
- style: ButtonStyle
|
|
|
+ background: Rectangle
|
|
|
{
|
|
|
- background: Rectangle
|
|
|
+ color: control.hovered ? control.parent.style.controlHighlightColor : control.parent.style.controlColor;
|
|
|
+ UM.RecolorImage
|
|
|
{
|
|
|
- color: control.hovered ? control.parent.style.controlHighlightColor : control.parent.style.controlColor;
|
|
|
- UM.RecolorImage
|
|
|
- {
|
|
|
- anchors.verticalCenter: parent.verticalCenter
|
|
|
- anchors.horizontalCenter: parent.horizontalCenter
|
|
|
- width: parent.width/2
|
|
|
- height: parent.height/2
|
|
|
- sourceSize.width: width
|
|
|
- sourceSize.height: width
|
|
|
- color: UM.Theme.colors.setting_control_revert
|
|
|
- source: UM.Theme.icons.cross1
|
|
|
- }
|
|
|
+ anchors.verticalCenter: parent.verticalCenter
|
|
|
+ anchors.horizontalCenter: parent.horizontalCenter
|
|
|
+ width: parent.width/2
|
|
|
+ height: parent.height/2
|
|
|
+ sourceSize.width: width
|
|
|
+ sourceSize.height: width
|
|
|
+ color: UM.Theme.colors.setting_control_revert
|
|
|
+ source: UM.Theme.icons.cross1
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
- Item
|
|
|
- {
|
|
|
- height: UM.Theme.sizes.default_margin.height / 2
|
|
|
- width: parent.width
|
|
|
- }
|
|
|
-
|
|
|
- Button
|
|
|
- {
|
|
|
- id: customise_settings_button;
|
|
|
- anchors.right: profileSelection.right;
|
|
|
- visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1
|
|
|
-
|
|
|
- text: catalog.i18nc("@action:button", "Customize Settings");
|
|
|
-
|
|
|
- style: ButtonStyle
|
|
|
- {
|
|
|
- background: Rectangle
|
|
|
- {
|
|
|
- width: control.width;
|
|
|
- height: control.height;
|
|
|
- color: control.hovered ? UM.Theme.colors.load_save_button_hover : UM.Theme.colors.load_save_button;
|
|
|
- }
|
|
|
- label: Label
|
|
|
- {
|
|
|
- text: control.text;
|
|
|
- color: UM.Theme.colors.load_save_button_text;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- onClicked: settingPickDialog.visible = true;
|
|
|
-
|
|
|
- Connections
|
|
|
- {
|
|
|
- target: UM.Preferences;
|
|
|
-
|
|
|
- onPreferenceChanged:
|
|
|
- {
|
|
|
- customise_settings_button.visible = parseInt(UM.Preferences.getValue("cura/active_mode"))
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
- UM.I18nCatalog { id: catalog; name: "uranium"; }
|
|
|
- }
|
|
|
-
|
|
|
- Repeater {
|
|
|
- model: UM.ActiveTool.properties.Model;
|
|
|
- delegate: Button {
|
|
|
- x: ((model.x + 1.0) / 2.0) * base.viewportWidth - base.position.x - width / 2
|
|
|
- y: -((model.y + 1.0) / 2.0) * base.viewportHeight + (base.viewportHeight - base.position.y) + height / 2
|
|
|
+ Item
|
|
|
+ {
|
|
|
+ height: UM.Theme.sizes.default_margin.height
|
|
|
+ width: parent.width
|
|
|
+ }
|
|
|
|
|
|
- width: UM.Theme.sizes.per_object_settings_button.width
|
|
|
- height: UM.Theme.sizes.per_object_settings_button.height
|
|
|
+ Button
|
|
|
+ {
|
|
|
+ id: customise_settings_button;
|
|
|
+ anchors.right: profileSelection.right;
|
|
|
+ height: UM.Theme.sizes.setting.height;
|
|
|
+ visible: parseInt(UM.Preferences.getValue("cura/active_mode")) == 1
|
|
|
|
|
|
- tooltip: catalog.i18nc("@info:tooltip", "Customise settings for this object");
|
|
|
+ text: catalog.i18nc("@action:button", "Add Setting");
|
|
|
|
|
|
- checkable: true;
|
|
|
- onClicked: {
|
|
|
- if(settingsPanel.opacity < 0.5) //Per-object panel is not currently displayed.
|
|
|
+ style: ButtonStyle
|
|
|
+ {
|
|
|
+ background: Rectangle
|
|
|
{
|
|
|
- base.currentIndex = index;
|
|
|
-
|
|
|
- settingsPanel.anchors.left = right;
|
|
|
- settingsPanel.anchors.top = top;
|
|
|
-
|
|
|
- settingsPanel.opacity = 1;
|
|
|
+ width: control.width;
|
|
|
+ height: control.height;
|
|
|
+ border.width: UM.Theme.sizes.default_lining.width;
|
|
|
+ border.color: control.pressed ? UM.Theme.colors.action_button_active_border :
|
|
|
+ control.hovered ? UM.Theme.colors.action_button_hovered_border : UM.Theme.colors.action_button_border
|
|
|
+ color: control.pressed ? UM.Theme.colors.action_button_active :
|
|
|
+ control.hovered ? UM.Theme.colors.action_button_hovered : UM.Theme.colors.action_button
|
|
|
}
|
|
|
- else //Per-object panel is already displayed. Deactivate it (same behaviour as the close button).
|
|
|
+ label: Label
|
|
|
{
|
|
|
- settingsPanel.opacity = 0;
|
|
|
+ text: control.text;
|
|
|
+ color: UM.Theme.colors.setting_control_text;
|
|
|
+ anchors.centerIn: parent
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- style: ButtonStyle
|
|
|
+ onClicked: settingPickDialog.visible = true;
|
|
|
+
|
|
|
+ Connections
|
|
|
{
|
|
|
- background: Rectangle
|
|
|
- {
|
|
|
- width: control.width;
|
|
|
- height: control.height;
|
|
|
+ target: UM.Preferences;
|
|
|
|
|
|
- color: control.hovered ? UM.Theme.colors.button_active : UM.Theme.colors.button_hover;
|
|
|
- }
|
|
|
- label: Image {
|
|
|
- width: control.width;
|
|
|
- height: control.height;
|
|
|
- sourceSize.width: width;
|
|
|
- sourceSize.height: height;
|
|
|
- source: UM.Theme.icons.plus;
|
|
|
+ onPreferenceChanged:
|
|
|
+ {
|
|
|
+ customise_settings_button.visible = parseInt(UM.Preferences.getValue("cura/active_mode"))
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ UM.I18nCatalog { id: catalog; name: "uranium"; }
|
|
|
+
|
|
|
UM.Dialog {
|
|
|
id: settingPickDialog
|
|
|
|