From 546872aa87339de7535fb892b9e2c98397ceacb3 Mon Sep 17 00:00:00 2001 From: Tamara Hogenhout Date: Wed, 2 Sep 2015 16:34:37 +0200 Subject: [PATCH] 15.10 restyling of the profile setup Contributes to: issue CURA-60 --- resources/qml/ProfileSetup.qml | 148 +++++++++++++++++++++++++++++++ resources/qml/Sidebar.qml | 88 ++---------------- resources/themes/cura/theme.json | 1 + 3 files changed, 155 insertions(+), 82 deletions(-) create mode 100644 resources/qml/ProfileSetup.qml diff --git a/resources/qml/ProfileSetup.qml b/resources/qml/ProfileSetup.qml new file mode 100644 index 0000000000..b07ee04a63 --- /dev/null +++ b/resources/qml/ProfileSetup.qml @@ -0,0 +1,148 @@ +// Copyright (c) 2015 Ultimaker B.V. +// Cura is released under the terms of the AGPLv3 or higher. + +import QtQuick 2.2 +import QtQuick.Controls 1.1 +import QtQuick.Controls.Styles 1.1 +import QtQuick.Layouts 1.1 + +import UM 1.1 as UM + +Column{ + id: base; + UM.I18nCatalog { id: catalog; name:"cura"} + property int totalHeightProfileSetup: childrenRect.height + spacing: 0 + + Rectangle{ + id: variantItem; + height: UM.Theme.sizes.sidebar_setup.height + width: base.width + visible: UM.MachineManager.hasVariants; + + Rectangle { + id: variantRow + width: base.width + height: parent.heigth + + Label{ + id: variantLabel + text: catalog.i18nc("@label","Variant:"); + anchors.left: parent.left + anchors.leftMargin: UM.Theme.sizes.default_margin.width; + anchors.verticalCenter: parent.verticalCenter + width: parent.width/100*45 + font: UM.Theme.fonts.default; + } + + ToolButton { + id: variantSelection + text: UM.MachineManager.activeMachineVariant + width: parent.width/100*55 + height: UM.Theme.sizes.setting_control.height + tooltip: UM.MachineManager.activeMachineInstance; + anchors.right: parent.right + anchors.rightMargin: UM.Theme.sizes.default_margin.width + anchors.verticalCenter: parent.verticalCenter + style: UM.Theme.styles.sidebar_header_button + + menu: Menu + { + id: variantsSelectionMenu + Instantiator + { + model: UM.MachineVariantsModel { } + MenuItem + { + text: model.name; + checkable: true; + checked: model.active; + exclusiveGroup: variantSelectionMenuGroup; + onTriggered: UM.MachineManager.setActiveMachineVariant(model.getItem(index).name) + } + } + + ExclusiveGroup { id: variantSelectionMenuGroup; } + } + } + } + } + + Rectangle{ + id: globalProfileRow; + height: UM.Theme.sizes.sidebar_setup.height + width: base.width + + Label{ + id: globalProfileLabel + anchors.left: parent.left + anchors.leftMargin: UM.Theme.sizes.default_margin.width; + anchors.verticalCenter: parent.verticalCenter + text: catalog.i18nc("@label","Global Profile:"); + width: parent.width/100*45 + font: UM.Theme.fonts.default; + } + + + ToolButton { + id: globalProfileSelection + text: UM.MachineManager.activeProfile + width: parent.width/100*45 + height: UM.Theme.sizes.setting_control.height + anchors.right: parent.right + anchors.rightMargin: (UM.Theme.sizes.default_margin.width * 2) + saveProfileButton.width + anchors.verticalCenter: parent.verticalCenter + tooltip: UM.MachineManager.activeProfile + style: UM.Theme.styles.sidebar_header_button + + menu: Menu + { + id: machineSelectionMenu + Instantiator + { + model: UM.ProfilesModel { } + MenuItem + { + text: model.name + checkable: true; + checked: model.active; + exclusiveGroup: profileSelectionMenuGroup; + onTriggered: UM.MachineManager.setActiveProfile(model.name) + } + onObjectAdded: machineSelectionMenu.insertItem(index, object) + onObjectRemoved: machineSelectionMenu.removeItem(object) + } + ExclusiveGroup { id: profileSelectionMenuGroup; } + } + Button { + id: saveProfileButton + visible: true + anchors.top: parent.top + x: globalProfileSelection.width + 2 + width: parent.width/100*25 + text: catalog.i18nc("@action:button", "Save"); + height: parent.height + + style: ButtonStyle { + background: Rectangle { + color: control.hovered ? UM.Theme.colors.load_save_button_hover : UM.Theme.colors.load_save_button + Behavior on color { ColorAnimation { duration: 50; } } + width: actualLabel.width + UM.Theme.sizes.default_margin.width + Label { + id: actualLabel + anchors.centerIn: parent + color: UM.Theme.colors.load_save_button_text + font: UM.Theme.fonts.default + text: control.text; + } + } + label: Item { } + } + } + } + } + Rectangle{ + width: base.width + height: UM.Theme.sizes.default_margin.width/2 + } +} \ No newline at end of file diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml index 77dcde94e7..d5c3c437ad 100644 --- a/resources/qml/Sidebar.qml +++ b/resources/qml/Sidebar.qml @@ -42,8 +42,7 @@ Rectangle } SidebarHeader { - id: header; - + id: header width: parent.width height: totalHeightHeader @@ -63,86 +62,11 @@ Rectangle onCurrentModeIndexChanged: UM.Preferences.setValue("cura/active_mode", currentModeIndex); } - Item - { - id: variantItem; - - anchors.top: header.bottom; - height: UM.Theme.sizes.setting.height; - - visible: UM.MachineManager.hasVariants; - - Row - { - spacing: UM.Theme.sizes.default_margin.width; - Label - { - anchors.verticalCenter: parent.verticalCenter; - text: catalog.i18nc("@label","Variant"); - } - - ComboBox { - anchors.verticalCenter: parent.verticalCenter; - model: UM.MachineVariantsModel { } - textRole: "name" - onActivated: UM.MachineManager.setActiveMachineVariant(model.getItem(index).name); - - currentIndex: - { - for(var i = 0; i < model.rowCount(); ++i) - { - if(model.getItem(i).name == UM.MachineManager.activeMachineVariant) - { - return i; - } - } - - return 0; - } - } - } - } - - Item - { - id: profileItem; - - anchors.top: variantItem.bottom; - height: UM.Theme.sizes.setting.height; - - Row - { - spacing: UM.Theme.sizes.default_margin.width; - Label - { - anchors.verticalCenter: parent.verticalCenter; - text: catalog.i18nc("@label","Global Profile"); - } - - ComboBox - { - anchors.verticalCenter: parent.verticalCenter; - model: UM.ProfilesModel { } - textRole: "name" - onActivated: UM.MachineManager.setActiveProfile(model.getItem(index).name) - - currentIndex: - { - for(var i = 0; i < model.rowCount(); ++i) - { - if(model.getItem(i).name == UM.MachineManager.activeProfile) - return i; - } - UM.MachineManager.setActiveProfile(model.getItem(0).name) - return 0; - } - } - - Button - { - text: catalog.i18nc("@action:button", "Save"); - } - } + ProfileSetup { + id: profileItem + anchors.top: header.bottom + width: parent.width + height: totalHeightProfileSetup } Loader diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index 3e5eb69aef..c4d37d97a4 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -155,6 +155,7 @@ "sidebar": [24.0, 10.0], "sidebar_header": [0.0, 3.2], + "sidebar_setup": [0.0, 2.8], "sidebar_subParts": [0.0, 2.4], "sidebar_specs_bar": [0.0, 2.2], "sidebar_inputFields": [0.0, 1.9],