This commit is contained in:
Tim Kuipers 2015-08-18 13:08:23 +02:00
commit 2c10c3a36b
7 changed files with 123 additions and 119 deletions

View File

@ -257,10 +257,12 @@ UM.MainWindow {
} }
Image { Image {
id: logo
anchors { anchors {
verticalCenter: openFileButton.verticalCenter; left: parent.left
left: openFileButton.right; leftMargin: UM.Theme.sizes.default_margin.width;
leftMargin: UM.Theme.sizes.window_margin.width; bottom: parent.bottom
bottomMargin: UM.Theme.sizes.default_margin.height;
} }
source: UM.Theme.images.logo; source: UM.Theme.images.logo;
@ -272,13 +274,12 @@ UM.MainWindow {
} }
Button { Button {
id: viewModeButton
anchors { anchors {
top: parent.top; top: parent.top;
topMargin: UM.Theme.sizes.window_margin.height;
right: sidebar.left; right: sidebar.left;
rightMargin: UM.Theme.sizes.window_margin.width; rightMargin: UM.Theme.sizes.window_margin.width;
} }
id: viewModeButton
//: View Mode toolbar button //: View Mode toolbar button
text: qsTr("View Mode"); text: qsTr("View Mode");
iconSource: UM.Theme.icons.viewmode; iconSource: UM.Theme.icons.viewmode;
@ -308,10 +309,9 @@ UM.MainWindow {
id: toolbar; id: toolbar;
anchors { anchors {
left: parent.left; horizontalCenter: parent.horizontalCenter
leftMargin: UM.Theme.sizes.window_margin.width; horizontalCenterOffset: -(UM.Theme.sizes.panel.width / 2)
bottom: parent.bottom; top: parent.top;
bottomMargin: UM.Theme.sizes.window_margin.height;
} }
} }

View File

@ -12,33 +12,14 @@ Item {
id: base; id: base;
width: buttons.width; width: buttons.width;
height: buttons.height + panel.height; height: buttons.height
Rectangle {
id: activeItemBackground;
anchors.bottom: parent.bottom;
anchors.bottomMargin: UM.Theme.sizes.default_margin.height;
width: UM.Theme.sizes.button.width;
height: UM.Theme.sizes.button.height * 2;
opacity: panelBackground.opacity;
color: UM.Theme.colors.tool_panel_background
function setActive(new_x) {
x = new_x;
}
}
RowLayout { RowLayout {
id: buttons; id: buttons;
anchors.bottom: parent.bottom; anchors.bottom: parent.bottom;
anchors.left: parent.left; anchors.left: parent.left;
spacing: 1
spacing: UM.Theme.sizes.default_margin.width * 2;
Repeater { Repeater {
id: repeat id: repeat
@ -51,7 +32,6 @@ Item {
checkable: true; checkable: true;
checked: model.active; checked: model.active;
onCheckedChanged: if (checked) activeItemBackground.setActive(x);
style: UM.Theme.styles.tool_button; style: UM.Theme.styles.tool_button;
@ -65,21 +45,28 @@ Item {
} }
} }
UM.AngledCornerRectangle { Rectangle {
width: base.width - 10
height: base.height
z: parent.z - 1
anchors.verticalCenter: parent.verticalCenter
anchors.horizontalCenter: parent.horizontalCenter
color: UM.Theme.colors.button_lining
}
Rectangle {
id: panelBackground; id: panelBackground;
anchors.left: parent.left; anchors.left: parent.left;
anchors.bottom: buttons.top; anchors.top: buttons.bottom;
anchors.bottomMargin: UM.Theme.sizes.default_margin.height;
width: panel.item ? Math.max(panel.width + 2 * UM.Theme.sizes.default_margin.width, activeItemBackground.x + activeItemBackground.width) : 0; width: panel.item ? Math.max(panel.width + 2 * UM.Theme.sizes.default_margin.width) : 0;
height: panel.item ? panel.height + 2 * UM.Theme.sizes.default_margin.height : 0; height: panel.item ? panel.height + 2 * UM.Theme.sizes.default_margin.height : 0;
opacity: panel.item ? 1 : 0 opacity: panel.item ? 1 : 0
Behavior on opacity { NumberAnimation { duration: 100 } } Behavior on opacity { NumberAnimation { duration: 100 } }
color: UM.Theme.colors.tool_panel_background; color: UM.Theme.colors.tool_panel_background;
cornerSize: width > 0 ? UM.Theme.sizes.default_margin.width : 0;
Loader { Loader {
id: panel id: panel

View File

@ -10,7 +10,8 @@ import QtQuick.Controls.Styles 1.1
import UM 1.0 as UM import UM 1.0 as UM
import ".." import ".."
ColumnLayout { ColumnLayout
{
id: wizardPage id: wizardPage
property string title property string title
property int pageWidth property int pageWidth
@ -20,33 +21,34 @@ ColumnLayout {
SystemPalette{id: palette} SystemPalette{id: palette}
signal reloadModel(var newModel) signal reloadModel(var newModel)
signal closeWizard()
width: wizardPage.pageWidth width: wizardPage.pageWidth
height: wizardPage.pageHeight height: wizardPage.pageHeight
Connections { Connections
{
target: elementRoot target: elementRoot
onFinalClicked: {//You can add functions here that get triggered when the final button is clicked in the wizard-element onNextClicked: //You can add functions here that get triggered when the final button is clicked in the wizard-element
{
saveMachine() saveMachine()
} }
onResize: {
wizardPage.width = pageWidth
wizardPage.height = pageHeight
}
} }
function lineManufacturers(manufacturer){ function lineManufacturers(manufacturer)
{
var manufacturers = [] var manufacturers = []
for (var i = 0; i < UM.Models.availableMachinesModel.rowCount(); i++) { for (var i = 0; i < UM.Models.availableMachinesModel.rowCount(); i++)
if (UM.Models.availableMachinesModel.getItem(i).manufacturer != manufacturers[manufacturers.length - 1]){ {
if (UM.Models.availableMachinesModel.getItem(i).manufacturer != manufacturers[manufacturers.length - 1])
{
manufacturers.push(UM.Models.availableMachinesModel.getItem(i).manufacturer) manufacturers.push(UM.Models.availableMachinesModel.getItem(i).manufacturer)
} }
} }
return manufacturers return manufacturers
} }
Label { Label
{
id: title id: title
anchors.left: parent.left anchors.left: parent.left
anchors.top: parent.top anchors.top: parent.top
@ -54,7 +56,8 @@ ColumnLayout {
font.pointSize: 18; font.pointSize: 18;
} }
Label { Label
{
id: subTitle id: subTitle
anchors.left: parent.left anchors.left: parent.left
anchors.top: title.bottom anchors.top: title.bottom
@ -62,21 +65,25 @@ ColumnLayout {
text: qsTr("Please select the type of printer:"); text: qsTr("Please select the type of printer:");
} }
ScrollView { ScrollView
{
id: machinesHolder id: machinesHolder
anchors.left: parent.left anchors.left: parent.left
anchors.top: subTitle.bottom anchors.top: subTitle.bottom
implicitWidth: wizardPage.width- UM.Theme.sizes.default_margin.width implicitWidth: wizardPage.width- UM.Theme.sizes.default_margin.width
implicitHeight: wizardPage.height - subTitle.height - title.height - (machineNameHolder.height * 2) implicitHeight: wizardPage.height - subTitle.height - title.height - (machineNameHolder.height * 2)
Component { Component
{
id: machineDelegate id: machineDelegate
ColumnLayout { ColumnLayout
{
id: machineLayout id: machineLayout
spacing: 0 spacing: 0
anchors.left: parent.left anchors.left: parent.left
anchors.leftMargin: UM.Theme.sizes.standard_list_lineheight.width anchors.leftMargin: UM.Theme.sizes.standard_list_lineheight.width
function showManufacturer(){ function showManufacturer()
{
if (model.manufacturer == UM.Models.availableMachinesModel.getItem(index - 1).manufacturer){ if (model.manufacturer == UM.Models.availableMachinesModel.getItem(index - 1).manufacturer){
return false return false
} }
@ -84,7 +91,8 @@ ColumnLayout {
return true return true
} }
} }
height: { height:
{
if (machineLayout.showManufacturer() & wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer) if (machineLayout.showManufacturer() & wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer)
return UM.Theme.sizes.standard_list_lineheight.height * 2 return UM.Theme.sizes.standard_list_lineheight.height * 2
if (wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer | machineLayout.showManufacturer()) if (wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer | machineLayout.showManufacturer())
@ -92,31 +100,37 @@ ColumnLayout {
else else
return 0 return 0
} }
Behavior on height{ Behavior on height
{
NumberAnimation { target: machineLayout; property: "height"; duration: 200} NumberAnimation { target: machineLayout; property: "height"; duration: 200}
} }
Button { Button
{
id: manufacturer id: manufacturer
property color backgroundColor: "transparent" property color backgroundColor: "transparent"
height: UM.Theme.sizes.standard_list_lineheight.height height: UM.Theme.sizes.standard_list_lineheight.height
visible: machineLayout.showManufacturer() visible: machineLayout.showManufacturer()
anchors.top: machineLayout.top anchors.top: machineLayout.top
anchors.topMargin: 0 anchors.topMargin: 0
text: { text:
{
if (wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer) if (wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer)
return model.manufacturer + " ▼" return model.manufacturer + " ▼"
else else
return model.manufacturer + " ►" return model.manufacturer + " ►"
} }
style: ButtonStyle { style: ButtonStyle
background: Rectangle { {
background: Rectangle
{
id: manufacturerBackground id: manufacturerBackground
opacity: 0.3 opacity: 0.3
border.width: 0 border.width: 0
color: manufacturer.backgroundColor color: manufacturer.backgroundColor
height: UM.Theme.sizes.standard_list_lineheight.height height: UM.Theme.sizes.standard_list_lineheight.height
} }
label: Text { label: Text
{
renderType: Text.NativeRendering renderType: Text.NativeRendering
horizontalAlignment: Text.AlignLeft horizontalAlignment: Text.AlignLeft
text: control.text text: control.text
@ -124,20 +138,23 @@ ColumnLayout {
font.bold: true font.bold: true
} }
} }
MouseArea { MouseArea
{
id: mousearea id: mousearea
hoverEnabled: true hoverEnabled: true
anchors.fill: parent anchors.fill: parent
onEntered: manufacturer.backgroundColor = palette.light onEntered: manufacturer.backgroundColor = palette.light
onExited: manufacturer.backgroundColor = "transparent" onExited: manufacturer.backgroundColor = "transparent"
onClicked: { onClicked:
{
wizardPage.manufacturerIndex = wizardPage.manufacturers.indexOf(model.manufacturer) wizardPage.manufacturerIndex = wizardPage.manufacturers.indexOf(model.manufacturer)
machineList.currentIndex = index machineList.currentIndex = index
} }
} }
} }
RadioButton { RadioButton
{
id: machineButton id: machineButton
opacity: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? 1 : 0 opacity: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? 1 : 0
height: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? UM.Theme.sizes.standard_list_lineheight.height : 0 height: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? UM.Theme.sizes.standard_list_lineheight.height : 0
@ -149,13 +166,15 @@ ColumnLayout {
exclusiveGroup: printerGroup; exclusiveGroup: printerGroup;
text: model.name text: model.name
onClicked: machineList.currentIndex = index; onClicked: machineList.currentIndex = index;
function getAnimationTime(time){ function getAnimationTime(time)
{
if (machineButton.opacity == 0) if (machineButton.opacity == 0)
return time return time
else else
return 0 return 0
} }
Label { Label
{
id: author id: author
visible: model.author != "Ultimaker" ? true : false visible: model.author != "Ultimaker" ? true : false
height: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? UM.Theme.sizes.standard_list_lineheight.height : 0 height: wizardPage.manufacturers[wizardPage.manufacturerIndex] == model.manufacturer ? UM.Theme.sizes.standard_list_lineheight.height : 0
@ -169,8 +188,10 @@ ColumnLayout {
font: UM.Theme.fonts.caption; font: UM.Theme.fonts.caption;
color: palette.mid color: palette.mid
} }
Behavior on opacity { Behavior on opacity
SequentialAnimation { {
SequentialAnimation
{
PauseAnimation { duration: machineButton.getAnimationTime(100) } PauseAnimation { duration: machineButton.getAnimationTime(100) }
NumberAnimation { properties:"opacity"; duration: machineButton.getAnimationTime(200) } NumberAnimation { properties:"opacity"; duration: machineButton.getAnimationTime(200) }
} }
@ -180,12 +201,16 @@ ColumnLayout {
} }
} }
ListView { ListView
{
id: machineList id: machineList
property int currentIndex: 0 property int currentIndex: 0
property int otherMachinesIndex: { property int otherMachinesIndex:
for (var i = 0; i < UM.Models.availableMachinesModel.rowCount(); i++) { {
if (UM.Models.availableMachinesModel.getItem(i).manufacturer != "Ultimaker"){ for (var i = 0; i < UM.Models.availableMachinesModel.rowCount(); i++)
{
if (UM.Models.availableMachinesModel.getItem(i).manufacturer != "Ultimaker")
{
return i return i
} }
} }
@ -197,16 +222,19 @@ ColumnLayout {
} }
} }
Item{ Item
{
id: machineNameHolder id: machineNameHolder
height: childrenRect.height height: childrenRect.height
anchors.top: machinesHolder.bottom anchors.top: machinesHolder.bottom
Label { Label
{
id: insertNameLabel id: insertNameLabel
//: Add Printer wizard field label //: Add Printer wizard field label
text: qsTr("Printer Name:"); text: qsTr("Printer Name:");
} }
TextField { TextField
{
id: machineName; id: machineName;
anchors.top: insertNameLabel.bottom anchors.top: insertNameLabel.bottom
text: machineList.model.getItem(machineList.currentIndex).name text: machineList.model.getItem(machineList.currentIndex).name
@ -217,38 +245,30 @@ ColumnLayout {
ExclusiveGroup { id: printerGroup; } ExclusiveGroup { id: printerGroup; }
function saveMachine(){ function saveMachine()
if(machineList.currentIndex != -1) { {
if(machineList.currentIndex != -1)
{
UM.Models.availableMachinesModel.createMachine(machineList.currentIndex, machineName.text) UM.Models.availableMachinesModel.createMachine(machineList.currentIndex, machineName.text)
var pages = UM.Models.availableMachinesModel.getItem(machineList.currentIndex).pages
var chosenMachine = UM.Models.availableMachinesModel.getItem(machineList.currentIndex).name var old_page_count = elementRoot.getPageCount()
var originalString = "Ultimaker Original" // Delete old pages (if any)
var originalPlusString = "Ultimaker Original+" for (var i = old_page_count - 1; i > 0; i--)
{
if (chosenMachine == originalString | chosenMachine == originalPlusString ){ elementRoot.removePage(i)
wizardPage.reloadModel([ elementRoot.currentPage = 0
{
title: "Select Upgraded Parts",
page: "SelectUpgradedParts.qml"
},
{
title: "Upgrade Ultimaker Firmware",
page: "UpgradeFirmware.qml"
},
{
title: "Ultimaker Checkup",
page: "UltimakerCheckup.qml"
},
{
title: "Bedleveling Wizard",
page: "Bedleveling.qml"
}
]
)
} }
else { // Insert new pages (if any)
wizardPage.closeWizard() for(var i = 0; i < pages.count; i++)
{
elementRoot.insertPage(pages.getItem(i).page + ".qml",pages.getItem(i).title,i + 1)
}
// Hack to ensure the current page is set correctly
if(old_page_count == 1)
{
elementRoot.currentPage += 1
} }
} }
} }

View File

@ -55,7 +55,6 @@ Column
TextField TextField
{ {
id: machineName; Layout.fillWidth: true; text: machineList.model.getItem(machineList.currentIndex).name id: machineName; Layout.fillWidth: true; text: machineList.model.getItem(machineList.currentIndex).name
} }
Item Item

View File

@ -4,7 +4,7 @@
"author": "other", "author": "other",
"manufacturer": "other", "manufacturer": "other",
"add_pages": [{"page": "AddMachine", "title": "Add new printer"}], "add_pages": [],
"machine_settings": { "machine_settings": {
"machine_start_gcode": { "machine_start_gcode": {

View File

@ -90,34 +90,32 @@ QtObject {
property Component tool_button: Component { property Component tool_button: Component {
ButtonStyle { ButtonStyle {
background: Item { background: Item {
///////////TODO CHANGE SIZES!!
implicitWidth: UM.Theme.sizes.button.width; implicitWidth: UM.Theme.sizes.button.width;
implicitHeight: UM.Theme.sizes.button.height; implicitHeight: UM.Theme.sizes.button.height;
Rectangle { Rectangle {
anchors.bottom: parent.verticalCenter; id: tool_button_background
anchors.top: parent.verticalCenter;
width: parent.width; width: parent.width;
///////////TODO CHANGE LABELHEIGHT!!
height: control.hovered ? parent.height / 2 + label.height : 0; height: control.hovered ? parent.height / 2 + label.height : 0;
Behavior on height { NumberAnimation { duration: 100; } } Behavior on height { NumberAnimation { duration: 100; } }
opacity: control.hovered ? 1.0 : 0.0; opacity: control.hovered ? 1.0 : 0.0;
Behavior on opacity { NumberAnimation { duration: 100; } } Behavior on opacity { NumberAnimation { duration: 100; } }
Rectangle { Label {
anchors.horizontalCenter: parent.horizontalCenter; id: label
width: childrenRect.width; anchors.bottom: parent.bottom
height: childrenRect.height; text: control.text.replace("&", "");
font: UM.Theme.fonts.button_tooltip;
Label { color: UM.Theme.colors.button_tooltip_text;
id: label
text: control.text.replace("&", "");
font: UM.Theme.fonts.button_tooltip;
color: UM.Theme.colors.button_tooltip_text;
}
} }
} }
UM.AngledCornerRectangle { Rectangle {
id: buttonFace; id: buttonFace;
anchors.fill: parent; anchors.fill: parent;
@ -138,7 +136,6 @@ QtObject {
} }
} }
Behavior on color { ColorAnimation { duration: 50; } } Behavior on color { ColorAnimation { duration: 50; } }
cornerSize: UM.Theme.sizes.default_margin.width;
Label { Label {
anchors.right: parent.right; anchors.right: parent.right;

View File

@ -70,6 +70,7 @@
"button_hover": [140, 144, 154, 255], "button_hover": [140, 144, 154, 255],
"button_active": [12, 169, 227, 255], "button_active": [12, 169, 227, 255],
"button_active_hover": [34, 150, 199, 255], "button_active_hover": [34, 150, 199, 255],
"button_lining": [140, 144, 154, 255],
"button_text": [255, 255, 255, 255], "button_text": [255, 255, 255, 255],
"button_disabled": [245, 245, 245, 255], "button_disabled": [245, 245, 245, 255],
"button_tooltip_text": [35, 35, 35, 255], "button_tooltip_text": [35, 35, 35, 255],