Files
pyqcrm/main.py

104 lines
3.1 KiB
Python

# # !/home/linuxero/proj/tero/pyqcrm/.qtcreator/venv-3.13.1/bin/python3
import os
import sys
import logging
from PySide6.QtGui import QGuiApplication
from PySide6.QtQml import QQmlApplicationEngine
#from PySide6.QtCore import QResource
from lib.ConfigLoader import ConfigLoader
from lib.DB.BusinessModel import BusinessModel
import rc_pyqcrm
import rc_qml
from lib.DB.DbManager import DbManager
from lib.DB.UserManager import UserManager
from lib.DB.AddressModel import AddressModel
from lib.DB.BTypeModel import BTypeModel
from lib.DB.ContactModel import ContactModel
from lib.DB.EmployeeModel import EmployeeModel
from lib.Printers import Printers
os.environ['QML_XHR_ALLOW_FILE_READ'] = '1'
# [pyqcrm]
# program-name=""
# version=
# [database]
# server=""
# port=
# user=""
# password=""
# name=""
# type=""
bad_config = False
db_con = False
address_model = None
business_model = None
business_type = None
contact_model = None
employee_model = None
printers = None
user = None
def initializeProgram():
#print(f"In {__file__} file, initializeProgram()")
global address_model, bad_config, business_model, user, business_type, contact_model, employee_model, db_con, printers
if not bad_config:
dbconf = config.getConfig()['database']
DbManager(dbconf)
printers = Printers()
if DbManager().getConnection():
db_con = True
user = UserManager()
business_model = BusinessModel()
address_model = AddressModel()
business_type = BTypeModel()
contact_model = ContactModel()
employee_model = EmployeeModel()
publishContext()
bad_config = False
def publishContext():
# print(f"In {__file__} file, publishContext()")
global engine, address_model, bad_config, business_model, user, business_type, contact_model, employee_model, printers
engine.rootContext().setContextProperty("loggedin_user", user)
engine.rootContext().setContextProperty("business_model", business_model)
engine.rootContext().setContextProperty("address_model", address_model)
engine.rootContext().setContextProperty("business_type", business_type)
engine.rootContext().setContextProperty("contact_model", contact_model)
engine.rootContext().setContextProperty("employee_model", employee_model)
if __name__ == "__main__":
#QResource.registerResource("rc_qml.py")
app = QGuiApplication(sys.argv)
engine = QQmlApplicationEngine()
engine.addImportPath("qrc:/");
# qml_file = Path(__file__).resolve().parent / "Gui/main.qml"
qml_file = "qrc:/Gui/main.qml"
config = ConfigLoader()
if not config.getConfig():
bad_config = True
config.configurationReady.connect(initializeProgram)
else:
initializeProgram()
engine.rootContext().setContextProperty("sys_printers", printers)
engine.rootContext().setContextProperty("bad_config", bad_config) # print(f"Fehler: {i}")
engine.rootContext().setContextProperty("db_con", db_con)
engine.rootContext().setContextProperty("config", config)
engine.load(qml_file)
if not engine.rootObjects():
sys.exit(-1)
sys.exit(app.exec())