--- a/src/main.cpp Sun Feb 06 16:52:20 2022 +0100 +++ b/src/main.cpp Mon Feb 07 21:28:26 2022 +0100 @@ -16,9 +16,14 @@ */ #include <QApplication> #include <QCommandLineParser> +#include <QDebug> +#include <QDate> +#include <QMessageBox> + //#include <QLocale> //#include <QTranslator> +#include "bmsapp.h" #include "config.h" @@ -33,6 +38,36 @@ #endif ); app.setApplicationVersion(VERSIONSTRING); + app.setOrganizationName("mbse"); - return app.exec(); + /* Setup user ini format */ + QSettings::setDefaultFormat(QSettings::IniFormat); + + /* Setup commandline parser */ + QCommandLineParser parser; + parser.setApplicationDescription("Brewery Management System Application."); + parser.addOptions({ + // A boolean option with multiple names (-f, --force) + {{"c", "config"}, + QCoreApplication::translate("main", "Start the configuration editor.")}, + {{"d", "develop"}, + QCoreApplication::translate("main", "Use the development database.")}, + }); + parser.addHelpOption(); + parser.addVersionOption(); + parser.process(app); + + qDebug().noquote() << "Starting" << app.applicationName() << app.applicationVersion() << QDateTime::currentDateTime().toString(); + + try { + auto mainAppReturnValue = Bmsapp::run(); + qDebug().noquote() << "Finished" << app.applicationName() << app.applicationVersion() << QDateTime::currentDateTime().toString(); + return mainAppReturnValue; + } + catch (const QString &error) { + QMessageBox::critical(0, + QApplication::tr("Application terminates"), + QApplication::tr("The application encountered a fatal error.\nError message:\n%1").arg(error)); + } + return EXIT_FAILURE; }