diff --git a/resources/qml/JobSpecs.qml b/resources/qml/JobSpecs.qml
index fa0ca087b7..99bbdc73e6 100644
--- a/resources/qml/JobSpecs.qml
+++ b/resources/qml/JobSpecs.qml
@@ -1,4 +1,4 @@
-// Copyright (c) 2015 Ultimaker B.V.
+// Copyright (c) 2017 Ultimaker B.V.
// Cura is released under the terms of the AGPLv3 or higher.
import QtQuick 2.2
@@ -23,12 +23,6 @@ Item {
UM.I18nCatalog { id: catalog; name:"cura"}
- property variant printDuration: PrintInformation.currentPrintTime
- property variant printDurationPerFeature: PrintInformation.printTimesPerFeature
- property variant printMaterialLengths: PrintInformation.materialLengths
- property variant printMaterialWeights: PrintInformation.materialWeights
- property variant printMaterialCosts: PrintInformation.materialCosts
-
height: childrenRect.height
Connections
@@ -144,138 +138,4 @@ Item {
color: UM.Theme.getColor("text_subtext")
text: CuraApplication.getSceneBoundingBoxString
}
-
- Rectangle
- {
- id: specsRow
- anchors.top: boundingSpec.bottom
- anchors.right: parent.right
- height: UM.Theme.getSize("jobspecs_line").height
-
- Item
- {
- width: parent.width
- height: parent.height
-
- UM.TooltipArea
- {
- id: timeSpecPerFeatureTooltipArea
- text: {
- var order = ["inset_0", "inset_x", "skin", "infill", "support_infill", "support_interface", "support", "travel", "retract", "none"];
- var visible_names = {
- "inset_0": catalog.i18nc("@tooltip", "Outer Wall"),
- "inset_x": catalog.i18nc("@tooltip", "Inner Walls"),
- "skin": catalog.i18nc("@tooltip", "Skin"),
- "infill": catalog.i18nc("@tooltip", "Infill"),
- "support_infill": catalog.i18nc("@tooltip", "Support Infill"),
- "support_interface": catalog.i18nc("@tooltip", "Support Interface"),
- "support": catalog.i18nc("@tooltip", "Support"),
- "travel": catalog.i18nc("@tooltip", "Travel"),
- "retract": catalog.i18nc("@tooltip", "Retractions"),
- "none": catalog.i18nc("@tooltip", "Other")
- };
- var result = "";
- for(var feature in order)
- {
- feature = order[feature];
- if(base.printDurationPerFeature[feature] && base.printDurationPerFeature[feature].totalSeconds > 0)
- {
- result += "
" + visible_names[feature] + ": " + base.printDurationPerFeature[feature].getDisplayString(UM.DurationFormat.Short);
- }
- }
- result = result.replace(/^\
/, ""); // remove newline before first item
- return result;
- }
- width: childrenRect.width
- height: childrenRect.height
- anchors.right: lengthIcon.left
- anchors.rightMargin: UM.Theme.getSize("default_margin").width
- anchors.verticalCenter: parent.verticalCenter
-
- UM.RecolorImage
- {
- id: timeIcon
- anchors.left: parent.left
- anchors.top: parent.top
- anchors.verticalCenter: parent.verticalCenter
- width: UM.Theme.getSize("save_button_specs_icons").width
- height: UM.Theme.getSize("save_button_specs_icons").height
- sourceSize.width: width
- sourceSize.height: width
- color: UM.Theme.getColor("text_subtext")
- source: UM.Theme.getIcon("print_time")
- }
-
- Text
- {
- id: timeSpec
- anchors.left: timeIcon.right
- anchors.leftMargin: UM.Theme.getSize("default_margin").width / 2
- anchors.top: parent.top
- font: UM.Theme.getFont("small")
- color: UM.Theme.getColor("text_subtext")
- text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short)
- }
- }
- UM.RecolorImage
- {
- id: lengthIcon
- anchors.right: lengthSpec.left
- anchors.rightMargin: UM.Theme.getSize("default_margin").width/2
- anchors.verticalCenter: parent.verticalCenter
- width: UM.Theme.getSize("save_button_specs_icons").width
- height: UM.Theme.getSize("save_button_specs_icons").height
- sourceSize.width: width
- sourceSize.height: width
- color: UM.Theme.getColor("text_subtext")
- source: UM.Theme.getIcon("category_material")
- }
- Text
- {
- id: lengthSpec
- anchors.right: parent.right
- anchors.verticalCenter: parent.verticalCenter
- font: UM.Theme.getFont("small")
- color: UM.Theme.getColor("text_subtext")
- text:
- {
- var lengths = [];
- var weights = [];
- var costs = [];
- var someCostsKnown = false;
- if(base.printMaterialLengths) {
- for(var index = 0; index < base.printMaterialLengths.length; index++)
- {
- if(base.printMaterialLengths[index] > 0)
- {
- lengths.push(base.printMaterialLengths[index].toFixed(2));
- weights.push(String(Math.floor(base.printMaterialWeights[index])));
- var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2);
- costs.push(cost);
- if(cost > 0)
- {
- someCostsKnown = true;
- }
- }
- }
- }
- if(lengths.length == 0)
- {
- lengths = ["0.00"];
- weights = ["0"];
- costs = ["0.00"];
- }
- if(someCostsKnown)
- {
- return catalog.i18nc("@label", "%1 m / ~ %2 g / ~ %4 %3").arg(lengths.join(" + "))
- .arg(weights.join(" + ")).arg(costs.join(" + ")).arg(UM.Preferences.getValue("cura/currency"));
- }
- else
- {
- return catalog.i18nc("@label", "%1 m / ~ %2 g").arg(lengths.join(" + ")).arg(weights.join(" + "));
- }
- }
- }
- }
- }
}
diff --git a/resources/qml/MonitorButton.qml b/resources/qml/MonitorButton.qml
index 8fe6438b87..cfb09d9c9f 100644
--- a/resources/qml/MonitorButton.qml
+++ b/resources/qml/MonitorButton.qml
@@ -81,7 +81,6 @@ Item
}
property bool activity: CuraApplication.platformActivity;
- property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
property string fileBaseName
property string statusText:
{
diff --git a/resources/qml/SaveButton.qml b/resources/qml/SaveButton.qml
index 2ea7dafc91..3f25283596 100644
--- a/resources/qml/SaveButton.qml
+++ b/resources/qml/SaveButton.qml
@@ -18,7 +18,6 @@ Item {
property var backend: CuraApplication.getBackend();
property bool activity: CuraApplication.platformActivity;
- property int totalHeight: childrenRect.height + UM.Theme.getSize("default_margin").height
property string fileBaseName
property string statusText:
{
@@ -52,7 +51,7 @@ Item {
anchors.leftMargin: UM.Theme.getSize("default_margin").width
color: UM.Theme.getColor("text")
- font: UM.Theme.getFont("large")
+ font: UM.Theme.getFont("default_bold")
text: statusText;
}
diff --git a/resources/qml/Sidebar.qml b/resources/qml/Sidebar.qml
index db5f60862d..702a38a260 100755
--- a/resources/qml/Sidebar.qml
+++ b/resources/qml/Sidebar.qml
@@ -21,10 +21,16 @@ Rectangle
property bool printerConnected: Cura.MachineManager.printerOutputDevices.length != 0
property bool printerAcceptsCommands: printerConnected && Cura.MachineManager.printerOutputDevices[0].acceptsCommands
property var connectedPrinter: Cura.MachineManager.printerOutputDevices.length >= 1 ? Cura.MachineManager.printerOutputDevices[0] : null
- property int backendState: UM.Backend.state;
+ property int backendState: UM.Backend.state
property bool monitoringPrint: false
+ property variant printDuration: PrintInformation.currentPrintTime
+ property variant printDurationPerFeature: PrintInformation.printTimesPerFeature
+ property variant printMaterialLengths: PrintInformation.materialLengths
+ property variant printMaterialWeights: PrintInformation.materialWeights
+ property variant printMaterialCosts: PrintInformation.materialCosts
+
color: UM.Theme.getColor("sidebar")
UM.I18nCatalog { id: catalog; name:"cura"}
@@ -394,8 +400,119 @@ Rectangle
width: parent.width
height: UM.Theme.getSize("sidebar_lining").height
color: UM.Theme.getColor("sidebar_lining")
- anchors.bottom: saveButton.top
+ anchors.bottom: printSpecs.top
+ anchors.bottomMargin: UM.Theme.getSize("default_margin").height * 2 + UM.Theme.getSize("progressbar").height + UM.Theme.getFont("default_bold").pixelSize
+ }
+
+ Rectangle
+ {
+ id: printSpecs
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ anchors.leftMargin: UM.Theme.getSize("default_margin").width
anchors.bottomMargin: UM.Theme.getSize("default_margin").height
+ height: childrenRect.height
+
+ UM.TooltipArea
+ {
+ id: timeSpecPerFeatureTooltipArea
+ width: timeSpec.width
+ height: timeSpec.height
+ anchors.left: parent.left
+ anchors.bottom: timeSpecDescription.top
+
+ text: {
+ var order = ["inset_0", "inset_x", "skin", "infill", "support_infill", "support_interface", "support", "travel", "retract", "none"];
+ var visible_names = {
+ "inset_0": catalog.i18nc("@tooltip", "Outer Wall"),
+ "inset_x": catalog.i18nc("@tooltip", "Inner Walls"),
+ "skin": catalog.i18nc("@tooltip", "Skin"),
+ "infill": catalog.i18nc("@tooltip", "Infill"),
+ "support_infill": catalog.i18nc("@tooltip", "Support Infill"),
+ "support_interface": catalog.i18nc("@tooltip", "Support Interface"),
+ "support": catalog.i18nc("@tooltip", "Support"),
+ "travel": catalog.i18nc("@tooltip", "Travel"),
+ "retract": catalog.i18nc("@tooltip", "Retractions"),
+ "none": catalog.i18nc("@tooltip", "Other")
+ };
+ var result = "";
+ for(var feature in order)
+ {
+ feature = order[feature];
+ if(base.printDurationPerFeature[feature] && base.printDurationPerFeature[feature].totalSeconds > 0)
+ {
+ result += "
" + visible_names[feature] + ": " + base.printDurationPerFeature[feature].getDisplayString(UM.DurationFormat.Short);
+ }
+ }
+ result = result.replace(/^\
/, ""); // remove newline before first item
+ return result;
+ }
+
+ Text
+ {
+ id: timeSpec
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ font: UM.Theme.getFont("large")
+ color: UM.Theme.getColor("text_subtext")
+ text: (!base.printDuration || !base.printDuration.valid) ? catalog.i18nc("@label", "00h 00min") : base.printDuration.getDisplayString(UM.DurationFormat.Short)
+ }
+ }
+ Text
+ {
+ id: timeSpecDescription
+ anchors.left: parent.left
+ anchors.bottom: lengthSpec.top
+ font: UM.Theme.getFont("very_small")
+ color: UM.Theme.getColor("text_subtext")
+ text: catalog.i18nc("@description", "Print time")
+ }
+ Text
+ {
+ id: lengthSpec
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+ font: UM.Theme.getFont("very_small")
+ color: UM.Theme.getColor("text_subtext")
+ text:
+ {
+ var lengths = [];
+ var weights = [];
+ var costs = [];
+ var someCostsKnown = false;
+ if(base.printMaterialLengths) {
+ for(var index = 0; index < base.printMaterialLengths.length; index++)
+ {
+ if(base.printMaterialLengths[index] > 0)
+ {
+ lengths.push(base.printMaterialLengths[index].toFixed(2));
+ weights.push(String(Math.floor(base.printMaterialWeights[index])));
+ var cost = base.printMaterialCosts[index] == undefined ? 0 : base.printMaterialCosts[index].toFixed(2);
+ costs.push(cost);
+ if(cost > 0)
+ {
+ someCostsKnown = true;
+ }
+ }
+ }
+ }
+ if(lengths.length == 0)
+ {
+ lengths = ["0.00"];
+ weights = ["0"];
+ costs = ["0.00"];
+ }
+ if(someCostsKnown)
+ {
+ return catalog.i18nc("@label", "%1m / ~ %2g / ~ %4 %3").arg(lengths.join(" + "))
+ .arg(weights.join(" + ")).arg(costs.join(" + ")).arg(UM.Preferences.getValue("cura/currency"));
+ }
+ else
+ {
+ return catalog.i18nc("@label", "%1m / ~ %2g").arg(lengths.join(" + ")).arg(weights.join(" + "));
+ }
+ }
+ }
}
// SaveButton and MonitorButton are actually the bottom footer panels.
@@ -404,7 +521,8 @@ Rectangle
{
id: saveButton
implicitWidth: base.width
- implicitHeight: totalHeight
+ anchors.top: footerSeparator.bottom
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
anchors.bottom: parent.bottom
visible: !monitoringPrint
}
@@ -413,7 +531,8 @@ Rectangle
{
id: monitorButton
implicitWidth: base.width
- implicitHeight: totalHeight
+ anchors.top: footerSeparator.bottom
+ anchors.topMargin: UM.Theme.getSize("default_margin").height
anchors.bottom: parent.bottom
visible: monitoringPrint
}