From b816f0b03b57ddbfe02bf3edd03d836b99db565d Mon Sep 17 00:00:00 2001 From: Tamara Hogenhout Date: Fri, 11 Sep 2015 13:02:01 +0200 Subject: [PATCH] Implement simplemode -> profilesetup -> infill selection not yet fully functional. Fast implement for string freeze Contributes to: issue CURA-123 --- resources/qml/SidebarSimple.qml | 309 +++++++++--------- .../cura/icons/{medium.svg => dense.svg} | 0 .../cura/icons/{strong.svg => solid.svg} | 0 .../cura/icons/{light.svg => sparse.svg} | 0 resources/themes/cura/theme.json | 1 + 5 files changed, 162 insertions(+), 148 deletions(-) rename resources/themes/cura/icons/{medium.svg => dense.svg} (100%) rename resources/themes/cura/icons/{strong.svg => solid.svg} (100%) rename resources/themes/cura/icons/{light.svg => sparse.svg} (100%) diff --git a/resources/qml/SidebarSimple.qml b/resources/qml/SidebarSimple.qml index 76b86aee9d..4795e3801f 100644 --- a/resources/qml/SidebarSimple.qml +++ b/resources/qml/SidebarSimple.qml @@ -21,163 +21,176 @@ Item Component.onDestruction: PrintInformation.enabled = false UM.I18nCatalog { id: catalog; name:"cura"} -// Rectangle { -// anchors.top: simpleModeGrid.top -// anchors.left: simpleModeGrid.left -// width: simpleModeGrid.width -// height: simpleModeGrid.height -// color: "blue" -// } + Rectangle{ + id: infillCellLeft + anchors.top: parent.top + anchors.left: parent.left + width: base.width/100*55 - UM.Theme.sizes.default_margin.width + height: childrenRect.height < UM.Theme.sizes.simple_mode_infill_caption.height ? UM.Theme.sizes.simple_mode_infill_caption.height : childrenRect.height - Grid { - id: simpleModeGrid - anchors.fill: parent; - columns: 2 - spacing: 0 - -// Rectangle{ -// id: infillLabelCell -// width: base.width/100*45 -// height: 100 -// Column { -// spacing: 0 -// anchors{ -// top: parent.top -// topMargin: UM.Theme.sizes.default_margin.height -// right: parent.right -// rightMargin: UM.Theme.sizes.default_margin.width -// bottom: parent.bottom -// bottomMargin: UM.Theme.sizes.default_margin.height -// left: parent.left -// leftMargin: UM.Theme.sizes.default_margin.width -// } -// -// Label{ -// id: infillLabel -// //: Infill selection label -// text: catalog.i18nc("@label","Infill:"); -// font: UM.Theme.fonts.default; -// } -// Label{ -// id: infillCaption -// width: infillLabelCell.width - UM.Theme.sizes.default_margin.width -// text: "hier staat overig tekst hier staat overig tekst hier staat overig tekst" -// font: UM.Theme.fonts.caption -// wrapMode: Text.Wrap -// color: UM.Theme.colors.text -// } -// } -// } -// -// Rectangle{ -// id: infillCell -// height: 100 -// width: base.width/100*55 -// Row { -// spacing: 0 -// anchors.right: parent.right -// anchors.rightMargin: UM.Theme.sizes.default_margin.width -// Rectangle { -// id: infillWrapper -// width: infillCell.width/4; -// height: infillCell.height -// Rectangle{ -// id: infillIconLining -// anchors.top: parent.top -// anchors.topMargin: UM.Theme.sizes.default_margin.height -// anchors.horizontalCenter: parent.horizontalCenter -// z: parent.z + 1 -// width: parent.width - UM.Theme.sizes.default_margin.width/2 -// height: parent.width - UM.Theme.sizes.default_margin.width/2 -// color: "grey" -// border.color: "black" -// border.width:1 -// UM.RecolorImage { -// id: infillIcon -// z: parent.z + 1 -// anchors.verticalCenter: parent.verticalCenter -// anchors.horizontalCenter: parent.horizontalCenter -// width: UM.Theme.sizes.save_button_specs_icons.width -// height: UM.Theme.sizes.save_button_specs_icons.height -// sourceSize.width: width -// sourceSize.height: width -// color: UM.Theme.colors.text_hover -// source: UM.Theme.icons.print_time; -// } -// } -// Label{ -// //: Infill version label "light: -// text: catalog.i18nc("@label","Light"); -// anchors.top: infillIconLining.bottom -// anchors.horizontalCenter: parent.horizontalCenter -// font.bold: true -// } -// } -// Rectangle { -// color: "green"; -// width: infillCell.width/4; -// height: infillCell.height -// } -// Rectangle { -// color: "blue"; -// width: infillCell.width/4; -// height: infillCell.height -// } -// Rectangle { -// color: "yellow"; -// width: infillCell.width/4; -// height: infillCell.height -// } -// } -// } - - Rectangle { - width: parent.width/100*45 - UM.Theme.sizes.default_margin.width - height: 100 - Label{ - anchors.left: parent.left - anchors.leftMargin: UM.Theme.sizes.default_margin.width - //: Helpers selection label - text: catalog.i18nc("@label:listbox","Helpers:"); - font: UM.Theme.fonts.default; - } + Label{ + id: infillLabel + //: Infill selection label + text: catalog.i18nc("@label","Infill:"); + font: UM.Theme.fonts.default; + anchors.top: parent.top + anchors.topMargin: UM.Theme.sizes.default_margin.height + anchors.left: parent.left + anchors.leftMargin: UM.Theme.sizes.default_margin.width } - Rectangle { - width: parent.width/100*55 - UM.Theme.sizes.default_margin.width - height: 100 - Column { - spacing: 4 + Label{ + id: infillCaption + width: infillCellLeft.width - UM.Theme.sizes.default_margin.width + text: infillModel.get(infillListView.activeIndex).text + font: UM.Theme.fonts.caption + wrapMode: Text.Wrap + color: UM.Theme.colors.text + anchors.top: infillLabel.bottom + anchors.left: parent.left + anchors.leftMargin: UM.Theme.sizes.default_margin.width + } + } - CheckBox{ - Layout.preferredHeight: UM.Theme.sizes.section.height; - //: Setting enable skirt adhesion checkbox - text: catalog.i18nc("@option:check","Enable Skirt Adhesion"); - style: UM.Theme.styles.checkbox; - checked: Printer.getSettingValue("skirt_line_count") == null ? false: Printer.getSettingValue("skirt_line_count"); - onCheckedChanged: - { - if(checked != Printer.getSettingValue("skirt_line_count")) - { - Printer.setSettingValue("skirt_line_count", checked) + Rectangle{ + id: infillCellRight + height: 100 + width: base.width/100*45 + anchors.right: parent.right + anchors.rightMargin: UM.Theme.sizes.default_margin.width - (UM.Theme.sizes.default_margin.width/4) + anchors.top: parent.top + anchors.topMargin: UM.Theme.sizes.default_margin.height + Component{ + id: infillDelegate + Item{ + width: infillCellRight.width/3 + x: index * (infillCellRight.width/3) + anchors.top: parent.top + Rectangle{ + id: infillIconLining + anchors.top: parent.top + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width - (UM.Theme.sizes.default_margin.width/2) + height: parent.width - (UM.Theme.sizes.default_margin.width/2) + border.color: infillListView.activeIndex == index ? UM.Theme.colors.setting_control_text : UM.Theme.colors.setting_control_border + border.width: infillListView.activeIndex == index ? 2 : 1 + color: infillListView.activeIndex == index ? UM.Theme.colors.setting_category_active : "transparent" + UM.RecolorImage { + id: infillIcon + z: parent.z + 1 + anchors.verticalCenter: parent.verticalCenter + anchors.horizontalCenter: parent.horizontalCenter + width: parent.width - UM.Theme.sizes.default_margin.width + height: parent.width - UM.Theme.sizes.default_margin.width + sourceSize.width: width + sourceSize.height: width + color: UM.Theme.colors.setting_control_text + source: UM.Theme.icons[model.icon]; + } + MouseArea { + anchors.fill: parent + onClicked: { + infillListView.activeIndex = index } } } - CheckBox{ - Layout.preferredHeight: UM.Theme.sizes.section.height; + Label{ + id: infillLabel + anchors.top: infillIconLining.bottom + anchors.horizontalCenter: parent.horizontalCenter + color: infillListView.activeIndex == index ? UM.Theme.colors.setting_control_text : UM.Theme.colors.setting_control_border + text: name + //font.bold: infillListView.activeIndex == index ? true : false + } + } + } + ListView{ + id: infillListView + property int activeIndex: 0 + model: infillModel + delegate: infillDelegate + anchors.fill: parent + } + ListModel { + id: infillModel - //: Setting enable support checkbox - text: catalog.i18nc("@option:check","Enable Support"); + ListElement { + name: "Sparse" + percentage: 20 + text: "Sparse (20%) infill will give your model an average strength" + icon: "sparse" + } + ListElement { + name: "Dense" + percentage: 50 + text: "Dense (50%) infill will give your model an above average strength" + icon: "dense" + } + ListElement { + name: "Solid" + percentage: 100; + text: "Solid (100%) infill will make your model completely solid" + icon: "solid" + } + } + } - style: UM.Theme.styles.checkbox; + Rectangle { + id: helpersCellLeft + anchors.top: infillCellLeft.bottom + anchors.topMargin: UM.Theme.sizes.default_margin.height + anchors.left: parent.left + width: parent.width/100*45 - UM.Theme.sizes.default_margin.width + height: childrenRect.height + Label{ + anchors.left: parent.left + anchors.leftMargin: UM.Theme.sizes.default_margin.width + //: Helpers selection label + text: catalog.i18nc("@label:listbox","Helpers:"); + font: UM.Theme.fonts.default; + } + } + Rectangle { + id: helpersCellRight + anchors.top: helpersCellLeft.top + anchors.topMargin: UM.Theme.sizes.default_margin.height + anchors.left: helpersCellLeft.right + width: parent.width/100*55 - UM.Theme.sizes.default_margin.width + height: childrenRect.height - checked: Printer.getSettingValue("support_enable") == null? false: Printer.getSettingValue("support_enable"); - onCheckedChanged: - { - if(checked != Printer.getSettingValue("support_enable")) - { - Printer.setSettingValue("support_enable", checked) - } - } + CheckBox{ + id: skirtCheckBox + anchors.top: parent.top + anchors.left: parent.left + Layout.preferredHeight: UM.Theme.sizes.section.height; + //: Setting enable skirt adhesion checkbox + text: catalog.i18nc("@option:check","Enable Skirt Adhesion"); + style: UM.Theme.styles.checkbox; + checked: Printer.getSettingValue("skirt_line_count") == null ? false: Printer.getSettingValue("skirt_line_count"); + onCheckedChanged: + { + if(checked != Printer.getSettingValue("skirt_line_count")) + { + Printer.setSettingValue("skirt_line_count", checked) + } + } + } + CheckBox{ + anchors.top: skirtCheckBox.bottom + anchors.topMargin: UM.Theme.sizes.default_lining.height + anchors.left: parent.left + Layout.preferredHeight: UM.Theme.sizes.section.height; + + //: Setting enable support checkbox + text: catalog.i18nc("@option:check","Enable Support"); + + style: UM.Theme.styles.checkbox; + + checked: Printer.getSettingValue("support_enable") == null? false: Printer.getSettingValue("support_enable"); + onCheckedChanged: + { + if(checked != Printer.getSettingValue("support_enable")) + { + Printer.setSettingValue("support_enable", checked) } } } diff --git a/resources/themes/cura/icons/medium.svg b/resources/themes/cura/icons/dense.svg similarity index 100% rename from resources/themes/cura/icons/medium.svg rename to resources/themes/cura/icons/dense.svg diff --git a/resources/themes/cura/icons/strong.svg b/resources/themes/cura/icons/solid.svg similarity index 100% rename from resources/themes/cura/icons/strong.svg rename to resources/themes/cura/icons/solid.svg diff --git a/resources/themes/cura/icons/light.svg b/resources/themes/cura/icons/sparse.svg similarity index 100% rename from resources/themes/cura/icons/light.svg rename to resources/themes/cura/icons/sparse.svg diff --git a/resources/themes/cura/theme.json b/resources/themes/cura/theme.json index a85e4350fa..026dfb3b40 100644 --- a/resources/themes/cura/theme.json +++ b/resources/themes/cura/theme.json @@ -172,6 +172,7 @@ "setting_control_margin": [3.0, 3.0], "setting_unit_margin": [0.5, 0.5], "setting_text_maxwidth": [40.0, 0.0], + "simple_mode_infill_caption": [0.0, 5.0], "standard_list_lineheight": [1.5, 1.5], "standard_list_input": [20.0, 25.0],