diff --git a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml index aa6c9a72df..4e79d1ce4e 100644 --- a/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml +++ b/plugins/UM3NetworkPrinting/resources/qml/PrintJobInfoBlock.qml @@ -5,659 +5,657 @@ import QtQuick.Controls.Styles 1.4 import QtGraphicalEffects 1.0 import QtQuick.Layouts 1.1 import QtQuick.Dialogs 1.1 - import UM 1.3 as UM - -Item -{ - id: base - - function haveAlert() { - return printJob.configurationChanges.length !== 0; - } - - function alertHeight() { - return haveAlert() ? 230 : 0; - } - - function alertText() { - if (printJob.configurationChanges.length === 0) { - return ""; - } - - var topLine; - if (materialsAreKnown(printJob)) { - topLine = catalog.i18nc("@label", "The assigned printer, %1, requires the following configuration change(s):").arg(printJob.assignedPrinter.name); - } else { - topLine = catalog.i18nc("@label", "The printer %1 is assigned, but the job contains an unknown material configuration.").arg(printJob.assignedPrinter.name); - } - var result = "

" + topLine +"

"; - - for (var i=0; i

"; - } - return result; - } - - function materialsAreKnown(printJob) { - var conf0 = printJob.configuration[0]; - if (conf0 && !conf0.material.material) { - return false; - } - - var conf1 = printJob.configuration[1]; - if (conf1 && !conf1.material.material) { - return false; - } - - return true; - } - - function formatBuildPlateType(buildPlateType) { - var translationText = ""; - - switch (buildPlateType) { - case 'glass': - translationText = catalog.i18nc("@label", "Glass"); - break; - case 'aluminum': - translationText = catalog.i18nc("@label", "Aluminum"); - break; - default: - translationText = null; - } - return translationText; - } - - function formatPrintJobName(name) { - var extensionsToRemove = [ - '.gz', - '.gcode', - '.ufp' - ]; - - for (var i = 0; i < extensionsToRemove.length; i++) { - var extension = extensionsToRemove[i]; - - if (name.slice(-extension.length) === extension) { - name = name.substring(0, name.length - extension.length); - } - } - - return name; - } - - function isPrintJobForcable(printJob) { - var forcable = true; - - for (var i = 0; i < printJob.configurationChanges.length; i++) { - var typeOfChange = printJob.configurationChanges[i].typeOfChange; - if (typeOfChange === 'material_insert' || typeOfChange === 'buildplate_change') { - forcable = false; - } - } - - return forcable; - } - - property var cardHeight: 175 - - height: (cardHeight + alertHeight()) * screenScaleFactor - property var printJob: null - property var shadowRadius: 5 * screenScaleFactor - function getPrettyTime(time) - { - return OutputDevice.formatDuration(time) - } - - width: parent.width - - UM.I18nCatalog - { - id: catalog - name: "cura" - } - - Rectangle - { - id: background - - height: (cardHeight + alertHeight()) * screenScaleFactor - - anchors - { - top: parent.top - topMargin: 3 * screenScaleFactor - left: parent.left - leftMargin: base.shadowRadius - rightMargin: base.shadowRadius - right: parent.right - //bottom: parent.bottom - alertHeight() * screenScaleFactor - bottomMargin: base.shadowRadius - } - - layer.enabled: true - layer.effect: DropShadow - { - radius: base.shadowRadius - verticalOffset: 2 * screenScaleFactor - color: "#3F000000" // 25% shadow - } - - Rectangle - { - height: cardHeight * screenScaleFactor - - anchors - { - top: parent.top - left: parent.left - right: parent.right - // bottom: parent.bottom - } - - Item - { - // Content on the left of the infobox - anchors - { - top: parent.top - bottom: parent.bottom - left: parent.left - right: parent.horizontalCenter - margins: UM.Theme.getSize("wide_margin").width - rightMargin: UM.Theme.getSize("default_margin").width - } - - Label - { - id: printJobName - text: printJob.name - font: UM.Theme.getFont("default_bold") - width: parent.width - elide: Text.ElideRight - } - - Label - { - id: ownerName - anchors.top: printJobName.bottom - text: printJob.owner - font: UM.Theme.getFont("default") - opacity: 0.6 - width: parent.width - elide: Text.ElideRight - } - - Image - { - id: printJobPreview - source: printJob.previewImageUrl - anchors.top: ownerName.bottom - anchors.horizontalCenter: parent.horizontalCenter - anchors.bottom: totalTimeLabel.bottom - width: height - opacity: printJob.state == "error" ? 0.5 : 1.0 - } - - UM.RecolorImage - { - id: statusImage - anchors.centerIn: printJobPreview - source: printJob.state == "error" ? "../svg/aborted-icon.svg" : "" - visible: source != "" - width: 0.5 * printJobPreview.width - height: 0.5 * printJobPreview.height - sourceSize.width: width - sourceSize.height: height - color: "black" - } - - Label - { - id: totalTimeLabel - anchors.bottom: parent.bottom - anchors.right: parent.right - font: UM.Theme.getFont("default") - text: printJob != null ? getPrettyTime(printJob.timeTotal) : "" - elide: Text.ElideRight - } - } - - Item - { - // Content on the right side of the infobox. - anchors - { - top: parent.top - bottom: parent.bottom - left: parent.horizontalCenter - right: parent.right - margins: 2 * UM.Theme.getSize("default_margin").width - leftMargin: UM.Theme.getSize("default_margin").width - rightMargin: UM.Theme.getSize("default_margin").width / 2 - } - - Label - { - id: targetPrinterLabel - elide: Text.ElideRight - font: UM.Theme.getFont("default_bold") - text: - { - if(printJob.assignedPrinter == null) - { - if(printJob.state == "error") - { - return catalog.i18nc("@label", "Waiting for: Unavailable printer") - } - return catalog.i18nc("@label", "Waiting for: First available") - } - else - { - return catalog.i18nc("@label", "Waiting for: ") + printJob.assignedPrinter.name - } - - } - - anchors - { - left: parent.left - right: contextButton.left - rightMargin: UM.Theme.getSize("default_margin").width - } - } - - - function switchPopupState() - { - popup.visible ? popup.close() : popup.open() - } - - Button - { - id: contextButton - text: "\u22EE" //Unicode; Three stacked points. - width: 35 - height: width - anchors - { - right: parent.right - top: parent.top - } - hoverEnabled: true - - background: Rectangle - { - opacity: contextButton.down || contextButton.hovered ? 1 : 0 - width: contextButton.width - height: contextButton.height - radius: 0.5 * width - color: UM.Theme.getColor("viewport_background") - } - contentItem: Label - { - text: contextButton.text - color: UM.Theme.getColor("monitor_text_inactive") - font.pixelSize: 25 - verticalAlignment: Text.AlignVCenter - horizontalAlignment: Text.AlignHCenter - } - - onClicked: parent.switchPopupState() - } - - Popup - { - // TODO Change once updating to Qt5.10 - The 'opened' property is in 5.10 but the behavior is now implemented with the visible property - id: popup - clip: true - closePolicy: Popup.CloseOnPressOutside - x: (parent.width - width) + 26 * screenScaleFactor - y: contextButton.height - 5 * screenScaleFactor // Because shadow - width: 182 * screenScaleFactor - height: contentItem.height + 2 * padding - visible: false - padding: 5 * screenScaleFactor // Because shadow - - transformOrigin: Popup.Top - contentItem: Item - { - width: popup.width - height: childrenRect.height + 36 * screenScaleFactor - anchors.topMargin: 10 * screenScaleFactor - anchors.bottomMargin: 10 * screenScaleFactor - Button - { - id: sendToTopButton - text: catalog.i18nc("@label", "Move to top") - onClicked: - { - sendToTopConfirmationDialog.visible = true; - popup.close(); - } - width: parent.width - enabled: OutputDevice.queuedPrintJobs[0].key != printJob.key - visible: enabled - anchors.top: parent.top - anchors.topMargin: 18 * screenScaleFactor - height: visible ? 39 * screenScaleFactor : 0 * screenScaleFactor - hoverEnabled: true - background: Rectangle - { - opacity: sendToTopButton.down || sendToTopButton.hovered ? 1 : 0 - color: UM.Theme.getColor("viewport_background") - } - contentItem: Label - { - text: sendToTopButton.text - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - } - } - - MessageDialog - { - id: sendToTopConfirmationDialog - title: catalog.i18nc("@window:title", "Move print job to top") - icon: StandardIcon.Warning - text: catalog.i18nc("@label %1 is the name of a print job.", "Are you sure you want to move %1 to the top of the queue?").arg(printJob.name) - standardButtons: StandardButton.Yes | StandardButton.No - Component.onCompleted: visible = false - onYes: OutputDevice.sendJobToTop(printJob.key) - } - - Button - { - id: deleteButton - text: catalog.i18nc("@label", "Delete") - onClicked: - { - deleteConfirmationDialog.visible = true; - popup.close(); - } - width: parent.width - height: 39 * screenScaleFactor - anchors.top: sendToTopButton.bottom - hoverEnabled: true - background: Rectangle - { - opacity: deleteButton.down || deleteButton.hovered ? 1 : 0 - color: UM.Theme.getColor("viewport_background") - } - contentItem: Label - { - text: deleteButton.text - horizontalAlignment: Text.AlignLeft - verticalAlignment: Text.AlignVCenter - } - } - - MessageDialog - { - id: deleteConfirmationDialog - title: catalog.i18nc("@window:title", "Delete print job") - icon: StandardIcon.Warning - text: catalog.i18nc("@label %1 is the name of a print job.", "Are you sure you want to delete %1?").arg(printJob.name) - standardButtons: StandardButton.Yes | StandardButton.No - Component.onCompleted: visible = false - onYes: OutputDevice.deleteJobFromQueue(printJob.key) - } - } - - background: Item - { - width: popup.width - height: popup.height - - DropShadow - { - anchors.fill: pointedRectangle - radius: 5 - color: "#3F000000" // 25% shadow - source: pointedRectangle - transparentBorder: true - verticalOffset: 2 - } - - Item - { - id: pointedRectangle - width: parent.width - 10 * screenScaleFactor // Because of the shadow - height: parent.height - 10 * screenScaleFactor // Because of the shadow - anchors.horizontalCenter: parent.horizontalCenter - anchors.verticalCenter: parent.verticalCenter - - Rectangle - { - id: point - height: 14 * screenScaleFactor - width: 14 * screenScaleFactor - color: UM.Theme.getColor("setting_control") - transform: Rotation { angle: 45} - anchors.right: bloop.right - anchors.rightMargin: 24 - y: 1 - } - - Rectangle - { - id: bloop - color: UM.Theme.getColor("setting_control") - width: parent.width - anchors.top: parent.top - anchors.topMargin: 8 * screenScaleFactor // Because of the shadow + point - anchors.bottom: parent.bottom - anchors.bottomMargin: 8 * screenScaleFactor // Because of the shadow - } - } - } - - exit: Transition - { - // This applies a default NumberAnimation to any changes a state change makes to x or y properties - NumberAnimation { property: "visible"; duration: 75; } - } - enter: Transition - { - // This applies a default NumberAnimation to any changes a state change makes to x or y properties - NumberAnimation { property: "visible"; duration: 75; } - } - - onClosed: visible = false - onOpened: visible = true - } - - Row - { - id: printerFamilyPills - spacing: 0.5 * UM.Theme.getSize("default_margin").width - anchors - { - left: parent.left - right: parent.right - bottom: extrudersInfo.top - bottomMargin: UM.Theme.getSize("default_margin").height - } - height: childrenRect.height - Repeater - { - model: printJob.compatibleMachineFamilies - - delegate: PrinterFamilyPill - { - text: modelData - color: UM.Theme.getColor("viewport_background") - padding: 3 * screenScaleFactor - } - } - } - // PrintCore && Material config - Row - { - id: extrudersInfo - anchors.bottom: parent.bottom - - anchors - { - left: parent.left - right: parent.right - } - height: childrenRect.height - - spacing: UM.Theme.getSize("default_margin").width - - PrintCoreConfiguration - { - id: leftExtruderInfo - width: Math.round(parent.width / 2) * screenScaleFactor - printCoreConfiguration: printJob.configuration.extruderConfigurations[0] - } - - PrintCoreConfiguration - { - id: rightExtruderInfo - width: Math.round(parent.width / 2) * screenScaleFactor - printCoreConfiguration: printJob.configuration.extruderConfigurations[1] - } - } - - } - } - Rectangle - { - height: cardHeight * screenScaleFactor - color: UM.Theme.getColor("viewport_background") - width: 2 * screenScaleFactor - anchors.top: parent.top - anchors.margins: UM.Theme.getSize("default_margin").height - anchors.horizontalCenter: parent.horizontalCenter - } - - // Alert / Configuration change box - Rectangle - { - height: alertHeight() * screenScaleFactor - - anchors.left: parent.left - anchors.right: parent.right - anchors.bottom: parent.bottom - -color: "#ff00ff" - ColumnLayout - { - anchors.fill: parent - RowLayout - { - Item - { - Layout.fillWidth: true - } - - Label - { - font: UM.Theme.getFont("default_bold") - text: "Configuration change" - } - - UM.RecolorImage - { - id: collapseIcon - width: 15 - height: 15 - sourceSize.width: width - sourceSize.height: height - - // FIXME - source: base.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") - color: "black" - } - - Item - { - Layout.fillWidth: true - } - - } - - Rectangle - { - Layout.fillHeight: true - Layout.fillWidth: true -color: "red" - - Rectangle - { -color: "green" - width: childrenRect.width - - anchors.horizontalCenter: parent.horizontalCenter - anchors.top: parent.top - anchors.bottom: parent.bottom - - ColumnLayout - { - width: childrenRect.width - - anchors.top: parent.top - anchors.bottom: parent.bottom - - Text - { - Layout.alignment: Qt.AlignTop - - textFormat: Text.StyledText - font: UM.Theme.getFont("default_bold") - text: alertText() - } - - Button - { - visible: isPrintJobForcable(printJob) - text: catalog.i18nc("@label", "Override") - onClicked: { - overrideConfirmationDialog.visible = true; - } - } - - // Spacer - Item - { - Layout.fillHeight: true - } - } - } - } - } - } - - MessageDialog - { - id: overrideConfirmationDialog - title: catalog.i18nc("@window:title", "Override configuration configuration and start print") - icon: StandardIcon.Warning - text: { - var printJobName = formatPrintJobName(printJob.name); - var confirmText = catalog.i18nc("@label", "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?").arg(printJobName); - return confirmText; - } - - standardButtons: StandardButton.Yes | StandardButton.No - Component.onCompleted: visible = false - onYes: OutputDevice.forceSendJob(printJob.key) - } - } -} \ No newline at end of file +// Item +// { +// id: base + +// function haveAlert() { +// return printJob.configurationChanges.length !== 0; +// } + +// function alertHeight() { +// return haveAlert() ? 230 : 0; +// } + +// function alertText() { +// if (printJob.configurationChanges.length === 0) { +// return ""; +// } + +// var topLine; +// if (materialsAreKnown(printJob)) { +// topLine = catalog.i18nc("@label", "The assigned printer, %1, requires the following configuration change(s):").arg(printJob.assignedPrinter.name); +// } else { +// topLine = catalog.i18nc("@label", "The printer %1 is assigned, but the job contains an unknown material configuration.").arg(printJob.assignedPrinter.name); +// } +// var result = "

" + topLine +"

"; + +// for (var i=0; i

"; +// } +// return result; +// } + +// function materialsAreKnown(printJob) { +// var conf0 = printJob.configuration[0]; +// if (conf0 && !conf0.material.material) { +// return false; +// } + +// var conf1 = printJob.configuration[1]; +// if (conf1 && !conf1.material.material) { +// return false; +// } + +// return true; +// } + +// function formatBuildPlateType(buildPlateType) { +// var translationText = ""; + +// switch (buildPlateType) { +// case 'glass': +// translationText = catalog.i18nc("@label", "Glass"); +// break; +// case 'aluminum': +// translationText = catalog.i18nc("@label", "Aluminum"); +// break; +// default: +// translationText = null; +// } +// return translationText; +// } + +// function formatPrintJobName(name) { +// var extensionsToRemove = [ +// '.gz', +// '.gcode', +// '.ufp' +// ]; + +// for (var i = 0; i < extensionsToRemove.length; i++) { +// var extension = extensionsToRemove[i]; + +// if (name.slice(-extension.length) === extension) { +// name = name.substring(0, name.length - extension.length); +// } +// } + +// return name; +// } + +// function isPrintJobForcable(printJob) { +// var forcable = true; + +// for (var i = 0; i < printJob.configurationChanges.length; i++) { +// var typeOfChange = printJob.configurationChanges[i].typeOfChange; +// if (typeOfChange === 'material_insert' || typeOfChange === 'buildplate_change') { +// forcable = false; +// } +// } + +// return forcable; +// } + +// property var cardHeight: 175 + +// height: (cardHeight + alertHeight()) * screenScaleFactor +// property var printJob: null +// property var shadowRadius: 5 * screenScaleFactor +// function getPrettyTime(time) +// { +// return OutputDevice.formatDuration(time) +// } + +// width: parent.width + +// UM.I18nCatalog +// { +// id: catalog +// name: "cura" +// } + +// Rectangle +// { +// id: background + +// height: (cardHeight + alertHeight()) * screenScaleFactor + +// anchors +// { +// top: parent.top +// topMargin: 3 * screenScaleFactor +// left: parent.left +// leftMargin: base.shadowRadius +// rightMargin: base.shadowRadius +// right: parent.right +// //bottom: parent.bottom - alertHeight() * screenScaleFactor +// bottomMargin: base.shadowRadius +// } + +// layer.enabled: true +// layer.effect: DropShadow +// { +// radius: base.shadowRadius +// verticalOffset: 2 * screenScaleFactor +// color: "#3F000000" // 25% shadow +// } + +// Rectangle +// { +// height: cardHeight * screenScaleFactor + +// anchors +// { +// top: parent.top +// left: parent.left +// right: parent.right +// // bottom: parent.bottom +// } + +// Item +// { +// // Content on the left of the infobox +// anchors +// { +// top: parent.top +// bottom: parent.bottom +// left: parent.left +// right: parent.horizontalCenter +// margins: UM.Theme.getSize("wide_margin").width +// rightMargin: UM.Theme.getSize("default_margin").width +// } + +// Label +// { +// id: printJobName +// text: printJob.name +// font: UM.Theme.getFont("default_bold") +// width: parent.width +// elide: Text.ElideRight +// } + +// Label +// { +// id: ownerName +// anchors.top: printJobName.bottom +// text: printJob.owner +// font: UM.Theme.getFont("default") +// opacity: 0.6 +// width: parent.width +// elide: Text.ElideRight +// } + +// Image +// { +// id: printJobPreview +// source: printJob.previewImageUrl +// anchors.top: ownerName.bottom +// anchors.horizontalCenter: parent.horizontalCenter +// anchors.bottom: totalTimeLabel.bottom +// width: height +// opacity: printJob.state == "error" ? 0.5 : 1.0 +// } + +// UM.RecolorImage +// { +// id: statusImage +// anchors.centerIn: printJobPreview +// source: printJob.state == "error" ? "../svg/aborted-icon.svg" : "" +// visible: source != "" +// width: 0.5 * printJobPreview.width +// height: 0.5 * printJobPreview.height +// sourceSize.width: width +// sourceSize.height: height +// color: "black" +// } + +// Label +// { +// id: totalTimeLabel +// anchors.bottom: parent.bottom +// anchors.right: parent.right +// font: UM.Theme.getFont("default") +// text: printJob != null ? getPrettyTime(printJob.timeTotal) : "" +// elide: Text.ElideRight +// } +// } + +// Item +// { +// // Content on the right side of the infobox. +// anchors +// { +// top: parent.top +// bottom: parent.bottom +// left: parent.horizontalCenter +// right: parent.right +// margins: 2 * UM.Theme.getSize("default_margin").width +// leftMargin: UM.Theme.getSize("default_margin").width +// rightMargin: UM.Theme.getSize("default_margin").width / 2 +// } + +// Label +// { +// id: targetPrinterLabel +// elide: Text.ElideRight +// font: UM.Theme.getFont("default_bold") +// text: +// { +// if(printJob.assignedPrinter == null) +// { +// if(printJob.state == "error") +// { +// return catalog.i18nc("@label", "Waiting for: Unavailable printer") +// } +// return catalog.i18nc("@label", "Waiting for: First available") +// } +// else +// { +// return catalog.i18nc("@label", "Waiting for: ") + printJob.assignedPrinter.name +// } + +// } + +// anchors +// { +// left: parent.left +// right: contextButton.left +// rightMargin: UM.Theme.getSize("default_margin").width +// } +// } + + +// function switchPopupState() +// { +// popup.visible ? popup.close() : popup.open() +// } + +// Button +// { +// id: contextButton +// text: "\u22EE" //Unicode; Three stacked points. +// width: 35 +// height: width +// anchors +// { +// right: parent.right +// top: parent.top +// } +// hoverEnabled: true + +// background: Rectangle +// { +// opacity: contextButton.down || contextButton.hovered ? 1 : 0 +// width: contextButton.width +// height: contextButton.height +// radius: 0.5 * width +// color: UM.Theme.getColor("viewport_background") +// } +// contentItem: Label +// { +// text: contextButton.text +// color: UM.Theme.getColor("monitor_text_inactive") +// font.pixelSize: 25 +// verticalAlignment: Text.AlignVCenter +// horizontalAlignment: Text.AlignHCenter +// } + +// onClicked: parent.switchPopupState() +// } + +// Popup +// { +// // TODO Change once updating to Qt5.10 - The 'opened' property is in 5.10 but the behavior is now implemented with the visible property +// id: popup +// clip: true +// closePolicy: Popup.CloseOnPressOutside +// x: (parent.width - width) + 26 * screenScaleFactor +// y: contextButton.height - 5 * screenScaleFactor // Because shadow +// width: 182 * screenScaleFactor +// height: contentItem.height + 2 * padding +// visible: false +// padding: 5 * screenScaleFactor // Because shadow + +// transformOrigin: Popup.Top +// contentItem: Item +// { +// width: popup.width +// height: childrenRect.height + 36 * screenScaleFactor +// anchors.topMargin: 10 * screenScaleFactor +// anchors.bottomMargin: 10 * screenScaleFactor +// Button +// { +// id: sendToTopButton +// text: catalog.i18nc("@label", "Move to top") +// onClicked: +// { +// sendToTopConfirmationDialog.visible = true; +// popup.close(); +// } +// width: parent.width +// enabled: OutputDevice.queuedPrintJobs[0].key != printJob.key +// visible: enabled +// anchors.top: parent.top +// anchors.topMargin: 18 * screenScaleFactor +// height: visible ? 39 * screenScaleFactor : 0 * screenScaleFactor +// hoverEnabled: true +// background: Rectangle +// { +// opacity: sendToTopButton.down || sendToTopButton.hovered ? 1 : 0 +// color: UM.Theme.getColor("viewport_background") +// } +// contentItem: Label +// { +// text: sendToTopButton.text +// horizontalAlignment: Text.AlignLeft +// verticalAlignment: Text.AlignVCenter +// } +// } + +// MessageDialog +// { +// id: sendToTopConfirmationDialog +// title: catalog.i18nc("@window:title", "Move print job to top") +// icon: StandardIcon.Warning +// text: catalog.i18nc("@label %1 is the name of a print job.", "Are you sure you want to move %1 to the top of the queue?").arg(printJob.name) +// standardButtons: StandardButton.Yes | StandardButton.No +// Component.onCompleted: visible = false +// onYes: OutputDevice.sendJobToTop(printJob.key) +// } + +// Button +// { +// id: deleteButton +// text: catalog.i18nc("@label", "Delete") +// onClicked: +// { +// deleteConfirmationDialog.visible = true; +// popup.close(); +// } +// width: parent.width +// height: 39 * screenScaleFactor +// anchors.top: sendToTopButton.bottom +// hoverEnabled: true +// background: Rectangle +// { +// opacity: deleteButton.down || deleteButton.hovered ? 1 : 0 +// color: UM.Theme.getColor("viewport_background") +// } +// contentItem: Label +// { +// text: deleteButton.text +// horizontalAlignment: Text.AlignLeft +// verticalAlignment: Text.AlignVCenter +// } +// } + +// MessageDialog +// { +// id: deleteConfirmationDialog +// title: catalog.i18nc("@window:title", "Delete print job") +// icon: StandardIcon.Warning +// text: catalog.i18nc("@label %1 is the name of a print job.", "Are you sure you want to delete %1?").arg(printJob.name) +// standardButtons: StandardButton.Yes | StandardButton.No +// Component.onCompleted: visible = false +// onYes: OutputDevice.deleteJobFromQueue(printJob.key) +// } +// } + +// background: Item +// { +// width: popup.width +// height: popup.height + +// DropShadow +// { +// anchors.fill: pointedRectangle +// radius: 5 +// color: "#3F000000" // 25% shadow +// source: pointedRectangle +// transparentBorder: true +// verticalOffset: 2 +// } + +// Item +// { +// id: pointedRectangle +// width: parent.width - 10 * screenScaleFactor // Because of the shadow +// height: parent.height - 10 * screenScaleFactor // Because of the shadow +// anchors.horizontalCenter: parent.horizontalCenter +// anchors.verticalCenter: parent.verticalCenter + +// Rectangle +// { +// id: point +// height: 14 * screenScaleFactor +// width: 14 * screenScaleFactor +// color: UM.Theme.getColor("setting_control") +// transform: Rotation { angle: 45} +// anchors.right: bloop.right +// anchors.rightMargin: 24 +// y: 1 +// } + +// Rectangle +// { +// id: bloop +// color: UM.Theme.getColor("setting_control") +// width: parent.width +// anchors.top: parent.top +// anchors.topMargin: 8 * screenScaleFactor // Because of the shadow + point +// anchors.bottom: parent.bottom +// anchors.bottomMargin: 8 * screenScaleFactor // Because of the shadow +// } +// } +// } + +// exit: Transition +// { +// // This applies a default NumberAnimation to any changes a state change makes to x or y properties +// NumberAnimation { property: "visible"; duration: 75; } +// } +// enter: Transition +// { +// // This applies a default NumberAnimation to any changes a state change makes to x or y properties +// NumberAnimation { property: "visible"; duration: 75; } +// } + +// onClosed: visible = false +// onOpened: visible = true +// } + +// Row +// { +// id: printerFamilyPills +// spacing: 0.5 * UM.Theme.getSize("default_margin").width +// anchors +// { +// left: parent.left +// right: parent.right +// bottom: extrudersInfo.top +// bottomMargin: UM.Theme.getSize("default_margin").height +// } +// height: childrenRect.height +// Repeater +// { +// model: printJob.compatibleMachineFamilies + +// delegate: PrinterFamilyPill +// { +// text: modelData +// color: UM.Theme.getColor("viewport_background") +// padding: 3 * screenScaleFactor +// } +// } +// } +// // PrintCore && Material config +// Row +// { +// id: extrudersInfo +// anchors.bottom: parent.bottom + +// anchors +// { +// left: parent.left +// right: parent.right +// } +// height: childrenRect.height + +// spacing: UM.Theme.getSize("default_margin").width + +// PrintCoreConfiguration +// { +// id: leftExtruderInfo +// width: Math.round(parent.width / 2) * screenScaleFactor +// printCoreConfiguration: printJob.configuration.extruderConfigurations[0] +// } + +// PrintCoreConfiguration +// { +// id: rightExtruderInfo +// width: Math.round(parent.width / 2) * screenScaleFactor +// printCoreConfiguration: printJob.configuration.extruderConfigurations[1] +// } +// } + +// } +// } +// Rectangle +// { +// height: cardHeight * screenScaleFactor +// color: UM.Theme.getColor("viewport_background") +// width: 2 * screenScaleFactor +// anchors.top: parent.top +// anchors.margins: UM.Theme.getSize("default_margin").height +// anchors.horizontalCenter: parent.horizontalCenter +// } + +// // Alert / Configuration change box +// Rectangle +// { +// height: alertHeight() * screenScaleFactor + +// anchors.left: parent.left +// anchors.right: parent.right +// anchors.bottom: parent.bottom + +// color: "#ff00ff" +// ColumnLayout +// { +// anchors.fill: parent +// RowLayout +// { +// Item +// { +// Layout.fillWidth: true +// } + +// Label +// { +// font: UM.Theme.getFont("default_bold") +// text: "Configuration change" +// } + +// UM.RecolorImage +// { +// id: collapseIcon +// width: 15 +// height: 15 +// sourceSize.width: width +// sourceSize.height: height + +// // FIXME +// source: base.collapsed ? UM.Theme.getIcon("arrow_left") : UM.Theme.getIcon("arrow_bottom") +// color: "black" +// } + +// Item +// { +// Layout.fillWidth: true +// } + +// } + +// Rectangle +// { +// Layout.fillHeight: true +// Layout.fillWidth: true +// color: "red" + +// Rectangle +// { +// color: "green" +// width: childrenRect.width + +// anchors.horizontalCenter: parent.horizontalCenter +// anchors.top: parent.top +// anchors.bottom: parent.bottom + +// ColumnLayout +// { +// width: childrenRect.width + +// anchors.top: parent.top +// anchors.bottom: parent.bottom + +// Text +// { +// Layout.alignment: Qt.AlignTop + +// textFormat: Text.StyledText +// font: UM.Theme.getFont("default_bold") +// text: alertText() +// } + +// Button +// { +// visible: isPrintJobForcable(printJob) +// text: catalog.i18nc("@label", "Override") +// onClicked: { +// overrideConfirmationDialog.visible = true; +// } +// } + +// // Spacer +// Item +// { +// Layout.fillHeight: true +// } +// } +// } +// } +// } +// } + +// MessageDialog +// { +// id: overrideConfirmationDialog +// title: catalog.i18nc("@window:title", "Override configuration configuration and start print") +// icon: StandardIcon.Warning +// text: { +// var printJobName = formatPrintJobName(printJob.name); +// var confirmText = catalog.i18nc("@label", "Starting a print job with an incompatible configuration could damage your 3D printer. Are you sure you want to override the configuration and print %1?").arg(printJobName); +// return confirmText; +// } + +// standardButtons: StandardButton.Yes | StandardButton.No +// Component.onCompleted: visible = false +// onYes: OutputDevice.forceSendJob(printJob.key) +// } +// } +// } \ No newline at end of file