Fri, 11 Feb 2022 16:00:06 +0100
Menus setup started.
/** * 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 "config.h" #include "MainWindow.h" bool Bmsapp::ensureDirectoriesExist() { QDir resourceDir = Bmsapp::getResourceDir(); bool resourceDirSuccess = resourceDir.exists(); if (!resourceDirSuccess) { QString errMsg{ QObject::tr("Resource directory \"%1\" is missing. Some features will be unavailable.").arg(resourceDir.path()) }; qCritical() << Q_FUNC_INFO << errMsg; } return resourceDirSuccess; } QDir Bmsapp::getResourceDir() { QString dir = qApp->applicationDirPath(); dir = QString(CONFIGDATADIR); qDebug() << "Resource dir" << dir; return dir; } bool Bmsapp::initialize() { ensureDirectoriesExist(); readsettings(); qDebug() << "Loading Database..."; db = new DataBase(); db->connectToDataBase(); return true; } void Bmsapp::cleanup() { qDebug() << "BMSapp is cleaning up."; writesettings(); } 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() << 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() << dbDev.host << dbDev.port << dbDev.name << dbDev.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(); qDebug() << "writesettings() done."; } int Bmsapp::run() { int rc = 0; if (! initialize()) { cleanup(); return 1; } MainWindow w; w.show(); rc = qApp->exec(); cleanup(); qDebug() << Q_FUNC_INFO << "Cleaned up. Returning " << rc; return rc; }