COnfiguration and systray

This commit is contained in:
2025-03-07 11:58:19 +01:00
parent fb81b764f1
commit 821da47f98
11 changed files with 248 additions and 30 deletions

View File

@@ -2,16 +2,113 @@ import QtQuick
import QtQuick.Layouts
import QtQuick.Controls
Item
ColumnLayout
{
property string name: "company"
property alias name: companyName
property alias street: street
property alias house: houseno
property alias zipcode: zipcode
property alias city: city
anchors.fill: parent
anchors.topMargin: 50
Label
RowLayout
{
text: qsTr("Das Unternehmen")
anchors.centerIn: parent
font.pixelSize: 57
font.bold: true
Layout.fillWidth: true
Label
{
text: qsTr("Namen")
// font.pixelSize: 57
// font.bold: true
}
TextField
{
id: companyName
Layout.fillWidth: true
}
}
RowLayout
{
Layout.fillWidth: true
Label
{
text: qsTr("Straße")
// font.pixelSize: 57
// font.bold: true
}
TextField
{
id: street
Layout.fillWidth: true
}
Label
{
text: qsTr("Haus-Nr.")
// font.pixelSize: 57
// font.bold: true
}
TextField
{
id: houseno
Layout.fillWidth: true
}
}
RowLayout
{
Layout.fillWidth: true
Label
{
text: qsTr("PLZ")
// font.pixelSize: 57
// font.bold: true
}
ComboBox
{
id: zipcode
Layout.fillWidth: true
editable: true
model: address_model
textRole: "display"
popup.height: 300
popup.y: zipcode.y + 5 - (zipcode.height * 2)
//currentIndex: -1
onCurrentIndexChanged: city.currentIndex = zipcode.currentIndex
validator: RegularExpressionValidator
{
regularExpression: /([0-9]{1,5})/
}
}
Label
{
text: qsTr("Stadt")
// font.pixelSize: 57
// font.bold: true
}
ComboBox
{
id: city
Layout.fillWidth: true
editable: true
model: address_model
textRole: "city"
popup.height: 300
popup.y: zipcode.y + 5 - (zipcode.height * 2)
currentIndex: -1
}
}
Item
{
Layout.fillHeight: true
}
}

22
Gui/MiscConf.qml Executable file
View File

@@ -0,0 +1,22 @@
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
ColumnLayout
{
property alias sysTray: sysTray
anchors.fill: parent
anchors.topMargin: 35
Switch
{
id: sysTray
text: qsTr("Beim minimieren, in der Taskleiste anzeigen")
checked: config.systray()
}
Item
{
Layout.fillHeight: true
}
}

View File

@@ -15,7 +15,7 @@ GridLayout
ComboBox
{
property string name: "contacttype"
//property string name: "contacttype"
id: contacttype
Layout.fillWidth: true
editable: false
@@ -150,6 +150,7 @@ GridLayout
{
contacts[num_contacts] = {}
contacts[num_contacts]["title"] = title.currentText
contacts[num_contacts]["ctype"] = contacttype.currentText
contacts[num_contacts]["fname"] = firstname.text.trim()
contacts[num_contacts]["lname"] = lastname.text.trim()
contacts[num_contacts]["phone"] = phonenumber.text.trim()
@@ -261,7 +262,7 @@ GridLayout
id: mainRect
Layout.fillWidth: true
implicitHeight: 100
color: "salmon" // firstname.palette.base
color: firstname.palette.base
border.color: firstname.activeFocus? firstname.palette.highlight: firstname.palette.base
clip: true
@@ -310,32 +311,32 @@ GridLayout
//spacing: 3
Text
{
text: qsTr('Name: ') + model.name
text: '<b>' + qsTr('Name: ') + '</b>' + model.name
horizontalAlignment: Text.AlignLeft
color: "white"
}
Text
{
text: qsTr('Telefon: ') + model.phone
text: '<b>' + qsTr('Telefon: ') + '</b>' + model.phone
horizontalAlignment: Text.AlignLeft
color: "white"
}
Text
{
text: qsTr('Handy: ') + model.mobile
text: '<b>' + qsTr('Handy: ') + '</b>' + model.mobile
horizontalAlignment: Text.AlignLeft
color: "white"
}
Text
{
text: qsTr('Position: ') + model.posizion
text: '<b>' + qsTr('Position: ') + '</b>' + model.posizion
horizontalAlignment: Text.AlignLeft
color: "white"
}
Text
{
text: qsTr('Typ: ') + model.cdata
text: '<b>' + qsTr('Typ: ') + '</b>' + model.cdata
horizontalAlignment: Text.AlignLeft
color: "white"
}

View File

@@ -4,6 +4,8 @@ import QtQuick.Layouts
Item
{
property alias companyConf: companyConf
property alias miscConf: miscConf
anchors.fill: parent
TabBar
{
@@ -27,6 +29,10 @@ Item
text: qsTr("Sicherung")
}
TabButton
{
text: qsTr("Sonstiges")
}
}
StackLayout
@@ -72,6 +78,15 @@ Item
}
}
Item
{
id: miscelanea
MiscConf
{
id: miscConf
anchors.fill: parent
}
}
}
RowLayout
@@ -101,7 +116,10 @@ Item
break
case 2:
console.log("Need to update company's info.")
updateCompanyInfo()
break
case 4:
updateMiscConf()
break
default:
console.log("Need to handle users")
@@ -109,4 +127,28 @@ Item
}
}
}
function updateCompanyInfo()
{
var company = {}
company['company'] = {}
company['company']['NAME'] = companyConf.name.text.trim()
company['company']['STREET'] = companyConf.street.text.trim()
company['company']['HOUSE'] = companyConf.house.text.trim()
company['company']['ZIPCODE'] = companyConf.zipcode.editText? companyConf.zipcode.editText.trim(): companyConf.zipcode.currentText
company['company']['CITY'] = companyConf.city.editText? companyConf.city.editText.trim(): companyConf.city.currentText
if (company['company']['NAME'] === '' || company['company']['STREET'] === '' ||
company['company']['HOUSE'] === '' || company['company']['ZIPCODE'] === '' ||
company['company']['CITY'] === '');
else config.saveCompanyInfo(company)
}
function updateMiscConf()
{
var misc = {}
misc['misc'] = {}
misc['misc']['SYSTRAY'] = miscConf.sysTray.checked
config.saveMiscConf(misc)
}
}

View File

@@ -62,19 +62,6 @@ ApplicationWindow
property alias window: appWindow
}
Component.onCompleted:
{
if(bad_config)
{
importDialog.open()
}
else
{
if (db_con) appLoader.source= "LoginScreen.qml"
else appLoader.source= "NoDbConnection.qml"
}
}
Dialog
{
id: importDialog
@@ -127,4 +114,43 @@ ApplicationWindow
}
}
}
Component.onCompleted:
{
systray.activated.connect(showWindow)
if(bad_config)
{
importDialog.open()
}
else
{
if (db_con) appLoader.source= "LoginScreen.qml"
else appLoader.source= "NoDbConnection.qml"
}
}
function showWindow(why)
{
if (why === 3)
{
systray.setVisible(false)
appWindow.show()
}
}
onVisibilityChanged:
{
if (appWindow.visibility === Window.Minimized && config.systray())
{
systray.setVisible(true)
appWindow.hide()
}
}
onClosing: (close) =>
{
if (false)
{
console.log("Main window closed!! Was soll ich tun? kann ich mich beenden?!")
}
}
}