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
|
/**
* Copyright (C) 2013, Pelagicore
*
* Author: Marcel Schuette <marcel.schuette@pelagicore.com>
*
* This file is part of the GENIVI project Browser Proof-Of-Concept
* For further information, see http://genivi.org/
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*/
#include <QtDBus/QDBusConnection>
#include "browserhelper.h"
#include "ibookmarkmanager_adaptor.h"
#include "iuserinput_adaptor.h"
#include "iwebpagewindow_adaptor.h"
#include "ibrowser_adaptor.h"
#include "icachemanager_adaptor.h"
#include "ierrorlogger_adaptor.h"
browserhelper::browserhelper(QString instanceId, QObject *parent) :
QObject(parent)
{
registertypes();
connection = new QDBusConnection(QDBusConnection::sessionBus());
if(!connection->isConnected()) {
qDebug() << "failed to connect to dbus";
exit(1);
}
QString *dbusservicename = new QString("genivi.poc.browser" + instanceId);
qDebug() << *dbusservicename;
if(!connection->registerService(*dbusservicename)) {
qDebug() << "failed register service " << *dbusservicename;
exit(1);
}
errorlogger *err = new errorlogger();
new IErrorLoggerAdaptor(err);
if(!connection->registerObject("/Browser/IErrorLogger", err)) {
qDebug() << "failed register object IErrorLogger";
exit(1);
}
userinput *ui = new userinput();
new IUserInputAdaptor(ui);
cachemanager *cm = new cachemanager();
new ICacheManagerAdaptor(cm);
if(!connection->registerObject("/Browser/ICacheManager", cm)) {
qDebug() << "failed register object ICacheManager";
exit(1);
}
browser *br = new browser(cm, ui);
new IBrowserAdaptor(br);
if(!connection->registerObject("/Browser/IBrowser", br)) {
qDebug() << "failed register object IBrowser";
exit(1);
}
bookmarkmanager *bm = new bookmarkmanager();
new IBookmarkManagerAdaptor(bm);
if(!connection->registerObject("/Browser/IBookmarkManager", bm)) {
qDebug() << "failed register object IBookmarkManager";
exit(1);
}
wpw = new webpagewindow();
new IWebPageWindowAdaptor(wpw);
br->wpw = wpw;
connect(cm, SIGNAL(onCachePolicyChanged(conn::brw::CACHE_POLICY)),
br, SLOT (cachePolicyChanged (conn::brw::CACHE_POLICY)));
connect(cm, SIGNAL(onClearCache(void)),
br, SLOT (clearCache (void)));
connect(wpw, SIGNAL(setOutputWebview(QString)), br, SLOT(setView(QString)));
connect(ui, SIGNAL(setOutputWebview(QString)), br, SLOT(setView(QString)));
}
void browserhelper::registertypes() {
qDBusRegisterMetaType<conn::brw::ERROR_IDS>();
qDBusRegisterMetaType<conn::brw::BOOKMARK_SORT_TYPE>();
qDBusRegisterMetaType<conn::brw::BookmarkItem>();
qDBusRegisterMetaType<conn::brw::BookmarkItemList>();
qDBusRegisterMetaType<conn::brw::DIALOG_RESULT>();
qDBusRegisterMetaType<conn::brw::INPUT_ELEMENT_TYPE>();
qDBusRegisterMetaType<conn::brw::Rect>();
qDBusRegisterMetaType<conn::brw::SCROLL_DIRECTION>();
qDBusRegisterMetaType<conn::brw::SCROLL_TYPE>();
qDBusRegisterMetaType<conn::brw::BrowserActions>();
qDBusRegisterMetaType<conn::brw::OBJECT_HANDLE>();
qDBusRegisterMetaType<conn::brw::ObjectHandleList>();
qDBusRegisterMetaType<conn::brw::CACHE_POLICY>();
}
|