|
@@ -0,0 +1,98 @@
|
|
|
+// Copyright (c) 2018 Ultimaker B.V.
|
|
|
+// Cura is released under the terms of the LGPLv3 or higher.
|
|
|
+
|
|
|
+import QtQuick 2.7
|
|
|
+import QtQuick.Controls 2.1
|
|
|
+import QtQuick.Layouts 1.3
|
|
|
+
|
|
|
+import UM 1.1 as UM
|
|
|
+import Cura 1.0 as Cura
|
|
|
+
|
|
|
+Item
|
|
|
+{
|
|
|
+ id: widget
|
|
|
+
|
|
|
+ Cura.ActionButton
|
|
|
+ {
|
|
|
+ id: saveToButton
|
|
|
+ height: parent.height
|
|
|
+
|
|
|
+ anchors
|
|
|
+ {
|
|
|
+ top: parent.top
|
|
|
+ left: parent.left
|
|
|
+ right: deviceSelectionMenu.visible ? deviceSelectionMenu.left : parent.right
|
|
|
+ }
|
|
|
+
|
|
|
+ tooltip: UM.OutputDeviceManager.activeDeviceDescription
|
|
|
+
|
|
|
+ text: UM.OutputDeviceManager.activeDeviceShortDescription
|
|
|
+
|
|
|
+ onClicked:
|
|
|
+ {
|
|
|
+ forceActiveFocus();
|
|
|
+ UM.OutputDeviceManager.requestWriteToDevice(UM.OutputDeviceManager.activeDevice, PrintInformation.jobName,
|
|
|
+ { "filter_by_machine": true, "preferred_mimetypes": Cura.MachineManager.activeMachine.preferred_output_file_formats });
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ Cura.ActionButton
|
|
|
+ {
|
|
|
+ id: deviceSelectionMenu
|
|
|
+ height: parent.height
|
|
|
+
|
|
|
+ anchors
|
|
|
+ {
|
|
|
+ top: parent.top
|
|
|
+ right: parent.right
|
|
|
+ }
|
|
|
+
|
|
|
+ tooltip: catalog.i18nc("@info:tooltip", "Select the active output device")
|
|
|
+ iconSource: popup.opened ? UM.Theme.getIcon("arrow_top") : UM.Theme.getIcon("arrow_bottom")
|
|
|
+ visible: (devicesModel.deviceCount > 1)
|
|
|
+
|
|
|
+ onClicked: popup.opened ? popup.close() : popup.open()
|
|
|
+
|
|
|
+ Popup
|
|
|
+ {
|
|
|
+ id: popup
|
|
|
+
|
|
|
+ y: -height
|
|
|
+ x: parent.width - width
|
|
|
+
|
|
|
+ closePolicy: Popup.CloseOnEscape | Popup.CloseOnPressOutsideParent
|
|
|
+
|
|
|
+ contentItem: Column
|
|
|
+ {
|
|
|
+ Repeater
|
|
|
+ {
|
|
|
+ model: devicesModel
|
|
|
+
|
|
|
+ delegate: Cura.ActionButton
|
|
|
+ {
|
|
|
+ text: model.description
|
|
|
+ color: "transparent"
|
|
|
+ hoverColor: "red"
|
|
|
+
|
|
|
+ onClicked:
|
|
|
+ {
|
|
|
+ UM.OutputDeviceManager.setActiveDevice(model.id)
|
|
|
+ popup.close()
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ background: Rectangle
|
|
|
+ {
|
|
|
+ opacity: visible ? 1 : 0
|
|
|
+ Behavior on opacity { NumberAnimation { duration: 100 } }
|
|
|
+ color: UM.Theme.getColor("primary")
|
|
|
+ border.color: UM.Theme.getColor("lining")
|
|
|
+ border.width: UM.Theme.getSize("default_lining").width
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ UM.OutputDevicesModel { id: devicesModel }
|
|
|
+}
|