app/sources/main.cpp

76 lines
2.3 KiB
C++

/*
blueROCK - for digital rock
Copyright (C) 2019 Dorian Zedler
This program 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.
This program 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 <QQuickStyle>
#include <QGuiApplication>
#include <QtQml/QQmlContext>
#include <QQmlApplicationEngine>
#include <QUrl>
#include <QFontDatabase>
#include "QZXing.h"
#include "headers/bluerockbackend.h"
#include "headers/appsettings.h"
int main(int argc, char *argv[])
{
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication::setAttribute(Qt::AA_UseHighDpiPixmaps);
QGuiApplication app(argc, argv);
QFont f = app.font();
f.setPixelSize(16);
app.setFont(f);
// translation
QString localeName = QLocale::system().bcp47Name();
QTranslator* translator = new QTranslator(qApp);
// fallback to en!
if(!translator->load(":/" + localeName + ".qm"))
translator->load(":/en.qm");
QFontDatabase::addApplicationFont(":/fonts/OpenSans-Light.ttf");
QGuiApplication::installTranslator(translator);
QQuickStyle::setStyle("Material");
qmlRegisterType<BlueRockBackend>("de.itsblue.blueROCK", 1, 0, "BlueRockBackend");
qmlRegisterType<AppSettings>("de.itsblue.blueROCK", 1, 0, "AppSettings");
QQmlApplicationEngine engine;
#ifdef QT_DEBUG
engine.rootContext()->setContextProperty("QT_DEBUG", true);
#else
engine.rootContext()->setContextProperty("QT_DEBUG", false);
#endif
QZXing::registerQMLTypes();
QZXing::registerQMLImageProvider(engine);
engine.rootContext()->setContextProperty("APP_VERSION", APP_VERSION);
engine.load(QUrl(QStringLiteral("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}