-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.cpp
More file actions
120 lines (106 loc) · 3.6 KB
/
main.cpp
File metadata and controls
120 lines (106 loc) · 3.6 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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
#include <QtGui/QApplication>
#include <QDeclarativeComponent>
#include <QDeclarativeContext>
#include <QDeclarativeEngine>
#include <QWebSettings>
#include <QLocale>
#include <QTranslator>
#include <QTextCodec>
#ifdef _SYMBIAN
#include <QLibraryInfo>
#endif
#include "QDebug"
#include "qmlapplicationviewer.h"
#include "vdeveloper.h"
#include "vdeclarativewebview.h"
#include "vstd.h"
#include "vvideoplayer.h"
#include "vnetworkmanager.h"
#include "vdownloadmanager.h"
#include "vdownloadtask.h"
#include "vut.h"
#ifdef _KARIN_MM_EXTENSIONS
#include "qdeclarativevideo_p.h"
#endif
Q_DECL_EXPORT int main(int argc, char *argv[])
{
VUT *vut;
VDownloadManager *manager;
VDeveloper *developer;
QTranslator translator;
QString qm, qmdir;
QApplication *a;
QDeclarativeEngine *engine;
VDeclarativeNetworkAccessManagerFactory factory;
const QString RegisterUncreatableTypeMsg(QString("[ERROR]: %1 -> %2").arg(QObject::tr("Can not create a single-instance object")));
#ifdef _SYMBIAN
QApplication::setAttribute(Qt::ApplicationAttribute(11));
#endif
a = createApplication(argc, argv);
a->setApplicationName(APPLICATION_NAME);
a->setOrganizationName(APPLICATION_DEVELOPER);
a->setApplicationVersion(APPLICATION_VERSION);
QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
QString locale = QLocale::system().name();
#ifdef _HARMATTAN
#ifdef VDEBUG
qm = "verena.zh_CN.qm";
qmdir = "i18n/";
#else
qm = QString("verena.") + locale;
qmdir = "/opt/verena/i18n/";
#endif
#else
#ifdef VDEBUG
Q_INIT_RESOURCE(verena);
qm = QString(":/i18n/verena.") + 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);
QWebSettings::enablePersistentStorage();
QScopedPointer<QApplication> app(a);
qmlRegisterType<QDeclarativeWebView>("VerenaWebKit", 1, 0, "VWebView");
qmlRegisterType<QDeclarativeWebSettings>();
qmlRegisterType<VVideoPlayer>("karin.verena", VERENA_QML_MAJOR_VERSION, VERENA_QML_MINOR_VERSION, "VPlayer");
qmlRegisterType<VDownloadTask>("karin.verena", VERENA_QML_MAJOR_VERSION, VERENA_QML_MINOR_VERSION, "VDownloadTask");
qmlRegisterUncreatableType<VDownloadManager>("karin.verena", VERENA_QML_MAJOR_VERSION, VERENA_QML_MINOR_VERSION, "VDownloadManager", RegisterUncreatableTypeMsg.arg("VDownloadManager"));
#ifdef _KARIN_MM_EXTENSIONS
qmlRegisterType<QDeclarativeVideo>("karin.verena.extensions", VERENA_QML_MAJOR_VERSION, VERENA_QML_MINOR_VERSION, "VVideo");
#endif
QmlApplicationViewer viewer;
#ifdef _HARMATTAN
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationAuto);
#else
viewer.setProperty("orientationMethod", 1);
viewer.setOrientation(QmlApplicationViewer::ScreenOrientationLockPortrait);
#endif
engine = viewer.engine();
vut = VUT::Instance();
engine->setNetworkAccessManagerFactory(&factory);
vut->SetDeclarativeEngine(engine);
developer = VDeveloper::Instance();
manager = VDownloadManager::Instance();
viewer.rootContext()->setContextProperty("vut", vut);
viewer.rootContext()->setContextProperty("developer", developer);
viewer.rootContext()->setContextProperty("vdlmanager", manager);
#ifdef _HARMATTAN
viewer.setMainQmlFile(QLatin1String("qml/verena/main.qml"));
#else
viewer.setMainQmlFile(QLatin1String("qml/verena_symbian/main.qml"));
#endif
viewer.showExpanded();
/*
VVerena verena;
verena.search(QString("nokia n950"));
*/
return app->exec();
}