import QtQuick import QtQuick.Controls import QtQuick.Layouts GridLayout { id: personalData columns: 2 Label { text: qsTr("Anrede") Layout.alignment: Qt.AlignRight } ComboBox { id: title Layout.fillWidth: true editable: false model: [qsTr("Herr"), qsTr("Frau")] onCurrentTextChanged: briefAnrede.text = title.currentText === "Herr"? "Sehr geehrter " + title.currentText: "Sehr geehrte " + title.currentText } Label { text: qsTr("Vorname") Layout.alignment: Qt.AlignRight } TextField { id: firstname Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" onTextChanged: checkFields() } Label { text: qsTr("Nachname") Layout.alignment: Qt.AlignRight } TextField { id: lastname Layout.fillWidth: true placeholderText: "Pflichtfeld" placeholderTextColor: "red" onTextChanged: checkFields() } Label { text: qsTr("Straße") Layout.alignment: Qt.AlignRight } TextField { id: street Layout.fillWidth: true placeholderTextColor: "red" } Label { text: qsTr("PLZ") Layout.alignment: Qt.AlignRight } RowLayout { ComboBox { id: postcode Layout.fillWidth: true editable: true onCurrentTextChanged: checkFields() onEditTextChanged: checkFields() onActivated: currentValue model: address_model textRole: "display" popup.height: 300 popup.y: postcode.y + 5 - (postcode.height * 2) currentIndex: -1 onCurrentIndexChanged: city.currentIndex = postcode.currentIndex validator: RegularExpressionValidator { regularExpression: /([0-9]{1,5})/ } } Label { text: qsTr("Ort") Layout.alignment: Qt.AlignRight } ComboBox { id: city Layout.fillWidth: true editable: true onEditTextChanged: checkFields() onCurrentTextChanged: checkFields() model: address_model textRole: "city" popup.height: 300 popup.y: postcode.y + 5 - (postcode.height * 2) currentIndex: -1 } } Label { text: qsTr("Telefonnummer") Layout.alignment: Qt.AlignRight } TextField { id: phonenumber Layout.fillWidth: true placeholderTextColor: "red" } Label { text: qsTr("Mobil") Layout.alignment: Qt.AlignRight } TextField { id: cellphone Layout.fillWidth: true placeholderTextColor: "red" } Label { text: qsTr("E-Mail") Layout.alignment: Qt.AlignRight } TextField { id: email Layout.fillWidth: true placeholderTextColor: "red" } Label { text: qsTr("Familienstand") Layout.alignment: Qt.AlignRight visible: radio.children[1].checked } ComboBox { id: maritalstatus Layout.fillWidth: true editable: false model: [qsTr("ledig"), qsTr("verheiratet"), qsTr("verwitwet"), qsTr("geschieden")] visible: radio.children[1].checked } Label { text: qsTr("Jobbeschreibung") Layout.alignment: Qt.AlignRight visible: radio.children[1].checked } TextField { id: jobdescription Layout.fillWidth: true visible: radio.children[1].checked placeholderTextColor: "red" } Label { text: qsTr("Arbeitsbeginn") Layout.alignment: Qt.AlignRight visible: radio.children[1].checked } TextField { id: workstart Layout.fillWidth: true visible: radio.children[1].checked placeholderTextColor: "red" } Label { text: qsTr("Bei Befristung Ende") Layout.alignment: Qt.AlignRight visible: radio.children[1].checked } TextField { id: workend Layout.fillWidth: true visible: radio.children[1].checked placeholderTextColor: "red" } Label { text: qsTr("Arbeitszeiten") Layout.alignment: Qt.AlignRight visible: radio.children[1].checked } TextField { id: timetowork Layout.fillWidth: true visible: radio.children[1].checked placeholderTextColor: "red" } Label { text: qsTr("Briefanrede") Layout.alignment: Qt.AlignRight } TextField { id: briefAnrede Layout.fillWidth: true placeholderTextColor: "red" } Item { Layout.fillHeight: true Layout.columnSpan: 2 } function checkPersonalField() { if (radio.children[0].checked) { return (firstname.text.trim() && lastname.text.trim()) } else { console.log("Mitarbeiter") return (firstname.text.trim() && lastname.text.trim()) } } function requiredField() { var pf = (radio.children[1].checked)?"Pflichtfeld":"" street.placeholderText = pf phonenumber.placeholderText = pf cellphone.placeholderText = pf email.placeholderText = pf jobdescription.placeholderText = pf workstart.placeholderText = pf workend.placeholderText = pf timetowork.placeholderText = pf briefAnrede.placeholderText = pf } }