123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333 |
- // Copyright (c) 2022 Ultimaker B.V.
- // Cura is released under the terms of the LGPLv3 or higher.
- import QtQuick 2.15
- import QtQuick.Controls 2.15
- import QtQuick.Layouts 1.3
- import QtQuick.Window 2.1
- import UM 1.5 as UM
- import Cura 1.0 as Cura
- UM.Dialog
- {
- title: catalog.i18nc("@title:window", "Convert Image")
- minimumWidth: grid.width + 2 * UM.Theme.getSize("default_margin").height
- minimumHeight: UM.Theme.getSize("modal_window_minimum").height
- width: minimumWidth
- height: minimumHeight
- GridLayout
- {
- UM.I18nCatalog { id: catalog; name: "cura" }
- id: grid
- columnSpacing: UM.Theme.getSize("narrow_margin").width
- rowSpacing: UM.Theme.getSize("narrow_margin").height
- columns: 2
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "Height (mm)")
- Layout.alignment: Qt.AlignVCenter
- MouseArea {
- id: peak_height_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.TextField
- {
- id: peak_height
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- selectByMouse: true
- objectName: "Peak_Height"
- validator: RegularExpressionValidator { regularExpression: /^\d{0,3}([\,|\.]\d*)?$/ }
- onTextChanged: manager.onPeakHeightChanged(text)
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "The maximum distance of each pixel from \"Base.\"")
- visible: peak_height.hovered || peak_height_label.containsMouse
- targetPoint: Qt.point(peak_height.x + Math.round(peak_height.width / 2), 0)
- y: peak_height.y + peak_height.height + UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "Base (mm)")
- Layout.alignment: Qt.AlignVCenter
- MouseArea
- {
- id: base_height_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.TextField
- {
- id: base_height
- selectByMouse: true
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- objectName: "Base_Height"
- validator: RegularExpressionValidator { regularExpression: /^\d{0,3}([\,|\.]\d*)?$/ }
- onTextChanged: manager.onBaseHeightChanged(text)
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "The base height from the build plate in millimeters.")
- visible: base_height.hovered || base_height_label.containsMouse
- targetPoint: Qt.point(base_height.x + Math.round(base_height.width / 2), 0)
- y: base_height.y + base_height.height + UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "Width (mm)")
- Layout.alignment: Qt.AlignVCenter
- MouseArea {
- id: width_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.TextField
- {
- id: width
- selectByMouse: true
- objectName: "Width"
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- focus: true
- validator: RegularExpressionValidator { regularExpression: /^[1-9]\d{0,2}([\,|\.]\d*)?$/ }
- onTextChanged: manager.onWidthChanged(text)
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "The width in millimeters on the build plate")
- visible: width.hovered || width_label.containsMouse
- targetPoint: Qt.point(width.x + Math.round(width.width / 2), 0)
- y: width.y + width.height + UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "Depth (mm)")
- Layout.alignment: Qt.AlignVCenter
- MouseArea {
- id: depth_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.TextField
- {
- id: depth
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- selectByMouse: true
- objectName: "Depth"
- focus: true
- validator: RegularExpressionValidator { regularExpression: /^[1-9]\d{0,2}([\,|\.]\d*)?$/ }
- onTextChanged: manager.onDepthChanged(text)
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "The depth in millimeters on the build plate")
- visible: depth.hovered || depth_label.containsMouse
- targetPoint: Qt.point(depth.x + Math.round(depth.width / 2), 0)
- y: depth.y + depth.height + UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: ""
- Layout.alignment: Qt.AlignVCenter
- MouseArea {
- id: lighter_is_higher_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.ComboBox
- {
- id: lighter_is_higher
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- Layout.preferredHeight: UM.Theme.getSize("setting_control").height
- objectName: "Lighter_Is_Higher"
- textRole: "text"
- model: [
- { text: catalog.i18nc("@item:inlistbox", "Darker is higher") },
- { text: catalog.i18nc("@item:inlistbox", "Lighter is higher") }
- ]
- onCurrentIndexChanged: { manager.onImageColorInvertChanged(currentIndex) }
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "For lithophanes dark pixels should correspond to thicker locations in order to block more light coming through. For height maps lighter pixels signify higher terrain, so lighter pixels should correspond to thicker locations in the generated 3D model.")
- visible: lighter_is_higher.hovered || lighter_is_higher_label.containsMouse
- targetPoint: Qt.point(lighter_is_higher.x + Math.round(lighter_is_higher.width / 2), 0)
- y: lighter_is_higher.y + lighter_is_higher.height + UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "Color Model")
- Layout.alignment: Qt.AlignVCenter
- MouseArea {
- id: color_model_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.ComboBox
- {
- id: color_model
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- Layout.preferredHeight: UM.Theme.getSize("setting_control").height
- objectName: "ColorModel"
- textRole: "text"
- model: [
- { text: catalog.i18nc("@item:inlistbox", "Linear") },
- { text: catalog.i18nc("@item:inlistbox", "Translucency") }
- ]
- onCurrentIndexChanged: { manager.onColorModelChanged(currentIndex) }
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "For lithophanes a simple logarithmic model for translucency is available. For height maps the pixel values correspond to heights linearly.")
- visible: color_model.hovered || color_model_label.containsMouse
- targetPoint: Qt.point(color_model.x + Math.round(color_model.width / 2), 0)
- y: color_model.y + color_model.height + UM.Theme.getSize("default_margin").height
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "1mm Transmittance (%)")
- Layout.alignment: Qt.AlignVCenter
- MouseArea {
- id: transmittance_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.TextField
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- selectByMouse: true
- objectName: "Transmittance"
- validator: RegularExpressionValidator { regularExpression: /^[1-9]\d{0,2}([\,|\.]\d*)?$/ }
- onTextChanged: manager.onTransmittanceChanged(text)
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "The percentage of light penetrating a print with a thickness of 1 millimeter. Lowering this value increases the contrast in dark regions and decreases the contrast in light regions of the image.")
- visible: parent.hovered || transmittance_label.containsMouse
- targetPoint: Qt.point(parent.x + Math.round(parent.width / 2), 0)
- y: parent.y + parent.height + UM.Theme.getSize("default_margin").height
- }
- }
- UM.Label
- {
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- text: catalog.i18nc("@action:label", "Smoothing")
- Layout.alignment: Qt.AlignVCenter
- MouseArea
- {
- id: smoothing_label
- anchors.fill: parent
- hoverEnabled: true
- }
- }
- Cura.SpinBox
- {
- id: smoothing
- Layout.fillWidth: true
- Layout.minimumWidth: UM.Theme.getSize("setting_control").width
- objectName: "Smoothing"
- to: 100.0
- stepSize: 1.0
- onValueChanged: manager.onSmoothingChanged(value)
- }
- UM.ToolTip
- {
- text: catalog.i18nc("@info:tooltip", "The amount of smoothing to apply to the image.")
- visible: smoothing.hovered || smoothing_label.containsMouse
- targetPoint: Qt.point(smoothing.x + Math.round(smoothing.width / 2), 0)
- y: smoothing.y + smoothing.height + UM.Theme.getSize("default_margin").height
- }
- }
- Item
- {
- ButtonGroup
- {
- buttons: [ok_button, cancel_button]
- checkedButton: ok_button
- }
- }
- onAccepted: manager.onOkButtonClicked()
- onRejected: manager.onCancelButtonClicked()
- buttonSpacing: UM.Theme.getSize("default_margin").width
- rightButtons: [
- Cura.TertiaryButton
- {
- id: cancel_button
- text: catalog.i18nc("@action:button", "Cancel")
- onClicked: manager.onCancelButtonClicked()
- },
- Cura.PrimaryButton
- {
- id: ok_button
- text: catalog.i18nc("@action:button", "OK")
- onClicked: manager.onOkButtonClicked()
- }
- ]
- }
|