Folder structure in Gui changed, window size to fullscreen, scrollview in AddCustomer
This commit is contained in:
@@ -1,120 +1,120 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Dialogs
|
||||
import Js
|
||||
// import QtQuick
|
||||
// import QtQuick.Layouts
|
||||
// import QtQuick.Controls
|
||||
// import QtQuick.Dialogs
|
||||
// import Js
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
property var new_business: null
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
spacing: 15
|
||||
Label
|
||||
{
|
||||
text: qsTr("Kunden anlegen")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
Layout.fillWidth: true
|
||||
font.pixelSize: 35
|
||||
}
|
||||
CheckBox
|
||||
{
|
||||
id: checkAddContact
|
||||
text: qsTr("Ansprechpartner hinzufügen")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
checked: false
|
||||
onCheckStateChanged:
|
||||
{
|
||||
checkFields()
|
||||
}
|
||||
}
|
||||
// ColumnLayout
|
||||
// {
|
||||
// property var new_business: null
|
||||
// Layout.fillWidth: true
|
||||
// Layout.fillHeight: true
|
||||
// spacing: 15
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Kunden anlegen")
|
||||
// horizontalAlignment: Text.AlignHCenter
|
||||
// Layout.fillWidth: true
|
||||
// font.pixelSize: 35
|
||||
// }
|
||||
// CheckBox
|
||||
// {
|
||||
// id: checkAddContact
|
||||
// text: qsTr("Ansprechpartner hinzufügen")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// checked: false
|
||||
// onCheckStateChanged:
|
||||
// {
|
||||
// checkFields()
|
||||
// }
|
||||
// }
|
||||
|
||||
RowLayout
|
||||
{
|
||||
id: addCustomer
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
spacing: 45
|
||||
Frame
|
||||
{
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.fillWidth: true
|
||||
CustomerView
|
||||
{
|
||||
id: customerView
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
// RowLayout
|
||||
// {
|
||||
// id: addCustomer
|
||||
// Layout.fillWidth: true
|
||||
// Layout.fillHeight: true
|
||||
// spacing: 45
|
||||
// Frame
|
||||
// {
|
||||
// Layout.alignment: Qt.AlignTop
|
||||
// Layout.fillWidth: true
|
||||
// CustomerView
|
||||
// {
|
||||
// id: customerView
|
||||
// width: parent.width
|
||||
// }
|
||||
// }
|
||||
|
||||
AddContact
|
||||
{
|
||||
id: addContactFrame
|
||||
visible: checkAddContact.checked
|
||||
}
|
||||
}
|
||||
RowLayout
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
Layout.alignment: Qt.AlignRight
|
||||
Button
|
||||
{
|
||||
text: qsTr("Abbrechen")
|
||||
onClicked: contentStack.pop()
|
||||
}
|
||||
Button
|
||||
{
|
||||
id: saveBtn
|
||||
text: qsTr("Speichern")
|
||||
enabled: false
|
||||
onClicked:
|
||||
{
|
||||
if (!checkAddContact.checked)
|
||||
{
|
||||
new_business = JsLib.parseForm(customerView)
|
||||
business_model.addBusiness(new_business, 0)
|
||||
contentStack.pop()
|
||||
}
|
||||
else
|
||||
{
|
||||
new_business = JsLib.parseForm(customerView)
|
||||
var new_contact = JsLib.parseForm(addContactFrame.contactGrid)
|
||||
contact_model.addContact(new_contact)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Item
|
||||
{
|
||||
id: spacer3
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
// AddContact
|
||||
// {
|
||||
// id: addContactFrame
|
||||
// visible: checkAddContact.checked
|
||||
// }
|
||||
// }
|
||||
// RowLayout
|
||||
// {
|
||||
// Layout.fillHeight: true
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// Button
|
||||
// {
|
||||
// text: qsTr("Abbrechen")
|
||||
// onClicked: contentStack.pop()
|
||||
// }
|
||||
// Button
|
||||
// {
|
||||
// id: saveBtn
|
||||
// text: qsTr("Speichern")
|
||||
// enabled: false
|
||||
// onClicked:
|
||||
// {
|
||||
// if (!checkAddContact.checked)
|
||||
// {
|
||||
// new_business = JsLib.parseForm(customerView)
|
||||
// business_model.addBusiness(new_business, 0)
|
||||
// contentStack.pop()
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// new_business = JsLib.parseForm(customerView)
|
||||
// var new_contact = JsLib.parseForm(addContactFrame.contactGrid)
|
||||
// contact_model.addContact(new_contact)
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// Item
|
||||
// {
|
||||
// id: spacer3
|
||||
// Layout.fillHeight: true
|
||||
// }
|
||||
|
||||
//Component.onCompleted: contact_model.contactIdReady.connect(onContactId)
|
||||
// //Component.onCompleted: contact_model.contactIdReady.connect(onContactId)
|
||||
|
||||
Connections
|
||||
{
|
||||
target: contact_model
|
||||
// Connections
|
||||
// {
|
||||
// target: contact_model
|
||||
|
||||
function onContactIdReady()
|
||||
{
|
||||
var con_id = arguments[0]
|
||||
business_model.addBusiness(new_business, con_id)
|
||||
contentStack.pop()
|
||||
}
|
||||
}
|
||||
// function onContactIdReady()
|
||||
// {
|
||||
// var con_id = arguments[0]
|
||||
// business_model.addBusiness(new_business, con_id)
|
||||
// contentStack.pop()
|
||||
// }
|
||||
// }
|
||||
|
||||
function checkFields()
|
||||
{
|
||||
if(checkAddContact.checked)
|
||||
{
|
||||
if(!customerView.checkBusinessField() || !addContactFrame.checkContactField())
|
||||
saveBtn.enabled = false
|
||||
else
|
||||
saveBtn.enabled = true
|
||||
}
|
||||
else if (!customerView.checkBusinessField())
|
||||
saveBtn.enabled = false
|
||||
else
|
||||
saveBtn.enabled = true
|
||||
}
|
||||
}
|
||||
// function checkFields()
|
||||
// {
|
||||
// if(checkAddContact.checked)
|
||||
// {
|
||||
// if(!customerView.checkBusinessField() || !addContactFrame.checkContactField())
|
||||
// saveBtn.enabled = false
|
||||
// else
|
||||
// saveBtn.enabled = true
|
||||
// }
|
||||
// else if (!customerView.checkBusinessField())
|
||||
// saveBtn.enabled = false
|
||||
// else
|
||||
// saveBtn.enabled = true
|
||||
// }
|
||||
// }
|
||||
|
||||
133
Gui/Customer/AddCustomer.qml
Normal file
133
Gui/Customer/AddCustomer.qml
Normal file
@@ -0,0 +1,133 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Dialogs
|
||||
import Js
|
||||
import Gui
|
||||
ScrollView
|
||||
{
|
||||
id: scroll
|
||||
width: parent.width
|
||||
height: parent.height
|
||||
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
property var new_business: null
|
||||
height: Screen.desktopAvailableHeight
|
||||
width: scroll.width
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
spacing: 15
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Kunden anlegen")
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
Layout.fillWidth: true
|
||||
font.pixelSize: 35
|
||||
}
|
||||
CheckBox
|
||||
{
|
||||
id: checkAddContact
|
||||
text: qsTr("Ansprechpartner hinzufügen")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
checked: false
|
||||
onCheckStateChanged:
|
||||
{
|
||||
checkFields()
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout
|
||||
{
|
||||
id: addCustomer
|
||||
// Layout.fillWidth: true
|
||||
// Layout.fillHeight: true
|
||||
|
||||
spacing: 45
|
||||
Frame
|
||||
{
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.fillWidth: true
|
||||
CustomerView
|
||||
{
|
||||
id: customerView
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
|
||||
AddContact
|
||||
{
|
||||
id: addContactFrame
|
||||
visible: checkAddContact.checked
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout
|
||||
{
|
||||
Layout.fillHeight: true
|
||||
Layout.alignment: Qt.AlignRight
|
||||
Button
|
||||
{
|
||||
text: qsTr("Abbrechen")
|
||||
onClicked: contentStack.pop()
|
||||
}
|
||||
Button
|
||||
{
|
||||
id: saveBtn
|
||||
text: qsTr("Speichern")
|
||||
enabled: true
|
||||
onClicked:
|
||||
{
|
||||
if (!checkAddContact.checked)
|
||||
{
|
||||
new_business = JsLib.parseForm(customerView)
|
||||
business_model.addBusiness(new_business, 0)
|
||||
contentStack.pop()
|
||||
}
|
||||
else
|
||||
{
|
||||
new_business = JsLib.parseForm(customerView)
|
||||
var new_contact = JsLib.parseForm(addContactFrame.contactGrid)
|
||||
contact_model.addContact(new_contact)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Item
|
||||
{
|
||||
id: spacer3
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
//Component.onCompleted: contact_model.contactIdReady.connect(onContactId)
|
||||
|
||||
Connections
|
||||
{
|
||||
target: contact_model
|
||||
|
||||
function onContactIdReady()
|
||||
{
|
||||
var con_id = arguments[0]
|
||||
business_model.addBusiness(new_business, con_id)
|
||||
contentStack.pop()
|
||||
}
|
||||
}
|
||||
|
||||
function checkFields()
|
||||
{
|
||||
if(checkAddContact.checked)
|
||||
{
|
||||
if(!customerView.checkBusinessField() || !addContactFrame.checkContactField())
|
||||
saveBtn.enabled = false
|
||||
else
|
||||
saveBtn.enabled = true
|
||||
}
|
||||
else if (!customerView.checkBusinessField())
|
||||
saveBtn.enabled = false
|
||||
else
|
||||
saveBtn.enabled = true
|
||||
}
|
||||
}
|
||||
}
|
||||
174
Gui/Customer/CustomerContactDetails.qml
Normal file
174
Gui/Customer/CustomerContactDetails.qml
Normal file
@@ -0,0 +1,174 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
GridLayout
|
||||
{
|
||||
columns: 2
|
||||
rowSpacing: 25
|
||||
Layout.leftMargin: 7
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Layout.columnSpan: 2
|
||||
Label
|
||||
{
|
||||
id: contactLabel
|
||||
color: "darksalmon"
|
||||
font.bold: true
|
||||
text: qsTr("Ansprechpartner")
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['salute'] + " " + contact['contact']['fname'] + " " + contact['contact']['lname']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Geburtsdatum")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['birthday']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("E-Mail")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['email']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Position")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['position']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Priorität")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['priority']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Telefon")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['phone']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Handy")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['cell']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Abrechnung")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['invoice']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Mahnung")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: contact? contact['contact']['reminder']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
Item
|
||||
{
|
||||
Layout.columnSpan: 2
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
if (contact && contact['contact']['salute'] === "Frau")
|
||||
contactLabel.text = qsTr("Ansprechpartnerin")
|
||||
}
|
||||
}
|
||||
61
Gui/Customer/CustomerDetails.qml
Normal file
61
Gui/Customer/CustomerDetails.qml
Normal file
@@ -0,0 +1,61 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
property int selectedClient: -1
|
||||
property var client: null
|
||||
property var contact: null
|
||||
id: clDet
|
||||
|
||||
Button
|
||||
{
|
||||
text: qsTr("Zurück")
|
||||
onClicked: contentStack.pop()
|
||||
}
|
||||
|
||||
SplitView
|
||||
{
|
||||
id: clDetView
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
leftPadding: 9
|
||||
rightPadding: 9
|
||||
|
||||
CustomerDetailsView
|
||||
{
|
||||
id: customerDetails
|
||||
}
|
||||
|
||||
CustomerContactDetails
|
||||
{
|
||||
id: contactDetails
|
||||
visible: false
|
||||
}
|
||||
|
||||
NoCustomerContact
|
||||
{
|
||||
id: noCustomerContact
|
||||
visible: false
|
||||
}
|
||||
}
|
||||
|
||||
Item
|
||||
{
|
||||
//Layout.columnSpan: 2
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
|
||||
Component.onCompleted:
|
||||
{
|
||||
//business_model.onRowClicked(selectedClient)
|
||||
client = business_model.getClientDetails()
|
||||
if (client['business']['contactid'] > 0)
|
||||
{
|
||||
contact = contact_model.getContactDetails(client['business']['contactid'])
|
||||
contactDetails.visible = true
|
||||
}
|
||||
else noCustomerContact.visible = true
|
||||
}
|
||||
}
|
||||
225
Gui/Customer/CustomerDetailsView.qml
Normal file
225
Gui/Customer/CustomerDetailsView.qml
Normal file
@@ -0,0 +1,225 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
GridLayout
|
||||
{
|
||||
columns: 2
|
||||
rowSpacing: 25
|
||||
SplitView.preferredWidth: clDetView.width / 3 * 1.8
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Steuer-ID")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['tax']? client['business']['tax']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Anmerkungen")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['info']? client['business']['info']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Kundenname")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['company']
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("CEO")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['ceo']
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Telefon")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['phone']? client['business']['phone']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Handy")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['cell']? client['business']['cell']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Webseite")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
id: clientWebsite
|
||||
color: "goldenrod"
|
||||
font.underline: false
|
||||
text: client['business']['website']? '<a href="' + client['business']['website'] + '">' + client['business']['website'] + '</a>': ""
|
||||
onLinkActivated:
|
||||
{
|
||||
var web_protocol = /^((http|https):\/\/)/;
|
||||
var client_website = !web_protocol.test(client['business']['website'])? "https://" + client['business']['website']: client['business']['website'];
|
||||
Qt.openUrlExternally(client_website)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("E-Mail")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
id: clientEmail
|
||||
color: "goldenrod"
|
||||
text: client['business']['email']? '<a href="mailto:' + client['business']['email'] + '">' + client['business']['email'] + '</a>': ""
|
||||
onLinkActivated: Qt.openUrlExternally('mailto:' + client['business']['email'])
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Straße")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['street']? client['business']['tax']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Haus-Nr.")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['house']? client['business']['house']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("PLZ")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['zip']? client['business']['zip']: ""
|
||||
}
|
||||
}
|
||||
|
||||
ColumnLayout
|
||||
{
|
||||
Label
|
||||
{
|
||||
color: "darksalmon"
|
||||
text: qsTr("Stadt")
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
color: "goldenrod"
|
||||
text: client['business']['city']? client['business']['city']: ""
|
||||
}
|
||||
}
|
||||
|
||||
// Grid row
|
||||
// Item
|
||||
// {
|
||||
// Layout.columnSpan: 2
|
||||
// Layout.fillHeight: true
|
||||
// }
|
||||
}
|
||||
293
Gui/Customer/CustomerView.qml
Normal file
293
Gui/Customer/CustomerView.qml
Normal file
@@ -0,0 +1,293 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
|
||||
GridLayout
|
||||
{
|
||||
id: customerView
|
||||
columns: 4
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
rowSpacing: 9
|
||||
property alias businesstxt: firmenName
|
||||
property alias street: streetid
|
||||
property alias postcodetxt: postcode
|
||||
property alias citytxt: city
|
||||
Label
|
||||
{
|
||||
id: lblFirmenName
|
||||
text: qsTr("Firmenname*")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "business"
|
||||
|
||||
id: firmenName
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
onTextChanged: checkFields()
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Land")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
visible: false
|
||||
}
|
||||
ComboBox
|
||||
{
|
||||
property string name: "country"
|
||||
id: country
|
||||
Layout.fillWidth: true
|
||||
editable: true
|
||||
// onEditTextChanged: checkFields()
|
||||
// onCurrentTextChanged: checkFields()
|
||||
model: address_model
|
||||
textRole: "country"
|
||||
popup.height: 300
|
||||
currentIndex: 37
|
||||
Layout.columnSpan: 3
|
||||
visible: false
|
||||
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("PLZ")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
ComboBox
|
||||
{
|
||||
property string name: "postcode"
|
||||
id: postcode
|
||||
Layout.fillWidth: true
|
||||
editable: true
|
||||
onCurrentTextChanged: checkFields()
|
||||
onEditTextChanged: checkFields()
|
||||
onActivated: currentValue
|
||||
model: address_model
|
||||
textRole: "display"
|
||||
popup.height: 300
|
||||
currentIndex: -1
|
||||
onCurrentIndexChanged: city.currentIndex = postcode.currentIndex
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([0-9]{1,5})/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Ort")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
ComboBox
|
||||
{
|
||||
property string name: "city"
|
||||
id: city
|
||||
Layout.fillWidth: true
|
||||
editable: true
|
||||
onEditTextChanged: checkFields()
|
||||
onCurrentTextChanged: checkFields()
|
||||
model: address_model
|
||||
textRole: "city"
|
||||
popup.height: 300
|
||||
currentIndex: -1
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Straße*")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
property string name: "street"
|
||||
id: streetid
|
||||
Layout.fillWidth: true
|
||||
onTextChanged: checkFields()
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Nr.*")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
|
||||
TextField
|
||||
{
|
||||
property string name: "houseno"
|
||||
id: housenoid
|
||||
Layout.fillWidth: true
|
||||
onTextChanged: checkFields()
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([0-9a-zA-Z\-]{1,6})/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Telefon")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "telephone"
|
||||
id: telephone
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Mobil")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "cellphone"
|
||||
id: cellphone
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||||
}
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("E-Mail")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "email"
|
||||
id: email
|
||||
Layout.fillWidth: true
|
||||
placeholderText: qsTr("beispiel@domain.de")
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([\+!#$%&‘\*\–\/\=?\^_`\.{|}\~\-\_0-9A-Za-z]{1,185})@([0-9A-Za-z\.\-\_]{1,64})\.([a-zA-z]{2,5})/
|
||||
}
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Homepage")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "homepage"
|
||||
id: homepage
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
placeholderText: "www.oschkarischtverhaftetwegensexy.jinx"
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Geschäftsführer")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "ceo"
|
||||
id: ceo
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("USt-IdNr")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "taxno"
|
||||
id: taxno
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Typ")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
ComboBox
|
||||
{
|
||||
property string name: "typeid"
|
||||
id: typeid
|
||||
Layout.fillWidth: true
|
||||
editable: false
|
||||
model: business_type
|
||||
textRole: "display"
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Info")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
}
|
||||
|
||||
ScrollView
|
||||
{
|
||||
id: infoView
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 100
|
||||
Layout.columnSpan: 3
|
||||
ScrollBar.horizontal: ScrollBar
|
||||
{
|
||||
policy: ScrollBar.AlwaysOn
|
||||
}
|
||||
|
||||
TextArea
|
||||
{
|
||||
property string name: "customerinfo"
|
||||
id: customerInfo
|
||||
implicitWidth: parent.width
|
||||
wrapMode: TextEdit.Wrap
|
||||
background: Rectangle
|
||||
{
|
||||
color: customerInfo.palette.base
|
||||
border.color: customerInfo.activeFocus? customerInfo.palette.highlight: customerInfo.palette.base
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkBusinessField()
|
||||
{
|
||||
if (!firmenName.text.trim() || !streetid.text.trim())
|
||||
{
|
||||
return false
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!postcode.editText.trim() || !postcode.currentText || !city.editText.trim() || !city.currentText)
|
||||
return false
|
||||
else
|
||||
return true
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
177
Gui/Customer/CustomersTable.qml
Normal file
177
Gui/Customer/CustomersTable.qml
Normal file
@@ -0,0 +1,177 @@
|
||||
import QtQuick
|
||||
import QtQuick.Layouts
|
||||
import QtQuick.Controls
|
||||
import Qt.labs.qmlmodels
|
||||
|
||||
ColumnLayout {
|
||||
property var availableFilters: ["Name", "Adresse", "PLZ", "Ort"]
|
||||
|
||||
function viewCriterion(criterion)
|
||||
{
|
||||
business_model.viewCriterion(criterion.text);
|
||||
}
|
||||
|
||||
|
||||
|
||||
anchors.fill: parent
|
||||
spacing: Dimensions.l
|
||||
|
||||
Component.onCompleted: contentStack.pop()
|
||||
|
||||
RowLayout
|
||||
{
|
||||
Layout.fillWidth: true
|
||||
spacing: Dimensions.l
|
||||
|
||||
|
||||
SearchBar
|
||||
{
|
||||
}
|
||||
QuickFilter {
|
||||
onSelectedChanged: (name) => {
|
||||
business_model.viewCriterion(name)
|
||||
}
|
||||
|
||||
model: ListModel {
|
||||
ListElement {
|
||||
|
||||
name: "Alle"
|
||||
text: qsTr("Alle")
|
||||
selected: true
|
||||
}
|
||||
ListElement {
|
||||
name: "Interessent"
|
||||
text: qsTr("Interessent")
|
||||
selected: false
|
||||
}
|
||||
ListElement {
|
||||
name: "Kunde"
|
||||
text: qsTr("Kunde")
|
||||
selected: false
|
||||
}
|
||||
ListElement {
|
||||
name: "Lieferant"
|
||||
text: qsTr("Lieferant")
|
||||
selected: false
|
||||
}
|
||||
ListElement {
|
||||
name: "Erledigt"
|
||||
text: qsTr("Erledigt")
|
||||
selected: false
|
||||
}
|
||||
}
|
||||
}
|
||||
Button
|
||||
{
|
||||
id: addCustomer
|
||||
|
||||
Layout.alignment: Qt.AlignRight
|
||||
icon.source: "qrc:/images/PlusCircle.svg"
|
||||
text: qsTr("Kunde Hinzufügen")
|
||||
onClicked: contentStack.push("AddCustomer.qml")
|
||||
}
|
||||
}
|
||||
ColumnLayout
|
||||
{
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
Layout.verticalStretchFactor: 1
|
||||
clip: true
|
||||
|
||||
HorizontalHeaderView
|
||||
{
|
||||
id: horizontalHeader
|
||||
|
||||
Layout.fillWidth: true
|
||||
implicitHeight: 40
|
||||
movableColumns: true //@disable-check M16
|
||||
syncView: customerTable
|
||||
|
||||
delegate: Rectangle
|
||||
{
|
||||
Layout.fillWidth: true
|
||||
border.color: addCustomer.palette.base
|
||||
color: addCustomer.palette.alternateBase
|
||||
implicitHeight: 40
|
||||
implicitWidth: 1
|
||||
|
||||
Text
|
||||
{
|
||||
color: addCustomer.palette.text
|
||||
elide: Text.ElideRight
|
||||
height: parent.height
|
||||
horizontalAlignment: Text.AlignHCenter
|
||||
text: model.display
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
width: parent.width
|
||||
}
|
||||
}
|
||||
}
|
||||
TableView {
|
||||
id: customerTable
|
||||
|
||||
property real newWidth: 0
|
||||
|
||||
Layout.fillHeight: true
|
||||
Layout.fillWidth: true
|
||||
alternatingRows: true
|
||||
columnSpacing: 1
|
||||
model: business_model
|
||||
resizableColumns: true
|
||||
rowSpacing: 2
|
||||
selectionBehavior: TableView.SelectRows
|
||||
z: 1
|
||||
|
||||
ScrollBar.vertical: ScrollBar {
|
||||
policy: customerTable.contentHeight > customerTable.height ? ScrollBar.AlwaysOn : ScrollBar.AlwaysOff
|
||||
}
|
||||
delegate: Rectangle {
|
||||
required property bool current
|
||||
required property bool selected
|
||||
|
||||
color: selected ? addCustomer.palette.highlight //palette.highlight
|
||||
: (customerTable.alternatingRows && row % 2 !== 0 ? addCustomer.palette.base // palette.base
|
||||
: addCustomer.palette.alternateBase) //palette.alternateBase)
|
||||
implicitHeight: 25
|
||||
implicitWidth: customerTable.width / customerTable.columns
|
||||
|
||||
Text {
|
||||
color: addCustomer.palette.text
|
||||
elide: Text.ElideRight
|
||||
height: parent.height
|
||||
leftPadding: 9
|
||||
text: model.display == null ? "" : model.display // @disable-check M126
|
||||
verticalAlignment: Text.AlignVCenter
|
||||
width: parent.width
|
||||
}
|
||||
MouseArea {
|
||||
id: mouseArea
|
||||
|
||||
property bool hovered: false
|
||||
|
||||
anchors.fill: parent
|
||||
hoverEnabled: true
|
||||
|
||||
onDoubleClicked: {
|
||||
business_model.onRowClicked(row);
|
||||
contentStack.push("CustomerDetails.qml", {
|
||||
selectedClient: row
|
||||
});
|
||||
}
|
||||
onEntered: {
|
||||
customerTable.selectionModel.select(customerTable.model.index(row, 0), ItemSelectionModel.SelectCurrent | ItemSelectionModel.Rows);
|
||||
}
|
||||
}
|
||||
}
|
||||
selectionModel: ItemSelectionModel {
|
||||
id: selModel
|
||||
|
||||
model: customerTable.model
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
Item {
|
||||
Layout.fillHeight: true
|
||||
}
|
||||
}
|
||||
1
Gui/Customer/qmldir
Normal file
1
Gui/Customer/qmldir
Normal file
@@ -0,0 +1 @@
|
||||
module Customer
|
||||
@@ -1,271 +1,271 @@
|
||||
import QtQuick
|
||||
import QtQuick.Controls
|
||||
import QtQuick.Layouts
|
||||
// import QtQuick
|
||||
// import QtQuick.Controls
|
||||
// import QtQuick.Layouts
|
||||
|
||||
GridLayout
|
||||
{
|
||||
id: customerView
|
||||
columns: 4
|
||||
Layout.fillWidth: true
|
||||
Layout.fillHeight: true
|
||||
rowSpacing: 9
|
||||
property alias businesstxt: firmenName
|
||||
property alias street: streetid
|
||||
property alias postcodetxt: postcode
|
||||
property alias citytxt: city
|
||||
Label
|
||||
{
|
||||
id: lblFirmenName
|
||||
text: qsTr("Firmenname*")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
// GridLayout
|
||||
// {
|
||||
// id: customerView
|
||||
// columns: 4
|
||||
// Layout.fillWidth: true
|
||||
// Layout.fillHeight: true
|
||||
// rowSpacing: 9
|
||||
// property alias businesstxt: firmenName
|
||||
// property alias street: streetid
|
||||
// property alias postcodetxt: postcode
|
||||
// property alias citytxt: city
|
||||
// Label
|
||||
// {
|
||||
// id: lblFirmenName
|
||||
// text: qsTr("Firmenname*")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "business"
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "business"
|
||||
|
||||
id: firmenName
|
||||
Layout.fillWidth: true
|
||||
Layout.alignment: Qt.AlignVCenter
|
||||
onTextChanged: checkFields()
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
// id: firmenName
|
||||
// Layout.fillWidth: true
|
||||
// Layout.alignment: Qt.AlignVCenter
|
||||
// onTextChanged: checkFields()
|
||||
// Layout.columnSpan: 3
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Straße*")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Straße*")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
// }
|
||||
|
||||
TextField
|
||||
{
|
||||
property string name: "street"
|
||||
id: streetid
|
||||
Layout.fillWidth: true
|
||||
onTextChanged: checkFields()
|
||||
}
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "street"
|
||||
// id: streetid
|
||||
// Layout.fillWidth: true
|
||||
// onTextChanged: checkFields()
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Nr.*")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Nr.*")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
// }
|
||||
|
||||
TextField
|
||||
{
|
||||
property string name: "houseno"
|
||||
id: housenoid
|
||||
Layout.fillWidth: true
|
||||
onTextChanged: checkFields()
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([0-9a-zA-Z\-]{1,6})/
|
||||
}
|
||||
}
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "houseno"
|
||||
// id: housenoid
|
||||
// Layout.fillWidth: true
|
||||
// onTextChanged: checkFields()
|
||||
// validator: RegularExpressionValidator
|
||||
// {
|
||||
// regularExpression: /([0-9a-zA-Z\-]{1,6})/
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("PLZ")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("PLZ")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// }
|
||||
|
||||
|
||||
|
||||
|
||||
ComboBox
|
||||
{
|
||||
property string name: "postcode"
|
||||
id: postcode
|
||||
Layout.fillWidth: true
|
||||
editable: true
|
||||
onCurrentTextChanged: checkFields()
|
||||
onEditTextChanged: checkFields()
|
||||
onActivated: currentValue
|
||||
model: address_model
|
||||
textRole: "display"
|
||||
popup.height: 300
|
||||
currentIndex: -1
|
||||
onCurrentIndexChanged: city.currentIndex = postcode.currentIndex
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([0-9]{1,5})/
|
||||
}
|
||||
// ComboBox
|
||||
// {
|
||||
// property string name: "postcode"
|
||||
// id: postcode
|
||||
// Layout.fillWidth: true
|
||||
// editable: true
|
||||
// onCurrentTextChanged: checkFields()
|
||||
// onEditTextChanged: checkFields()
|
||||
// onActivated: currentValue
|
||||
// model: address_model
|
||||
// textRole: "display"
|
||||
// popup.height: 300
|
||||
// currentIndex: -1
|
||||
// onCurrentIndexChanged: city.currentIndex = postcode.currentIndex
|
||||
// Layout.columnSpan: 3
|
||||
// validator: RegularExpressionValidator
|
||||
// {
|
||||
// regularExpression: /([0-9]{1,5})/
|
||||
// }
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Ort")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
ComboBox
|
||||
{
|
||||
property string name: "city"
|
||||
id: city
|
||||
Layout.fillWidth: true
|
||||
editable: true
|
||||
onEditTextChanged: checkFields()
|
||||
onCurrentTextChanged: checkFields()
|
||||
model: address_model
|
||||
textRole: "city"
|
||||
popup.height: 300
|
||||
currentIndex: -1
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Ort")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
// }
|
||||
// ComboBox
|
||||
// {
|
||||
// property string name: "city"
|
||||
// id: city
|
||||
// Layout.fillWidth: true
|
||||
// editable: true
|
||||
// onEditTextChanged: checkFields()
|
||||
// onCurrentTextChanged: checkFields()
|
||||
// model: address_model
|
||||
// textRole: "city"
|
||||
// popup.height: 300
|
||||
// currentIndex: -1
|
||||
// Layout.columnSpan: 3
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Telefon")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "telephone"
|
||||
id: telephone
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Telefon")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "telephone"
|
||||
// id: telephone
|
||||
// Layout.fillWidth: true
|
||||
// Layout.columnSpan: 3
|
||||
// validator: RegularExpressionValidator
|
||||
// {
|
||||
// regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||||
// }
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Mobil")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "cellphone"
|
||||
id: cellphone
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||||
}
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Mobil")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignVCenter
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "cellphone"
|
||||
// id: cellphone
|
||||
// Layout.fillWidth: true
|
||||
// Layout.columnSpan: 3
|
||||
// validator: RegularExpressionValidator
|
||||
// {
|
||||
// regularExpression: /([+0-9]{1})([0-9]{1,17})/
|
||||
// }
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("E-Mail")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "email"
|
||||
id: email
|
||||
Layout.fillWidth: true
|
||||
placeholderText: qsTr("beispiel@domain.de")
|
||||
Layout.columnSpan: 3
|
||||
validator: RegularExpressionValidator
|
||||
{
|
||||
regularExpression: /([\+!#$%&‘\*\–\/\=?\^_`\.{|}\~\-\_0-9A-Za-z]{1,185})@([0-9A-Za-z\.\-\_]{1,64})\.([a-zA-z]{2,5})/
|
||||
}
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("E-Mail")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "email"
|
||||
// id: email
|
||||
// Layout.fillWidth: true
|
||||
// placeholderText: qsTr("beispiel@domain.de")
|
||||
// Layout.columnSpan: 3
|
||||
// validator: RegularExpressionValidator
|
||||
// {
|
||||
// regularExpression: /([\+!#$%&‘\*\–\/\=?\^_`\.{|}\~\-\_0-9A-Za-z]{1,185})@([0-9A-Za-z\.\-\_]{1,64})\.([a-zA-z]{2,5})/
|
||||
// }
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Homepage")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "homepage"
|
||||
id: homepage
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
placeholderText: "www.oschkarischtverhaftetwegensexy.jinx"
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Homepage")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "homepage"
|
||||
// id: homepage
|
||||
// Layout.fillWidth: true
|
||||
// Layout.columnSpan: 3
|
||||
// placeholderText: "www.oschkarischtverhaftetwegensexy.jinx"
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("Geschäftsführer")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "ceo"
|
||||
id: ceo
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Geschäftsführer")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "ceo"
|
||||
// id: ceo
|
||||
// Layout.fillWidth: true
|
||||
// Layout.columnSpan: 3
|
||||
// }
|
||||
|
||||
Label
|
||||
{
|
||||
text: qsTr("USt-IdNr")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
TextField
|
||||
{
|
||||
property string name: "taxno"
|
||||
id: taxno
|
||||
Layout.fillWidth: true
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Typ")
|
||||
Layout.alignment: Qt.AlignRight
|
||||
}
|
||||
ComboBox
|
||||
{
|
||||
property string name: "typeid"
|
||||
id: typeid
|
||||
Layout.fillWidth: true
|
||||
editable: false
|
||||
model: business_type
|
||||
textRole: "display"
|
||||
Layout.columnSpan: 3
|
||||
}
|
||||
Label
|
||||
{
|
||||
text: qsTr("Info")
|
||||
Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
}
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("USt-IdNr")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// }
|
||||
// TextField
|
||||
// {
|
||||
// property string name: "taxno"
|
||||
// id: taxno
|
||||
// Layout.fillWidth: true
|
||||
// Layout.columnSpan: 3
|
||||
// }
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Typ")
|
||||
// Layout.alignment: Qt.AlignRight
|
||||
// }
|
||||
// ComboBox
|
||||
// {
|
||||
// property string name: "typeid"
|
||||
// id: typeid
|
||||
// Layout.fillWidth: true
|
||||
// editable: false
|
||||
// model: business_type
|
||||
// textRole: "display"
|
||||
// Layout.columnSpan: 3
|
||||
// }
|
||||
// Label
|
||||
// {
|
||||
// text: qsTr("Info")
|
||||
// Layout.alignment: Qt.AlignRight | Qt.AlignTop
|
||||
// }
|
||||
|
||||
ScrollView
|
||||
{
|
||||
id: infoView
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredHeight: 100
|
||||
Layout.columnSpan: 3
|
||||
ScrollBar.horizontal: ScrollBar
|
||||
{
|
||||
policy: ScrollBar.AlwaysOn
|
||||
}
|
||||
// ScrollView
|
||||
// {
|
||||
// id: infoView
|
||||
// Layout.fillWidth: true
|
||||
// Layout.preferredHeight: 100
|
||||
// Layout.columnSpan: 3
|
||||
// ScrollBar.horizontal: ScrollBar
|
||||
// {
|
||||
// policy: ScrollBar.AlwaysOn
|
||||
// }
|
||||
|
||||
TextArea
|
||||
{
|
||||
property string name: "customerinfo"
|
||||
id: customerInfo
|
||||
implicitWidth: parent.width
|
||||
wrapMode: TextEdit.Wrap
|
||||
background: Rectangle
|
||||
{
|
||||
color: customerInfo.palette.base
|
||||
border.color: customerInfo.activeFocus? customerInfo.palette.highlight: customerInfo.palette.base
|
||||
}
|
||||
}
|
||||
}
|
||||
function checkBusinessField()
|
||||
{
|
||||
if (!firmenName.text.trim() || !streetid.text.trim())
|
||||
{
|
||||
return false
|
||||
// TextArea
|
||||
// {
|
||||
// property string name: "customerinfo"
|
||||
// id: customerInfo
|
||||
// implicitWidth: parent.width
|
||||
// wrapMode: TextEdit.Wrap
|
||||
// background: Rectangle
|
||||
// {
|
||||
// color: customerInfo.palette.base
|
||||
// border.color: customerInfo.activeFocus? customerInfo.palette.highlight: customerInfo.palette.base
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// function checkBusinessField()
|
||||
// {
|
||||
// if (!firmenName.text.trim() || !streetid.text.trim())
|
||||
// {
|
||||
// return false
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
if (!postcode.editText.trim() || !postcode.currentText || !city.editText.trim() || !city.currentText)
|
||||
return false
|
||||
else
|
||||
return true
|
||||
}
|
||||
// }
|
||||
// else
|
||||
// {
|
||||
// if (!postcode.editText.trim() || !postcode.currentText || !city.editText.trim() || !city.currentText)
|
||||
// return false
|
||||
// else
|
||||
// return true
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
// }
|
||||
// }
|
||||
|
||||
@@ -31,7 +31,7 @@ ColumnLayout {
|
||||
BarButton {
|
||||
ButtonGroup.group: mainNav
|
||||
icon.source: "qrc:/images/UserGroup-Outline.svg"
|
||||
target: "/Gui/CustomersTable.qml"
|
||||
target: "/Gui/Customer/CustomersTable.qml"
|
||||
text: qsTr("Kunden")
|
||||
visible: !onSubPage
|
||||
}
|
||||
|
||||
@@ -18,13 +18,13 @@ ApplicationWindow {
|
||||
}
|
||||
|
||||
font: Typography.body
|
||||
height: Screen.height * .85
|
||||
height: Screen.desktopAvailableHeight
|
||||
palette.window: Colors.mantle
|
||||
palette.placeholderText: Colors.interactive
|
||||
palette.text: Colors.foreground
|
||||
title: "TERO Personal"
|
||||
visible: true
|
||||
width: Screen.width * .75
|
||||
width: Screen.desktopAvailableWidth
|
||||
|
||||
Component.onCompleted: {
|
||||
systray.activated.connect(showWindow);
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
module gui
|
||||
Navigation 1.0 Navigation.qml
|
||||
AddContact 1.0 AddContact.qml
|
||||
|
||||
@@ -19,12 +19,16 @@ class AddressModel(QAbstractListModel):
|
||||
elif role == PyqcrmDataRoles.CITY_ROLE:
|
||||
data = self.__address_data[row][4]
|
||||
return data
|
||||
elif role == PyqcrmDataRoles.COUNTRY_ROLE:
|
||||
data = self.__address_data[row][3]
|
||||
return data
|
||||
return None
|
||||
|
||||
def roleNames(self):
|
||||
return {
|
||||
Qt.DisplayRole: b"display",
|
||||
PyqcrmDataRoles.CITY_ROLE: b"city",
|
||||
PyqcrmDataRoles.COUNTRY_ROLE: b"country"
|
||||
}
|
||||
|
||||
def setData(self):
|
||||
|
||||
@@ -6,5 +6,6 @@ from enum import IntEnum
|
||||
class PyqcrmDataRoles(IntEnum):
|
||||
CITY_ROLE = Qt.UserRole + 100
|
||||
STREET_IN_POSTCODE = CITY_ROLE + 1
|
||||
COUNTRY_ROLE = CITY_ROLE + 100
|
||||
|
||||
|
||||
|
||||
1
main.py
1
main.py
@@ -22,6 +22,7 @@ from lib.Printers import Printers
|
||||
|
||||
os.environ['QML_XHR_ALLOW_FILE_READ'] = '1'
|
||||
|
||||
|
||||
# [pyqcrm]
|
||||
# program-name=""
|
||||
# version=
|
||||
|
||||
180
pyqcrm.pyproject.user.6c31db7
Normal file
180
pyqcrm.pyproject.user.6c31db7
Normal file
@@ -0,0 +1,180 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE QtCreatorProject>
|
||||
<!-- Written by QtCreator 15.0.0, 2025-02-05T15:48:35. -->
|
||||
<qtcreator>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
<value type="QByteArray">{6c31db7b-2c94-4111-b0dc-25005cece3f8}</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.ActiveTarget</variable>
|
||||
<value type="qlonglong">0</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.EditorSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
|
||||
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
|
||||
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
|
||||
<value type="QString" key="language">Cpp</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
|
||||
<value type="QString" key="language">QmlJS</value>
|
||||
<valuemap type="QVariantMap" key="value">
|
||||
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
|
||||
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
|
||||
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.IndentSize">4</value>
|
||||
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
|
||||
<value type="int" key="EditorConfiguration.LineEndingBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
|
||||
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
|
||||
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
|
||||
<value type="int" key="EditorConfiguration.PreferAfterWhitespaceComments">0</value>
|
||||
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
|
||||
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
|
||||
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
|
||||
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">2</value>
|
||||
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
|
||||
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
|
||||
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
|
||||
<value type="int" key="EditorConfiguration.TabSize">8</value>
|
||||
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
|
||||
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
|
||||
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
|
||||
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
|
||||
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
|
||||
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
|
||||
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
|
||||
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
|
||||
<value type="bool" key="EditorConfiguration.tintMarginArea">true</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.PluginSettings</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
|
||||
<value type="bool" key="AutoTest.Framework.Boost">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.CTest">false</value>
|
||||
<value type="bool" key="AutoTest.Framework.Catch">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.GTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
|
||||
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
|
||||
</valuemap>
|
||||
<value type="bool" key="AutoTest.ApplyFilter">false</value>
|
||||
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
|
||||
<valuelist type="QVariantList" key="AutoTest.PathFilters"/>
|
||||
<value type="int" key="AutoTest.RunAfterBuild">0</value>
|
||||
<value type="bool" key="AutoTest.UseGlobal">true</value>
|
||||
<valuemap type="QVariantMap" key="ClangTools">
|
||||
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
|
||||
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
|
||||
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
|
||||
<value type="int" key="ClangTools.ParallelJobs">4</value>
|
||||
<value type="bool" key="ClangTools.PreferConfigFile">true</value>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
|
||||
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
|
||||
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
|
||||
</valuemap>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Python 3.13.1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Python 3.13.1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{bd928902-6673-464d-b976-4a1ba0e13d34}</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/dstoppek/anaconda3/envs/pyqcrm</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Python.PysideBuildStep</value>
|
||||
<value type="QString" key="Python.PySideProjectTool">/home/dstoppek/anaconda3/envs/pyqcrm/bin/pyside6-project</value>
|
||||
<value type="QString" key="Python.PySideUic">/home/dstoppek/anaconda3/envs/pyqcrm/bin/pyside6-uic</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Erstellen</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Erstellen</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Bereinigen</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Bereinigen</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Python 3.13.1 virtuelle Umgebung</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Python.PySideBuildConfiguration</value>
|
||||
<value type="QString" key="python">/home/dstoppek/anaconda3/envs/pyqcrm/bin/python</value>
|
||||
<value type="QString" key="venv">/home/dstoppek/anaconda3/envs/pyqcrm</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deployment</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deployment</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
|
||||
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
|
||||
<value type="int" key="Analyzer.Valgrind.Callgrind.CostFormat">0</value>
|
||||
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
|
||||
<value type="bool" key="PE.EnvironmentAspect.PrintOnRun">false</value>
|
||||
<value type="QString" key="PerfRecordArgsId">-e cpu-cycles --call-graph dwarf,4096 -F 250</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">main.py</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">PythonEditor.RunConfiguration.</value>
|
||||
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/home/dstoppek/Coden/Projekte/pyqcrm/main.py</value>
|
||||
<value type="bool" key="ProjectExplorer.RunConfiguration.Customized">false</value>
|
||||
<value type="QString" key="PythonEditor.RunConfiguation.Script">/home/dstoppek/Coden/Projekte/pyqcrm/main.py</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
|
||||
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
|
||||
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/dstoppek/Coden/Projekte/pyqcrm</value>
|
||||
<value type="QString" key="RunConfiguration.X11Forwarding">:0</value>
|
||||
</valuemap>
|
||||
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="qlonglong">1</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
<data>
|
||||
<variable>Version</variable>
|
||||
<value type="int">22</value>
|
||||
</data>
|
||||
</qtcreator>
|
||||
8
qml.qrc
8
qml.qrc
@@ -74,7 +74,13 @@
|
||||
<file>Js/qmldir</file>
|
||||
<file>Js/JsLib.js</file>
|
||||
<file>Js/qmldict.js</file>
|
||||
<file>TeroStyle/pushtest.qml</file>
|
||||
<file>Gui/Customer/AddCustomer.qml</file>
|
||||
<file>Gui/Customer/CustomerContactDetails.qml</file>
|
||||
<file>Gui/Customer/CustomerDetails.qml</file>
|
||||
<file>Gui/Customer/CustomerDetailsView.qml</file>
|
||||
<file>Gui/Customer/CustomersTable.qml</file>
|
||||
<file>Gui/Customer/CustomerView.qml</file>
|
||||
<file>Gui/Customer/qmldir</file>
|
||||
</qresource>
|
||||
<qresource prefix="/TeroStyle"/>
|
||||
</RCC>
|
||||
|
||||
@@ -7,3 +7,5 @@ mariadb
|
||||
soundfile
|
||||
sounddevice
|
||||
reportlab
|
||||
tomlkit
|
||||
bcrypt
|
||||
|
||||
Reference in New Issue
Block a user