-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.cpp
More file actions
94 lines (83 loc) · 2.91 KB
/
main.cpp
File metadata and controls
94 lines (83 loc) · 2.91 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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
#include <QtGui/QApplication>
#include <QtDeclarative>
#include <QLocale>
#include <QTranslator>
#include <QTextCodec>
#include <QDebug>
#include "qmlapplicationviewer.h"
#include "id_std.h"
#include "utility.h"
#include "player.h"
#include "networkconnector.h"
#include "networkmanager.h"
#include "qtm/qdeclarativewebview.h"
#ifdef _KARIN_MM_EXTENSIONS
#include "qtm/qdeclarativevideo_p.h"
#endif
Q_DECL_EXPORT int main(int argc, char *argv[])
{
QDeclarativeEngine *engine;
QDeclarativeContext *context;
idUtility *ut;
idPlayer *player;
idNetworkConnector *connector;
QApplication *a;
QTranslator translator;
QString qm, qmdir;
const QString RegisterUncreatableTypeMsg(QString("[ERROR]: %1 -> %2").arg("Can not create a single-instance object"));
a = createApplication(argc, argv);
QScopedPointer<QApplication> app(a);
a->setApplicationName(ID_PKG);
a->setApplicationVersion(ID_VER);
a->setOrganizationName(ID_DEV);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QString locale = QLocale::system().name();
#ifdef _HARMATTAN
#ifdef _DBG
qm = ID_PKG ".zh_CN.qm";
qmdir = "i18n/";
#else
qm = QString(ID_PKG ".") + locale;
qmdir = "/opt/" ID_PKG "/i18n/";
#endif
#else
#ifdef _DBG
Q_INIT_RESOURCE(ID_PKG);
qm = QString(":/i18n/" ID_PKG ".") + locale;
#else
qm = QString("qt_") + locale;
qmdir = QLibraryInfo::location(QLibraryInfo::TranslationsPath);
#endif
#endif
if(translator.load(qm, qmdir))
{
qDebug() << QString("[INFO]: Load i18n -> %1: %2 [%3]").arg(locale).arg(qm).arg(qmdir);
a->installTranslator(&translator);
}
else
qWarning() << QString("[DEBUG]: Not found i18n -> %1: %2 [%3]").arg(locale).arg(qm).arg(qmdir);
QmlApplicationViewer viewer;
idDeclarativeNetworkAccessManagerFactory factory;
engine = viewer.engine();
context = engine->rootContext();
qmlRegisterType<QDeclarativeWebView>(ID_QML_URI, ID_QML_MAJOR_VER, ID_QML_MINOR_VER, ID_APP "WebView");
qmlRegisterType<QDeclarativeWebSettings>();
#ifdef _KARIN_MM_EXTENSIONS
qmlRegisterType<QDeclarativeVideo>(ID_QML_URI, ID_QML_MAJOR_VER, ID_QML_MINOR_VER, ID_APP "Video");
#endif
qmlRegisterUncreatableType<idNetworkConnector>(ID_QML_URI, ID_QML_MAJOR_VER, ID_QML_MINOR_VER, ID_APP "NetworkConnector", RegisterUncreatableTypeMsg.arg("idNetworkConnector"));
qmlRegisterUncreatableType<idPlayer>(ID_QML_URI, ID_QML_MAJOR_VER, ID_QML_MINOR_VER, ID_APP "Player", RegisterUncreatableTypeMsg.arg("idPlayer"));
ut = idUtility::Instance();
connector = idNetworkConnector::Instance();
player = idPlayer::Instance();
ut->SetEngine(engine);
engine->setNetworkAccessManagerFactory(&factory);
connector->SetEngine(engine);
context->setContextProperty("_UT", ut);
context->setContextProperty("_CONNECTOR", connector);
context->setContextProperty("_PLAYER", player);
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
viewer.setMainQmlFile(QLatin1String("qml/ppsh/main.qml"));
viewer.showExpanded();
return app->exec();
}