-
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathmain.cpp
75 lines (62 loc) · 2.4 KB
/
main.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/**
* Copyright (C) 2019 Joshua Tzucker
*/
#include "appinfo.h"
#include "apis/cloudinary.h"
#include "database.h"
#include "globalsettings.h"
#include "helpers.h"
#include "logger.h"
#include "models/stats.h"
#include "models/transformationlist.h"
#include "models/transformationconfig.h"
#include "models/uploader.h"
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQuickStyle>
#include <QQmlContext>
int main(int argc, char *argv[])
{
if (Helpers::getIsDebug()){
qputenv("QT_DEBUG_PLUGINS", QByteArray("1"));
}
QCoreApplication::addLibraryPath("./");
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
// Register settings config
QCoreApplication::setOrganizationName(APP_ORG_NAME);
QCoreApplication::setOrganizationDomain(APP_ORG_DOMAIN);
QCoreApplication::setApplicationName(APP_NAME);
QCoreApplication::setApplicationVersion(APP_VERSION_STRING);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
// Establish SQLite - this should create the .db file if it does not exist
Database db = Database();
// Load global settings into memory
GlobalSettings::getInstance()->loadFromStorage();
// Load configs
TransformationList::getInstance()->loadAllFromStorage();
// Load stats
Stats::getInstance()->forceRefreshFromDb();
// Set Material theme for QTQuickControls
QQuickStyle::setStyle("Material");
// Create class instances
Helpers myHelpers;
// Register contexts
engine.rootContext()->setContextProperty("GlobalSettings",GlobalSettings::getInstance());
engine.rootContext()->setContextProperty("Helpers",&myHelpers);
engine.rootContext()->setContextProperty("Uploader",Uploader::getInstance());
engine.rootContext()->setContextProperty("UploadConfigsList",TransformationList::getInstance());
engine.rootContext()->setContextProperty("Stats",Stats::getInstance());
// Register metatypes
qRegisterMetaType<UploadActionResult>();
qRegisterMetaType<TransformationConfig>();
// Log startup :)
Stats::getInstance()->logStat("application","startup",false);
Stats::getInstance()->fireGaEvent("application","startup","",NULL);
Logger *logger = Logger().getInstance();
logger->logStr("Program startup!");
engine.load(QUrl(QStringLiteral("qrc:/qml/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
return app.exec();
}