Make printer name field look less like a search field

This commit is contained in:
fieldOfView 2020-05-29 16:21:18 +02:00
parent 8ce5593eec
commit 7c8c1838e0

View file

@ -29,7 +29,7 @@ Item
"Custom": -1 "Custom": -1
} }
property int maxItemCountAtOnce: 10 // show at max 10 items at once, otherwise you need to scroll. property int maxItemCountAtOnce: 11 // show at max 11 items at once, otherwise you need to scroll.
// User-editable printer name // User-editable printer name
property alias printerName: printerNameTextField.text property alias printerName: printerNameTextField.text
@ -54,12 +54,27 @@ Item
} }
} }
function getMachineName()
{
return machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).name : "";
}
function getMachineMetaDataEntry(key)
{
var metadata = machineList.model.getItem(machineList.currentIndex) != undefined ? machineList.model.getItem(machineList.currentIndex).metadata : undefined;
if (metadata)
{
return metadata[key];
}
return undefined;
}
Component.onCompleted: Component.onCompleted:
{ {
updateCurrentItemUponSectionChange() updateCurrentItemUponSectionChange()
} }
Item Row
{ {
id: localPrinterSelectionItem id: localPrinterSelectionItem
anchors.left: parent.left anchors.left: parent.left
@ -71,16 +86,9 @@ Item
Cura.ScrollView Cura.ScrollView
{ {
id: scrollView id: scrollView
anchors.left: parent.left
anchors.right: parent.right
anchors.top: parent.top
height: (maxItemCountAtOnce * UM.Theme.getSize("action_button").height) - UM.Theme.getSize("default_margin").height height: (maxItemCountAtOnce * UM.Theme.getSize("action_button").height) - UM.Theme.getSize("default_margin").height
width: Math.floor(parent.width * 0.4)
ScrollBar.horizontal.policy: ScrollBar.AlwaysOff
ScrollBar.vertical.policy: ScrollBar.AsNeeded
clip: true
ListView ListView
{ {
@ -183,52 +191,94 @@ Item
} }
} }
} }
}
// Horizontal line // Vertical line
Rectangle Rectangle
{
id: horizontalLine
anchors.top: localPrinterSelectionItem.bottom
anchors.left: parent.left
anchors.right: parent.right
height: UM.Theme.getSize("default_lining").height
color: UM.Theme.getColor("lining")
}
// User-editable printer name row
Row
{
anchors.top: horizontalLine.bottom
anchors.left: parent.left
anchors.right: parent.right
anchors.topMargin: UM.Theme.getSize("default_lining").height
anchors.leftMargin: UM.Theme.getSize("default_margin").width
spacing: UM.Theme.getSize("default_margin").width
Label
{ {
text: catalog.i18nc("@label", "Printer name") id: verticalLine
anchors.verticalCenter: parent.verticalCenter anchors.top: parent.top
font: UM.Theme.getFont("medium") anchors.bottom: parent.bottom
color: UM.Theme.getColor("text") width: UM.Theme.getSize("default_lining").height
verticalAlignment: Text.AlignVCenter color: UM.Theme.getColor("lining")
renderType: Text.NativeRendering
} }
Cura.TextField // User-editable printer name row
Column
{ {
id: printerNameTextField width: Math.floor(parent.width * 0.6)
anchors.verticalCenter: parent.verticalCenter
width: (parent.width / 2) | 0 spacing: UM.Theme.getSize("default_margin").width
placeholderText: catalog.i18nc("@text", "Please give your printer a name") padding: UM.Theme.getSize("default_margin").width
maximumLength: 40
validator: RegExpValidator Label
{ {
regExp: printerNameTextField.machineNameValidator.machineNameRegex width: parent.width
wrapMode: Text.WordWrap
text: base.getMachineName()
color: UM.Theme.getColor("primary_button")
font: UM.Theme.getFont("huge")
elide: Text.ElideRight
}
Grid
{
width: parent.width
columns: 2
rowSpacing: UM.Theme.getSize("default_lining").height
columnSpacing: UM.Theme.getSize("default_margin").width
verticalItemAlignment: Grid.AlignVCenter
Label
{
text: catalog.i18nc("@label", "Manufacturer")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
renderType: Text.NativeRendering
}
Label
{
text: base.getMachineMetaDataEntry("manufacturer")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
renderType: Text.NativeRendering
}
Label
{
text: catalog.i18nc("@label", "Author")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
renderType: Text.NativeRendering
}
Label
{
text: base.getMachineMetaDataEntry("author")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
renderType: Text.NativeRendering
}
Label
{
text: catalog.i18nc("@label", "Printer name")
font: UM.Theme.getFont("default")
color: UM.Theme.getColor("text")
renderType: Text.NativeRendering
}
Cura.TextField
{
id: printerNameTextField
placeholderText: catalog.i18nc("@text", "Please give your printer a name")
maximumLength: 40
validator: RegExpValidator
{
regExp: printerNameTextField.machineNameValidator.machineNameRegex
}
property var machineNameValidator: Cura.MachineNameValidator { }
}
} }
property var machineNameValidator: Cura.MachineNameValidator { }
} }
} }
} }