-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.cpp
More file actions
79 lines (62 loc) · 2.75 KB
/
main.cpp
File metadata and controls
79 lines (62 loc) · 2.75 KB
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
76
77
78
79
#include <QGuiApplication>
#include <QQmlApplicationEngine>
#include <QQmlContext>
#include <QtConcurrent>
#include "NetworkMonitor.h"
#include "AlertBox.h"
#include "core/LocationModel.h"
#include "core/ControllerModel.h"
#include "core/ShadeGroupModel.h"
#include "core/Shade.h"
#include "core/ControllerAPI.h"
#include "core/ZoneModel.h"
#include "core/LocationsModel.h"
#include "core/TimeZoneModel.h"
#include "EspTouchSetup.h"
#include <aws/core/utils/memory/stl/AWSString.h>
#include <aws/core/Aws.h>
#include <sys/utsname.h>
#include <memory>
#include "UserData.h"
#include "core/ControllerConnectionsManager.h"
#include "CognitoSyncTests.h"
#include "aws/AwsApi.h"
int main(int argc, char *argv[])
{
Aws::SDKOptions awsOptions;
awsOptions.loggingOptions.logLevel = Aws::Utils::Logging::LogLevel::Debug;
Aws::InitAPI(awsOptions);
QCoreApplication::setAttribute(Qt::AA_EnableHighDpiScaling);
QGuiApplication app(argc, argv);
QQmlApplicationEngine engine;
QQmlContext* ctx = engine.rootContext();
qmlRegisterType<LocationsModel>("com.atlascoder.LocationsModel", 1, 0, "LocationsModel");
qmlRegisterType<LocationModel>("com.atlascoder.LocationModel", 1, 0, "LocationModel");
qmlRegisterType<ZoneModel>("com.atlascoder.ZoneModel", 1, 0, "ZoneModel");
qmlRegisterType<TimeZoneModel>("com.atlascoder.TimeZoneModel", 1, 0, "TimeZoneModel");
qmlRegisterType<ShadeGroupModel>("com.atlascoder.ShadeGroupModel", 1, 0, "ShadeGroupModel");
qmlRegisterType<EspTouchSetup>("com.atlascoder.EspTouch", 1, 0, "EspTouch");
qmlRegisterType<ControllerAPI>("com.atlascoder.ControllerAPI", 1, 0, "ControllerAPI");
qmlRegisterType<Shade>("com.atlascoder.Shade", 1, 0, "Shade");
AlertBox& alertBox(AlertBox::instance());
UserData& userData(UserData::instance());
CurrentUser& currentUser(CurrentUser::instance());
ControllerConnectionsManager& controllerAPIs(ControllerConnectionsManager::instance());
NetworkMonitor& netMon(NetworkMonitor::instance());
controllerAPIs.setNetworkMonitor(&netMon);
ctx->setContextProperty("qGuiApp", &app);
ctx->setContextProperty("alertBox", &alertBox);
QObject::connect(&app, &QGuiApplication::applicationStateChanged, &netMon, &NetworkMonitor::onApplicationStateChanged);
ctx->setContextProperty("userData", &userData);
ctx->setContextProperty("currentUser", ¤tUser);
ctx->setContextProperty("netMonitor", &netMon);
ctx->setContextProperty("controllerAPIs", &controllerAPIs);
engine.load(QUrl(QLatin1String("qrc:/main.qml")));
if (engine.rootObjects().isEmpty())
return -1;
int app_result = app.exec();
UserData::instance().stopRequests();
AwsApi::instance().stopRequests();
Aws::ShutdownAPI(awsOptions);
return app_result;
}