--- a/src/MainWindow.cpp Sun Mar 27 20:38:25 2022 +0200 +++ b/src/MainWindow.cpp Sun Mar 27 22:03:18 2022 +0200 @@ -31,6 +31,7 @@ #include "Setup.h" #include "PrinterDialog.h" #include "../ui/ui_MainWindow.h" +#include "database/database.h" #include "config.h" #include <QApplication> @@ -43,22 +44,162 @@ #include <QtWidgets/QPushButton> -MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) +MainWindow::MainWindow(bool useDevelopOption, bool startConfigOption, QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow) { - qDebug() << Q_FUNC_INFO; + qDebug() << Q_FUNC_INFO << useDevelopOption << startConfigOption; ui->setupUi(this); + setWindowTitle( QString("BMSapp - %1").arg(VERSIONSTRING) ); - setWindowTitle( QString("BMSapp - %1").arg(VERSIONSTRING) ); + readsettings(); + db = new DataBase(); + db->openDataBase(useDevelopOption); } MainWindow::~MainWindow() { qDebug() << Q_FUNC_INFO; + + writesettings(); + db->closeDataBase(); delete ui; } +void MainWindow::readsettings() +{ + QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp"); + + settings.beginGroup("dbprod"); + dbProd.host = settings.value("host").toString(); + if (dbProd.host.isEmpty()) { + dbProd.host = "localhost"; + dbProd.port = "3306"; + dbProd.name = "bms_prod"; + dbProd.user = "nobody"; + dbProd.pass = "secret"; + dbProd.charset = "utf8"; + settings.setValue("host", dbProd.host); + settings.setValue("port", dbProd.port); + settings.setValue("name", dbProd.name); + settings.setValue("user", dbProd.user); + settings.setValue("pass", dbProd.pass); + settings.setValue("charset", dbProd.charset); + } else { + dbProd.port = settings.value("port").toString(); + dbProd.name = settings.value("name").toString(); + dbProd.user = settings.value("user").toString(); + dbProd.pass = settings.value("pass").toString(); + dbProd.charset = settings.value("charset").toString(); + } + settings.endGroup(); + qDebug() << "MySQL prod" << dbProd.host << dbProd.port << dbProd.name << dbProd.pass; + + settings.beginGroup("dbdev"); + dbDev.host = settings.value("host").toString(); + if (dbDev.host.isEmpty()) { + dbDev.host = "localhost"; + dbDev.port = "3306"; + dbDev.name = "bms_dev"; + dbDev.user = "nobody"; + dbDev.pass = "secret"; + dbDev.charset = "utf8"; + settings.setValue("host", dbDev.host); + settings.setValue("port", dbDev.port); + settings.setValue("name", dbDev.name); + settings.setValue("user", dbDev.user); + settings.setValue("pass", dbDev.pass); + settings.setValue("charset", dbDev.charset); + } else { + dbDev.port = settings.value("port").toString(); + dbDev.name = settings.value("name").toString(); + dbDev.user = settings.value("user").toString(); + dbDev.pass = settings.value("pass").toString(); + dbDev.charset = settings.value("charset").toString(); + } + settings.endGroup(); + qDebug() << "MySQL dev" << dbDev.host << dbDev.port << dbDev.name << dbDev.pass; + + settings.beginGroup("mqttprod"); + mqttProd.host = settings.value("host").toString(); + if (mqttProd.host.isEmpty()) { + mqttProd.host = "localhost"; + mqttProd.port = "1883"; + mqttProd.user = "nobody"; + mqttProd.pass = "secret"; + settings.setValue("host", mqttProd.host); + settings.setValue("port", mqttProd.port); + settings.setValue("user", mqttProd.user); + settings.setValue("pass", mqttProd.pass); + } else { + mqttProd.port = settings.value("port").toString(); + mqttProd.user = settings.value("user").toString(); + mqttProd.pass = settings.value("pass").toString(); + } + settings.endGroup(); + qDebug() << "MQTT prod" << mqttProd.host << mqttProd.port << mqttProd.user << mqttProd.pass; + + settings.beginGroup("mqttdev"); + mqttDev.host = settings.value("host").toString(); + if (mqttDev.host.isEmpty()) { + mqttDev.host = "localhost"; + mqttDev.port = "1883"; + mqttDev.user = "nobody"; + mqttDev.pass = "secret"; + settings.setValue("host", mqttDev.host); + settings.setValue("port", mqttDev.port); + settings.setValue("user", mqttDev.user); + settings.setValue("pass", mqttDev.pass); + } else { + mqttDev.port = settings.value("port").toString(); + mqttDev.user = settings.value("user").toString(); + mqttDev.pass = settings.value("pass").toString(); + } + settings.endGroup(); + qDebug() << "MQTT dev" << mqttDev.host << mqttDev.port << mqttDev.user << mqttDev.pass; +} + + +void MainWindow::writesettings() +{ + QSettings settings(QSettings::IniFormat, QSettings::UserScope, "mbse", "bmsapp"); + + settings.beginGroup("dbprod"); + settings.setValue("host", dbProd.host); + settings.setValue("port", dbProd.port); + settings.setValue("name", dbProd.name); + settings.setValue("user", dbProd.user); + settings.setValue("pass", dbProd.pass); + settings.setValue("charset", dbProd.charset); + settings.endGroup(); + + settings.beginGroup("dbdev"); + settings.setValue("host", dbDev.host); + settings.setValue("port", dbDev.port); + settings.setValue("name", dbDev.name); + settings.setValue("user", dbDev.user); + settings.setValue("pass", dbDev.pass); + settings.setValue("charset", dbDev.charset); + settings.endGroup(); + + settings.beginGroup("mqttprod"); + settings.setValue("host", mqttProd.host); + settings.setValue("port", mqttProd.port); + settings.setValue("user", mqttProd.user); + settings.setValue("pass", mqttProd.pass); + settings.endGroup(); + + settings.beginGroup("mqttdev"); + settings.setValue("host", mqttDev.host); + settings.setValue("port", mqttDev.port); + settings.setValue("user", mqttDev.user); + settings.setValue("pass", mqttDev.pass); + settings.endGroup(); + + qDebug() << "writesettings() done."; +} + + void MainWindow::on_actionExit_triggered() { qDebug() << Q_FUNC_INFO;