68 lines
1.9 KiB
C++
68 lines
1.9 KiB
C++
#include <QGuiApplication>
|
|
#include <QQmlApplicationEngine>
|
|
|
|
#include <QLocale>
|
|
#include <QTranslator>
|
|
|
|
#include <Helpers/helpers.h>
|
|
#include <Helpers/logs.h>
|
|
|
|
#include <QDebug>
|
|
#include <QDir>
|
|
|
|
using namespace Status;
|
|
|
|
void setApplicationInformation(QGuiApplication& app);
|
|
|
|
int main(int argc, char* argv[])
|
|
{
|
|
//qInstallMessageHandler(Helpers::logFormatter);
|
|
|
|
QGuiApplication app(argc, argv);
|
|
|
|
setApplicationInformation(app);
|
|
|
|
QTranslator translator;
|
|
const QStringList uiLanguages = QLocale::system().uiLanguages();
|
|
for(const QString& locale : uiLanguages)
|
|
{
|
|
const QString baseName = BUILD_PROJECT_NAME + QLocale(locale).name();
|
|
if(translator.load(":/i18n/" + baseName))
|
|
{
|
|
app.installTranslator(&translator);
|
|
break;
|
|
}
|
|
}
|
|
|
|
QQmlApplicationEngine engine;
|
|
|
|
const QUrl url(u"qrc:/Status/Application/qml/main.qml"_qs);
|
|
QObject::connect(
|
|
&engine,
|
|
&QQmlApplicationEngine::objectCreated,
|
|
&app,
|
|
[url](QObject* obj, const QUrl& objUrl) {
|
|
if(!obj && url == objUrl) QCoreApplication::exit(-1);
|
|
},
|
|
Qt::QueuedConnection);
|
|
engine.load(url);
|
|
|
|
return app.exec();
|
|
}
|
|
|
|
void setApplicationInformation(QGuiApplication& app)
|
|
{
|
|
#if !defined BUILD_PROJECT_ORGANIZATION_NAME
|
|
static_assert(false, "Compile-time define missing: BUILD_PROJECT_ORGANIZATION_NAME")
|
|
#endif
|
|
app.setOrganizationName(BUILD_PROJECT_ORGANIZATION_NAME);
|
|
#if !defined BUILD_PROJECT_ORGANIZATION_DOMAIN
|
|
static_assert(false, "Compile-time define missing: BUILD_PROJECT_ORGANIZATION_DOMAIN")
|
|
#endif
|
|
app.setOrganizationDomain(BUILD_PROJECT_ORGANIZATION_DOMAIN);
|
|
#if !defined BUILD_PROJECT_APPLICATION_NAME
|
|
static_assert(false, "Compile-time define missing: BUILD_PROJECT_APPLICATION_NAME")
|
|
#endif
|
|
app.setApplicationName(BUILD_PROJECT_APPLICATION_NAME);
|
|
}
|