Update styling in image loader plugin

CURA-8684
This commit is contained in:
casper 2022-01-31 13:43:08 +01:00
parent 264ce3bdd1
commit 1ecc1ad753

View file

@ -2,226 +2,278 @@
// Cura is released under the terms of the LGPLv3 or higher. // Cura is released under the terms of the LGPLv3 or higher.
import QtQuick 2.1 import QtQuick 2.1
import QtQuick.Controls 2.0 import QtQuick.Controls 2.3
import QtQuick.Layouts 1.1 import QtQuick.Layouts 1.3
import QtQuick.Window 2.1 import QtQuick.Window 2.1
import UM 1.1 as UM import UM 1.5 as UM
import Cura 1.0 as Cura
UM.Dialog UM.Dialog
{ {
width: minimumWidth;
minimumWidth: 350 * screenScaleFactor;
height: minimumHeight;
minimumHeight: 250 * screenScaleFactor;
title: catalog.i18nc("@title:window", "Convert Image...") 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 GridLayout
{ {
UM.I18nCatalog { id: catalog; name: "cura" } UM.I18nCatalog { id: catalog; name: "cura" }
anchors.fill: parent; id: grid
Layout.fillWidth: true columnSpacing: UM.Theme.getSize("default_margin").width
columnSpacing: 16 * screenScaleFactor rowSpacing: UM.Theme.getSize("thin_margin").height
rowSpacing: 4 * screenScaleFactor columns: 2
columns: 1
UM.TooltipArea { Label
{
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","The maximum distance of each pixel from \"Base.\"")
Row {
width: parent.width
Label {
text: catalog.i18nc("@action:label", "Height (mm)") text: catalog.i18nc("@action:label", "Height (mm)")
width: 150 * screenScaleFactor Layout.alignment: Qt.AlignVCenter
anchors.verticalCenter: parent.verticalCenter
MouseArea {
id: peak_height_label
anchors.fill: parent
hoverEnabled: true
}
} }
TextField { TextField
{
id: peak_height id: peak_height
Layout.fillWidth: true
selectByMouse: true selectByMouse: true
objectName: "Peak_Height" objectName: "Peak_Height"
validator: RegExpValidator {regExp: /^\d{0,3}([\,|\.]\d*)?$/} // validator: RegExpValidator { regExp: /^\d{0,3}([\,|\.]\d*)?$/ }
width: 180 * screenScaleFactor onTextChanged: manager.onPeakHeightChanged(text)
onTextChanged: { manager.onPeakHeightChanged(text) }
}
}
} }
UM.TooltipArea { Cura.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
}
Label
{
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","The base height from the build plate in millimeters.")
Row {
width: parent.width
Label {
text: catalog.i18nc("@action:label", "Base (mm)") text: catalog.i18nc("@action:label", "Base (mm)")
width: 150 * screenScaleFactor Layout.alignment: Qt.AlignVCenter
anchors.verticalCenter: parent.verticalCenter
MouseArea {
id: base_height_label
anchors.fill: parent
hoverEnabled: true
}
} }
TextField { TextField
{
id: base_height id: base_height
selectByMouse: true selectByMouse: true
objectName: "Base_Height"
validator: RegExpValidator {regExp: /^\d{0,3}([\,|\.]\d*)?$/}
width: 180 * screenScaleFactor
onTextChanged: { manager.onBaseHeightChanged(text) }
}
}
}
UM.TooltipArea {
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height objectName: "Base_Height"
text: catalog.i18nc("@info:tooltip","The width in millimeters on the build plate.") // validator: RegExpValidator { regExp: /^\d{0,3}([\,|\.]\d*)?$/ }
Row { onTextChanged: manager.onBaseHeightChanged(text)
width: parent.width
Label {
text: catalog.i18nc("@action:label", "Width (mm)")
width: 150 * screenScaleFactor
anchors.verticalCenter: parent.verticalCenter
} }
TextField { Cura.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
}
Label
{
Layout.fillWidth: true
text: catalog.i18nc("@action:label", "Width (mm)")
Layout.alignment: Qt.AlignVCenter
MouseArea {
id: width_label
anchors.fill: parent
hoverEnabled: true
}
}
TextField
{
id: width id: width
selectByMouse: true selectByMouse: true
objectName: "Width" objectName: "Width"
focus: true
validator: RegExpValidator {regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/}
width: 180 * screenScaleFactor
onTextChanged: { manager.onWidthChanged(text) }
}
}
}
UM.TooltipArea {
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height focus: true
text: catalog.i18nc("@info:tooltip","The depth in millimeters on the build plate") // validator: RegExpValidator { regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/ }
Row { onTextChanged: manager.onWidthChanged(text)
width: parent.width
Label {
text: catalog.i18nc("@action:label", "Depth (mm)")
width: 150 * screenScaleFactor
anchors.verticalCenter: parent.verticalCenter
} }
TextField {
Cura.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
}
Label
{
Layout.fillWidth: true
text: catalog.i18nc("@action:label", "Depth (mm)")
Layout.alignment: Qt.AlignVCenter
MouseArea {
id: depth_label
anchors.fill: parent
hoverEnabled: true
}
}
TextField
{
id: depth id: depth
Layout.fillWidth: true
selectByMouse: true selectByMouse: true
objectName: "Depth" objectName: "Depth"
focus: true focus: true
validator: RegExpValidator {regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/} // validator: RegExpValidator { regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/ }
width: 180 * screenScaleFactor onTextChanged: manager.onDepthChanged(text)
onTextChanged: { manager.onDepthChanged(text) }
}
}
} }
UM.TooltipArea { Cura.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
}
Label
{
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height
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.")
Row {
width: parent.width
//Empty label so 2 column layout works.
Label {
text: "" text: ""
width: 150 * screenScaleFactor Layout.alignment: Qt.AlignVCenter
anchors.verticalCenter: parent.verticalCenter
MouseArea {
id: lighter_is_higher_label
anchors.fill: parent
hoverEnabled: true
} }
ComboBox { }
ComboBox
{
id: lighter_is_higher id: lighter_is_higher
Layout.fillWidth: true
Layout.preferredHeight: UM.Theme.getSize("toolbox_action_button").height
objectName: "Lighter_Is_Higher" objectName: "Lighter_Is_Higher"
model: [catalog.i18nc("@item:inlistbox", "Darker is higher"), catalog.i18nc("@item:inlistbox", "Lighter is higher")] model: [catalog.i18nc("@item:inlistbox", "Darker is higher"), catalog.i18nc("@item:inlistbox", "Lighter is higher")]
width: 180 * screenScaleFactor
onCurrentIndexChanged: { manager.onImageColorInvertChanged(currentIndex) } onCurrentIndexChanged: { manager.onImageColorInvertChanged(currentIndex) }
} }
}
Cura.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.TooltipArea { Label
{
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height text: catalog.i18nc("@action:label", "Color Model")
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.") Layout.alignment: Qt.AlignVCenter
Row {
width: parent.width
Label { MouseArea {
text: "Color Model" id: color_model_label
width: 150 * screenScaleFactor anchors.fill: parent
anchors.verticalCenter: parent.verticalCenter hoverEnabled: true
} }
ComboBox { }
ComboBox
{
id: color_model id: color_model
Layout.fillWidth: true
objectName: "ColorModel" objectName: "ColorModel"
model: [catalog.i18nc("@item:inlistbox", "Linear"), catalog.i18nc("@item:inlistbox", "Translucency")] model: [catalog.i18nc("@item:inlistbox", "Linear"), catalog.i18nc("@item:inlistbox", "Translucency")]
width: 180 * screenScaleFactor
onCurrentIndexChanged: { manager.onColorModelChanged(currentIndex) } onCurrentIndexChanged: { manager.onColorModelChanged(currentIndex) }
} Layout.preferredHeight: UM.Theme.getSize("toolbox_action_button").height
}
} }
UM.TooltipArea { Cura.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
}
Label
{
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height
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: color_model.currentText == catalog.i18nc("@item:inlistbox","Translucency")
Row {
width: parent.width
Label {
text: catalog.i18nc("@action:label", "1mm Transmittance (%)") text: catalog.i18nc("@action:label", "1mm Transmittance (%)")
width: 150 * screenScaleFactor Layout.alignment: Qt.AlignVCenter
anchors.verticalCenter: parent.verticalCenter
MouseArea {
id: transmittance_label
anchors.fill: parent
hoverEnabled: true
} }
TextField { }
TextField
{
id: transmittance id: transmittance
Layout.fillWidth: true
selectByMouse: true selectByMouse: true
objectName: "Transmittance" objectName: "Transmittance"
focus: true // validator: RegExpValidator { regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/ }
validator: RegExpValidator {regExp: /^[1-9]\d{0,2}([\,|\.]\d*)?$/} onTextChanged: manager.onTransmittanceChanged(text)
width: 180 * screenScaleFactor
onTextChanged: { manager.onTransmittanceChanged(text) }
}
}
} }
UM.TooltipArea { Cura.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: transmittance.hovered || transmittance_label.containsMouse
targetPoint: Qt.point(transmittance.x + Math.round(transmittance.width / 2), 0)
y: transmittance.y + transmittance.height + UM.Theme.getSize("default_margin").height
}
Label
{
Layout.fillWidth: true Layout.fillWidth: true
height: childrenRect.height
text: catalog.i18nc("@info:tooltip","The amount of smoothing to apply to the image.")
Row {
width: parent.width
Label {
text: catalog.i18nc("@action:label", "Smoothing") text: catalog.i18nc("@action:label", "Smoothing")
width: 150 * screenScaleFactor Layout.alignment: Qt.AlignVCenter
anchors.verticalCenter: parent.verticalCenter
MouseArea {
id: smoothing_label
anchors.fill: parent
hoverEnabled: true
}
} }
Item { Slider
width: 180 * screenScaleFactor {
height: 20 * screenScaleFactor
Layout.fillWidth: true
Slider {
id: smoothing id: smoothing
Layout.fillWidth: true
objectName: "Smoothing" objectName: "Smoothing"
to: 100.0 to: 100.0
stepSize: 1.0 stepSize: 1.0
width: 180
onValueChanged: { manager.onSmoothingChanged(value) } onValueChanged: { manager.onSmoothingChanged(value) }
} }
}
} Cura.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
} }
} }
@ -241,13 +293,13 @@ UM.Dialog
Button Button
{ {
id: ok_button id: ok_button
text: catalog.i18nc("@action:button","OK"); text: catalog.i18nc("@action:button", "OK")
onClicked: manager.onOkButtonClicked() onClicked: manager.onOkButtonClicked()
}, },
Button Button
{ {
id: cancel_button id: cancel_button
text: catalog.i18nc("@action:button","Cancel"); text: catalog.i18nc("@action:button", "Cancel")
onClicked: manager.onCancelButtonClicked() onClicked: manager.onCancelButtonClicked()
} }
] ]