src/MainWindow.cpp

changeset 90
2396457a8167
parent 88
64cf5468fd22
child 91
409d9c7214be
--- 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;

mercurial