Sun, 27 Mar 2022 22:03:18 +0200
Moved functions from bmsapp.cpp to MainWindow.cpp
--- 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; }