Moved functions from bmsapp.cpp to MainWindow.cpp

Sun, 27 Mar 2022 22:03:18 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 27 Mar 2022 22:03:18 +0200
changeset 90
2396457a8167
parent 89
231a0b1292f3
child 91
409d9c7214be

Moved functions from bmsapp.cpp to MainWindow.cpp

CMakeLists.txt file | annotate | diff | comparison | revisions
src/EditEquipment.cpp file | annotate | diff | comparison | revisions
src/EditFermentable.cpp file | annotate | diff | comparison | revisions
src/EditHop.cpp file | annotate | diff | comparison | revisions
src/EditMisc.cpp file | annotate | diff | comparison | revisions
src/EditProfileFerment.cpp file | annotate | diff | comparison | revisions
src/EditProfileMash.cpp file | annotate | diff | comparison | revisions
src/EditProfileStyle.cpp file | annotate | diff | comparison | revisions
src/EditProfileWater.cpp file | annotate | diff | comparison | revisions
src/EditSupplier.cpp file | annotate | diff | comparison | revisions
src/EditWater.cpp file | annotate | diff | comparison | revisions
src/EditYeast.cpp file | annotate | diff | comparison | revisions
src/InventoryEquipments.cpp file | annotate | diff | comparison | revisions
src/InventoryFermentables.cpp file | annotate | diff | comparison | revisions
src/InventoryHops.cpp file | annotate | diff | comparison | revisions
src/InventoryMiscs.cpp file | annotate | diff | comparison | revisions
src/InventorySuppliers.cpp file | annotate | diff | comparison | revisions
src/InventoryWaters.cpp file | annotate | diff | comparison | revisions
src/InventoryYeasts.cpp file | annotate | diff | comparison | revisions
src/MainWindow.cpp file | annotate | diff | comparison | revisions
src/MainWindow.h file | annotate | diff | comparison | revisions
src/PrinterDialog.cpp file | annotate | diff | comparison | revisions
src/ProfileFerments.cpp file | annotate | diff | comparison | revisions
src/ProfileMashs.cpp file | annotate | diff | comparison | revisions
src/ProfileStyles.cpp file | annotate | diff | comparison | revisions
src/ProfileWaters.cpp file | annotate | diff | comparison | revisions
src/RecipesTree.cpp file | annotate | diff | comparison | revisions
src/Setup.cpp file | annotate | diff | comparison | revisions
src/bmsapp.cpp file | annotate | diff | comparison | revisions
src/bmsapp.h file | annotate | diff | comparison | revisions
src/main.cpp file | annotate | diff | comparison | revisions
--- a/CMakeLists.txt	Sun Mar 27 20:38:25 2022 +0200
+++ b/CMakeLists.txt	Sun Mar 27 22:03:18 2022 +0200
@@ -81,7 +81,6 @@
 
 set( SRCS
     ${SRCDIR}/main.cpp
-    ${SRCDIR}/bmsapp.cpp
     ${SRCDIR}/RecipesTree.cpp
     ${SRCDIR}/AboutDialog.cpp
     ${SRCDIR}/InventorySuppliers.cpp
@@ -115,7 +114,6 @@
 )
 
 set( HDRS
-    ${SRCDIR}/bmsapp.h
     ${SRCDIR}/RecipesTree.h
     ${SRCDIR}/AboutDialog.h
     ${SRCDIR}/InventorySuppliers.h
--- a/src/EditEquipment.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditEquipment.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditEquipment.h"
 #include "../ui/ui_EditEquipment.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditEquipment::EditEquipment(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditEquipment)
--- a/src/EditFermentable.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditFermentable.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,8 @@
  */
 #include "EditFermentable.h"
 #include "../ui/ui_EditFermentable.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
+#include "Utils.h"
 
 
 EditFermentable::EditFermentable(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditFermentable)
--- a/src/EditHop.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditHop.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditHop.h"
 #include "../ui/ui_EditHop.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditHop::EditHop(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditHop)
--- a/src/EditMisc.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditMisc.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditMisc.h"
 #include "../ui/ui_EditMisc.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditMisc::EditMisc(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditMisc)
--- a/src/EditProfileFerment.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditProfileFerment.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,8 @@
  */
 #include "EditProfileFerment.h"
 #include "../ui/ui_EditProfileFerment.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
+#include "Utils.h"
 
 
 EditProfileFerment::EditProfileFerment(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditProfileFerment)
--- a/src/EditProfileMash.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditProfileMash.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditProfileMash.h"
 #include "../ui/ui_EditProfileMash.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditProfileMash::EditProfileMash(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditProfileMash)
--- a/src/EditProfileStyle.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditProfileStyle.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditProfileStyle.h"
 #include "../ui/ui_EditProfileStyle.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditProfileStyle::EditProfileStyle(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditProfileStyle)
--- a/src/EditProfileWater.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditProfileWater.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditProfileWater.h"
 #include "../ui/ui_EditProfileWater.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditProfileWater::EditProfileWater(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditProfileWater)
--- a/src/EditSupplier.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditSupplier.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditSupplier.h"
 #include "../ui/ui_EditSupplier.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditSupplier::EditSupplier(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditSupplier)
--- a/src/EditWater.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditWater.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditWater.h"
 #include "../ui/ui_EditWater.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditWater::EditWater(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditWater)
--- a/src/EditYeast.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/EditYeast.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "EditYeast.h"
 #include "../ui/ui_EditYeast.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 EditYeast::EditYeast(int id, QWidget *parent) : QDialog(parent), ui(new Ui::EditYeast)
--- a/src/InventoryEquipments.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventoryEquipments.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditEquipment.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 InventoryEquipments::InventoryEquipments(QWidget *parent) : QDialog(parent)
--- a/src/InventoryFermentables.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventoryFermentables.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,7 @@
 #include "EditFermentable.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
+#include "Utils.h"
 
 
 InventoryFermentables::InventoryFermentables(QWidget *parent) : QDialog(parent)
--- a/src/InventoryHops.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventoryHops.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditHop.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 InventoryHops::InventoryHops(QWidget *parent) : QDialog(parent)
--- a/src/InventoryMiscs.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventoryMiscs.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditMisc.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 InventoryMiscs::InventoryMiscs(QWidget *parent) : QDialog(parent)
--- a/src/InventorySuppliers.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventorySuppliers.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditSupplier.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 
--- a/src/InventoryWaters.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventoryWaters.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditWater.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 InventoryWaters::InventoryWaters(QWidget *parent) : QDialog(parent)
--- a/src/InventoryYeasts.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/InventoryYeasts.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditYeast.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 InventoryYeasts::InventoryYeasts(QWidget *parent) : QDialog(parent)
--- 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;
--- a/src/MainWindow.h	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/MainWindow.h	Sun Mar 27 22:03:18 2022 +0200
@@ -19,6 +19,65 @@
 #include <QStandardItemModel>
 #include <QMenu>
 #include <QToolButton>
+#include <QApplication>
+#include <QDateTime>
+#include <QDebug>
+#include <QDir>
+// #include <QDomDocument>
+#include <QFile>
+#include <QList>
+#include <QMetaProperty>
+#include <QObject>
+#include <QSettings>
+#include <QString>
+#include <QTextStream>
+#include <QTranslator>
+#include <QtSql>
+#include <QUuid>
+#include <QStyle>
+#include <QPlainTextEdit>
+#include <QMessageBox>
+#include <QLabel>
+#include <QImage>
+#include <QImageReader>
+#include <QImageWriter>
+#include <QColorSpace>
+#include <QGraphicsView>
+#include <QFileDialog>
+#include <QXmlStreamReader>
+#include <QXmlStreamWriter>
+#include <QJsonArray>
+#include <QJsonDocument>
+#include <QJsonObject>
+#include <QMap>
+#include <QPrinter>
+#include <QWidget>
+
+
+typedef struct IniMySQL
+{
+    QString host;               ///< MySQL host
+    QString port;               ///< MySQL port
+    QString name;               ///< MySQL database
+    QString user;               ///< MySQL username
+    QString pass;               ///< MySQL password
+    QString charset;            ///< MySQL character encoding
+} IniMySQL;
+
+static IniMySQL dbProd;
+static IniMySQL dbDev;
+
+typedef struct IniMQTT
+{
+    QString host;               ///< MQTT host
+    QString port;               ///< MQTT port
+    QString user;               ///< MQTT username
+    QString pass;               ///< MQTT password
+} IniMQTT;
+
+static IniMQTT mqttProd;
+static IniMQTT mqttDev;
+
 
 namespace Ui {
 class MainWindow;
@@ -29,7 +88,7 @@
     Q_OBJECT
 
 public:
-    explicit MainWindow(QWidget *parent = 0);
+    explicit MainWindow(bool useDevelopOption, bool startConfigOption, QWidget *parent = 0);
     ~MainWindow();
 
     // Keep pointers to new windows.
@@ -85,6 +144,16 @@
 
 private:
     Ui::MainWindow *ui;
+
+    /**
+     * @brief Read user settings for the MySQL connection.
+     */
+    void readsettings();
+
+    /**
+     * @brief Write or update the user settings for the MySQL connection.
+     */
+    void writesettings();
 };
 
 #endif
--- a/src/PrinterDialog.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/PrinterDialog.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,9 +16,10 @@
  */
 #include "PrinterDialog.h"
 #include "config.h"
-#include "bmsapp.h"
 
 #include <QPrintPreviewDialog>
+#include <QDebug>
+#include <QtSql>
 
 
 PrinterDialog::PrinterDialog(int job, int rec, QWidget* parent) : QDialog(parent)
--- a/src/ProfileFerments.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/ProfileFerments.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,7 @@
 #include "EditProfileFerment.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
+#include "Utils.h"
 
 
 ProfileFerments::ProfileFerments(QWidget *parent) : QDialog(parent)
--- a/src/ProfileMashs.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/ProfileMashs.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditProfileMash.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 ProfileMashs::ProfileMashs(QWidget *parent) : QDialog(parent)
--- a/src/ProfileStyles.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/ProfileStyles.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditProfileStyle.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 ProfileStyles::ProfileStyles(QWidget *parent) : QDialog(parent)
--- a/src/ProfileWaters.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/ProfileWaters.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -18,7 +18,6 @@
 #include "EditProfileWater.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 ProfileWaters::ProfileWaters(QWidget *parent) : QDialog(parent)
--- a/src/RecipesTree.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/RecipesTree.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -15,10 +15,8 @@
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
  */
 #include "RecipesTree.h"
-//#include "EditMisc.h"
 #include "MainWindow.h"
 #include "config.h"
-#include "bmsapp.h"
 
 
 
--- a/src/Setup.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/Setup.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -16,7 +16,7 @@
  */
 #include "Setup.h"
 #include "config.h"
-#include "bmsapp.h"
+#include "MainWindow.h"
 
 
 
--- a/src/bmsapp.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,200 +0,0 @@
-/**
- * bmsapp.cpp is part of bmsapp.
- *
- * bmsapp is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * bmsapp is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program.  If not, see <http://www.gnu.org/licenses/>.
- */
-#include "bmsapp.h"
-#include "database/database.h"
-#include "config.h"
-#include "MainWindow.h"
-
-
-bool Bmsapp::initialize(bool useDevelop)
-{
-    readsettings();
-
-    // QLocale german(QLocale::German,QLocale::Germany);
-    // QLocale::setDefault(german);
-
-    qDebug() << "Loading Database...";
-
-    db = new DataBase();
-    return db->openDataBase(useDevelop);
-}
-
-
-void Bmsapp::cleanup()
-{
-    qDebug() << "BMSapp is cleaning up.";
-
-    writesettings();
-    db->closeDataBase();
-}
-
-
-void Bmsapp::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 Bmsapp::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.";
-}
-
-
-int Bmsapp::run(bool useDevelop, bool startConfig) {
-
-    int rc = 0;
-
-    qDebug() << Q_FUNC_INFO;
-    if (! initialize(useDevelop)) {
-	cleanup();
-	return 1;
-    }
-
-    MainWindow w;
-    w.show();
-    rc = qApp->exec();
-
-    cleanup();
-
-    qDebug() << Q_FUNC_INFO << "Cleaned up.  Returning " << rc;
-    return rc;
-}
-
-
--- a/src/bmsapp.h	Sun Mar 27 20:38:25 2022 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,112 +0,0 @@
-#ifndef	_BMSAPP_H
-#define	_BMSAPP_H
-
-#include <QApplication>
-#include <QDateTime>
-#include <QDebug>
-#include <QDir>
-// #include <QDomDocument>
-#include <QFile>
-#include <QList>
-#include <QMenu>
-#include <QMetaProperty>
-#include <QObject>
-#include <QSettings>
-#include <QString>
-#include <QTextStream>
-#include <QTranslator>
-#include <QtSql>
-#include <QUuid>
-#include <QStyle>
-#include <QPlainTextEdit>
-#include <QMessageBox>
-#include <QLabel>
-#include <QImage>
-#include <QImageReader>
-#include <QImageWriter>
-#include <QColorSpace>
-#include <QGraphicsView>
-#include <QFileDialog>
-#include <QXmlStreamReader>
-#include <QXmlStreamWriter>
-#include <QJsonArray>
-#include <QJsonDocument>
-#include <QJsonObject>
-#include <QMap>
-#include <QPrinter>
-#include <QWidget>
-
-#include "Utils.h"
-#include "PrinterDialog.h"
-
-
-typedef struct IniMySQL
-{
-    QString host;               ///< MySQL host
-    QString port;               ///< MySQL port
-    QString name;               ///< MySQL database
-    QString user;		///< MySQL username
-    QString pass;               ///< MySQL password
-    QString charset;		///< MySQL character encoding
-} IniMySQL;
-
-static IniMySQL dbProd;
-static IniMySQL dbDev;
-
-typedef struct IniMQTT
-{
-    QString host;		///< MQTT host
-    QString port;		///< MQTT port
-    QString user;		///< MQTT username
-    QString pass;		///< MQTT password
-} IniMQTT;
-
-static IniMQTT mqttProd;
-static IniMQTT mqttDev;
-
-
-class MainWindow;
-
-
-class Bmsapp : public QObject
-{
-    Q_OBJECT
-
-    friend class MainWindow;
-
-public:
-    Bmsapp();
-
-    /**
-     * @brief Blocking call that executes the application.
-     * @return Exit code from the application.
-     */
-    static int run(bool useDevelop, bool startConfig);
-
-    MainWindow* m_mainWindow;
-
-private:
-    /**
-     * @brief Run before showing MainWindow, does all system setup.
-     * @return false if anything goes awry, true if it's ok to start MainWindow.
-     */
-    static bool initialize(bool useDevelop);
-
-    /**
-     * @brief Run after QApplication exits to clean up shit, close database, etc.
-     */
-    static void cleanup();
-
-    /**
-     * @brief Read user settings for the MySQL connection.
-     */
-    static void readsettings();
-
-    /**
-     * @brief Write or update the user settings for the MySQL connection.
-     */
-    static void writesettings();
-};
-
-
-#endif
--- a/src/main.cpp	Sun Mar 27 20:38:25 2022 +0200
+++ b/src/main.cpp	Sun Mar 27 22:03:18 2022 +0200
@@ -19,8 +19,9 @@
 #include <QDebug>
 #include <QDate>
 #include <QMessageBox>
+#include <QSettings>
 
-#include "bmsapp.h"
+#include "MainWindow.h"
 #include "config.h"
 
 
@@ -64,8 +65,11 @@
 
     qDebug().noquote() << "Starting" << app.applicationName() << app.applicationVersion() << QDateTime::currentDateTime().toString();
 
+    MainWindow w(parser.isSet(useDevelopOption), parser.isSet(startConfigOption));
+    w.show();
+
     try {
-	auto mainAppReturnValue = Bmsapp::run(parser.isSet(useDevelopOption), parser.isSet(startConfigOption));
+	auto mainAppReturnValue = app.exec();
 	qDebug().noquote() << "Finished" << app.applicationName() << app.applicationVersion() << QDateTime::currentDateTime().toString();
 	return mainAppReturnValue;
     }

mercurial