author | hgs |
Fri, 15 Oct 2010 17:30:59 -0400 | |
changeset 16 | 3c88a81ff781 |
parent 12 | afcd8e6d025b |
permissions | -rw-r--r-- |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
1 |
/* |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
2 |
* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
3 |
* All rights reserved. |
3 | 4 |
* |
5 |
* This program is free software: you can redistribute it and/or modify |
|
6 |
* it under the terms of the GNU Lesser General Public License as published by |
|
7 |
* the Free Software Foundation, version 2.1 of the License. |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
8 |
* |
3 | 9 |
* This program is distributed in the hope that it will be useful, |
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
|
12 |
* GNU Lesser General Public License for more details. |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
13 |
* |
3 | 14 |
* You should have received a copy of the GNU Lesser General Public License |
15 |
* along with this program. If not, |
|
16 |
* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
17 |
* |
3 | 18 |
* Description: |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
19 |
* |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
20 |
*/ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
21 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
22 |
#include "browser.h" |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
23 |
#include "WebGestureHelper.h" |
3 | 24 |
#include "../ChromeLayout.h" |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
25 |
#include "../ChromeWidget.h" |
9 | 26 |
#include "../ChromeDOM.h" |
16 | 27 |
#include "../Application.h" |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
28 |
#include "WindowFlowView.h" |
3 | 29 |
#include "webpagecontroller.h" |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
30 |
#include "bedrockprovisioning.h" |
16 | 31 |
#include "Utilities.h" |
32 |
#include "mostvisitedpagestore.h" |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
33 |
|
16 | 34 |
#include <QApplication> |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
35 |
#include <QDebug> |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
36 |
#ifdef _GVA_INSPECT_CHROME_ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
37 |
#include <QWebInspector> |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
38 |
#endif |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
39 |
#include <QWebSettings> |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
40 |
|
12 | 41 |
#ifdef ORBIT_UI |
42 |
#include <qmatrix.h> |
|
43 |
const int KLandscapeRoatation =90; |
|
44 |
#endif |
|
45 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
46 |
#ifndef Q_OS_SYMBIAN |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
47 |
// Uncomment the next line to enable the javascript console dialog. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
48 |
//#define CHROME_CONSOLE 1 |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
49 |
#ifdef CHROME_CONSOLE |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
50 |
#include "ChromeConsole.h" |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
51 |
#endif |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
52 |
#endif |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
53 |
|
16 | 54 |
#ifdef Q_WS_MAEMO_5 |
55 |
#include "../ContentViews/WindowsView.h" |
|
56 |
#include "../ContentViews/BrowserWindow.h" |
|
57 |
#endif |
|
58 |
||
3 | 59 |
GinebraBrowser::GinebraBrowser(QObject * parent, QString *url) |
9 | 60 |
: QObject(parent) |
61 |
, m_scene(new QGraphicsScene()) |
|
16 | 62 |
, m_app(0) |
9 | 63 |
#ifdef Q_WS_MAEMO_5 |
64 |
, m_mainWindow(0) |
|
16 | 65 |
, m_menu(new QMenu(tr("Menu"))) |
9 | 66 |
, m_splashScreenM5(0) |
67 |
#else |
|
68 |
, m_splashScreen(0) |
|
69 |
#endif |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
70 |
{ |
16 | 71 |
//Create chrome widget |
72 |
m_chrome = new GVA::ChromeWidget(); |
|
73 |
||
9 | 74 |
platformSpecificInit(); |
75 |
||
3 | 76 |
// The initial url to go to when the browser is called from another app |
77 |
if (url != 0) { |
|
78 |
m_initialUrl = *url; |
|
79 |
} |
|
16 | 80 |
QString startUpChrome = (BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("StartUpChrome")); |
81 |
||
3 | 82 |
m_install = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("ChromeBaseDirectory") |
16 | 83 |
+ startUpChrome.section('/', 0, -2)/*+ "/"*/; |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
84 |
m_chromeUrl = startUpChrome.section('/', -1); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
85 |
m_contentUrl = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("StartPage"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
86 |
|
3 | 87 |
setApplicationNameVersion(); |
88 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
89 |
//qDebug() << "GinebraBrowser::GinebraBrowser: " << m_install << " " << m_chromeUrl; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
90 |
//GVA::Settings * settings = GVA::Settings::instance(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
91 |
//settings->setInstallRoot(m_install); |
16 | 92 |
|
93 |
m_app = new GVA::GinebraApplication(); |
|
94 |
||
95 |
// Instantiate Most Visited Page store. |
|
96 |
MostVisitedPageStoreSingleton::Instance(); |
|
97 |
||
98 |
#ifdef Q_WS_MAEMO_5 |
|
99 |
||
100 |
safe_connect(m_app, SIGNAL(addMenuBarActionRequest(QAction *)), |
|
101 |
this, SLOT(addMenuBarAction(QAction *))); |
|
102 |
safe_connect(m_app, SIGNAL(setMenuBarEnabledRequest(bool)), |
|
103 |
this, SLOT(setMenuBarEnabled(bool))); |
|
104 |
#endif |
|
105 |
m_chrome->setApp(m_app); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
106 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
107 |
//removeFaviconDir(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
108 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
109 |
/*QDir homeDir = getHomeDir(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
110 |
homeDir.mkdir("favicon"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
111 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
112 |
QString iconDBPath = homeDir.absolutePath() + "/favicon"; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
113 |
QWebSettings::globalSettings()->setIconDatabasePath(iconDBPath);*/ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
114 |
|
3 | 115 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
116 |
#ifdef _GVA_INSPECT_CHROME_ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
117 |
QWebSettings * s = m_chrome->page()->settings(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
118 |
s->setAttribute(QWebSettings::DeveloperExtrasEnabled, true ); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
119 |
QWebInspector *inspector = new QWebInspector; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
120 |
inspector->setPage(m_chrome->page()); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
121 |
inspector->resize(400,600); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
122 |
inspector->show(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
123 |
connect(m_chrome->page(), SIGNAL(webInspectorTriggered(QWebElement)), inspector, SLOT(show())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
124 |
#endif |
9 | 125 |
|
16 | 126 |
#ifndef Q_WS_MAEMO_5 |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
127 |
//Create a view onto the chrome |
3 | 128 |
m_view = new GVA::ChromeView(m_scene, m_chrome); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
129 |
WebGestureHelper* gh = new WebGestureHelper(m_view); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
130 |
browserApp->setGestureHelper(gh); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
131 |
browserApp->setMainWindow(m_view); |
16 | 132 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
133 |
m_view->grabGesture(QStm_Gesture::assignedType()); |
16 | 134 |
//m_view->viewport()->grabGesture(QStm_Gesture::assignedType()); |
135 |
#if defined(Q_OS_SYMBIAN) |
|
3 | 136 |
m_view->showFullScreen(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
137 |
#else |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
138 |
m_view->setGeometry(0,0,360,640); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
139 |
#endif |
16 | 140 |
#endif //End non-Maemo5 initialization |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
141 |
|
3 | 142 |
showSplashScreen(); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
143 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
144 |
#ifndef __gva_no_chrome__ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
145 |
QObject::connect(m_chrome, SIGNAL(internalChromeComplete()), this, SLOT(onChromeComplete())); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
146 |
//Load the chrome |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
147 |
m_chrome->setChromeBaseDirectory(m_install); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
148 |
m_chrome->setChromeFile(m_chromeUrl); |
16 | 149 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
150 |
#ifdef CHROME_CONSOLE |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
151 |
// Show the javascript console. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
152 |
ChromeConsole *console = new ChromeConsole(m_chrome); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
153 |
console->show(); |
16 | 154 |
//console->move(m_view->geometry().topLeft() + QPoint(m_view->width()+6, 0)); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
155 |
#endif |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
156 |
#else |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
157 |
onChromeComplete(); |
3 | 158 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
159 |
|
3 | 160 |
// Handle openUrl signals |
161 |
connect(this, SIGNAL(openUrlRequested(QString)), this, SLOT(openUrl(QString))); |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
162 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
163 |
|
3 | 164 |
GinebraBrowser::~GinebraBrowser() |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
165 |
{ |
3 | 166 |
delete m_chrome; |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
167 |
delete WebPageController::getSingleton(); |
16 | 168 |
#ifndef Q_WS_MAEMO_5 |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
169 |
delete m_view; |
16 | 170 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
171 |
destroySplashScreen(); |
16 | 172 |
delete m_app; |
3 | 173 |
delete m_scene; |
9 | 174 |
#ifdef Q_WS_MAEMO_5 |
16 | 175 |
delete m_windows; |
9 | 176 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
177 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
178 |
WebGestureHelper* gh = browserApp->gestureHelper(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
179 |
delete gh; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
180 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
181 |
|
9 | 182 |
void GinebraBrowser::platformSpecificInit() { |
183 |
#ifdef Q_WS_MAEMO_5 |
|
16 | 184 |
m_windows = new GVA::WindowsView(m_chrome); |
185 |
m_windows->setMenu(m_menu); |
|
186 |
m_windows->handlePageEvents(true); |
|
9 | 187 |
#else |
188 |
||
189 |
// Add initialization code for other platforms here... |
|
190 |
||
191 |
#endif |
|
192 |
} |
|
193 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
194 |
/* |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
195 |
QDir GinebraBrowser::getHomeDir() |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
196 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
197 |
QDir homeDir; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
198 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
199 |
#ifndef QT_NO_DESKTOPSERVICES |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
200 |
homeDir = QDesktopServices::storageLocation(QDesktopServices::DataLocation); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
201 |
#else |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
202 |
homeDir = QDir::homePath(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
203 |
#endif |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
204 |
#ifdef Q_OS_SYMBIAN |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
205 |
if (homeDir.startsWith("Z")) |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
206 |
homeDir.replace(0,1,"C"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
207 |
#endif |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
208 |
return homeDir; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
209 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
210 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
211 |
void GinebraBrowser::removeFaviconDir() |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
212 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
213 |
QDir homeDir = getHomeDir(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
214 |
homeDir.cd("favicon"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
215 |
homeDir.cdUp(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
216 |
homeDir.rmdir("favicon"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
217 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
218 |
*/ |
3 | 219 |
void GinebraBrowser::show() |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
220 |
{ |
16 | 221 |
#ifndef Q_WS_MAEMO_5 |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
222 |
m_view->show(); |
16 | 223 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
224 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
225 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
226 |
void GinebraBrowser::onChromeComplete() |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
227 |
{ |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
228 |
#ifndef __gva_no_chrome__ |
16 | 229 |
#ifndef Q_WS_MAEMO_5 |
3 | 230 |
ControllableViewBase *windowView = WRT::WindowFlowView::createNew(m_chrome->layout()); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
231 |
windowView->setObjectName("WindowView"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
232 |
m_chrome->addView(windowView); |
3 | 233 |
|
16 | 234 |
#endif |
235 |
#endif |
|
3 | 236 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
237 |
//Create a content window and add it to the chrome |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
238 |
GVA::GWebContentView *content = new GVA::GWebContentView(m_chrome, 0, "WebView"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
239 |
//Load the initial content after the chrome loads. This makes sure that an initial bad |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
240 |
//content page won't hang up rendering the chrome. |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
241 |
m_chrome->addView(content); |
16 | 242 |
|
243 |
#ifdef Q_WS_MAEMO_5 |
|
244 |
safe_connect(content, SIGNAL(titleChanged(const QString &)), this, SLOT(onTitleChanged(const QString &))); |
|
245 |
#endif |
|
3 | 246 |
|
16 | 247 |
bool enabled = (bool) BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsInt("SaveSession"); |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
248 |
|
16 | 249 |
QString localPagesBaseDir = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("LocalPagesBaseDirectory"); |
250 |
QString startPage = localPagesBaseDir + m_contentUrl; |
|
3 | 251 |
|
16 | 252 |
// Load the previous page from history (if that option is enabled) |
253 |
if (enabled) { |
|
254 |
qDebug() << "GinebraBrowser::onChromeComplete: load from history"; |
|
255 |
content->saveZoomDataAndRestoreAfterLoad(); |
|
256 |
WebPageController::getSingleton()->loadFromHistory(); |
|
257 |
} |
|
258 |
||
259 |
// If the browser was launched by some other app calling QDesktopServices.openUrl, go to that url |
|
260 |
if (!m_initialUrl.isEmpty()) { |
|
261 |
qDebug() << "GinebraBrowser::onChromeComplete: url=" << m_initialUrl; |
|
262 |
openUrl(m_initialUrl); |
|
263 |
} |
|
264 |
// Otherwise, if load from history not enabled, load the start page |
|
265 |
else if (!enabled) { |
|
266 |
content->loadUrlToCurrentPage(startPage); |
|
267 |
} |
|
3 | 268 |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
269 |
m_chrome->showView("WebView"); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
270 |
destroySplashScreen(); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
271 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
272 |
|
16 | 273 |
#ifdef Q_WS_MAEMO_5 |
274 |
void GinebraBrowser::addMenuBarAction(QAction *action) { |
|
275 |
m_menu->addAction(action); |
|
276 |
} |
|
277 |
void GinebraBrowser::setMenuBarEnabled(bool value) { |
|
278 |
m_menu->setEnabled(value); |
|
279 |
} |
|
280 |
||
281 |
void GinebraBrowser::fixupWindowTitle() { |
|
282 |
||
283 |
} |
|
284 |
||
285 |
void GinebraBrowser::onTitleChanged(const QString &title) { |
|
286 |
// Update the title in the Maemo status bar. |
|
287 |
if(m_mainWindow) { |
|
288 |
if(title.isEmpty()) { |
|
289 |
m_mainWindow->setWindowTitle(QApplication::applicationName()); |
|
290 |
} |
|
291 |
else { |
|
292 |
m_mainWindow->setWindowTitle(title); |
|
293 |
} |
|
294 |
fixupWindowTitle(); |
|
295 |
} |
|
296 |
} |
|
297 |
||
298 |
#endif |
|
299 |
||
3 | 300 |
void GinebraBrowser::queueOpenUrl(QString url) |
301 |
{ |
|
302 |
emit openUrlRequested(url); |
|
303 |
} |
|
304 |
||
305 |
void GinebraBrowser::openUrl(QString url) |
|
306 |
{ |
|
307 |
#ifdef Q_OS_SYMBIAN |
|
308 |
// Handle the url as per the old standard at |
|
309 |
// http://wiki.forum.nokia.com/index.php/TSS000340_-_Launching_the_Web_browser_on_S60_3rd_Edition_to_open_a_specified_URL |
|
310 |
QChar urlType = url.at(0); |
|
311 |
// Bookmark (by uid) - not handled |
|
312 |
if (urlType == '1') { |
|
313 |
return; |
|
314 |
} |
|
315 |
// Saved deck (by uid) - not handled |
|
316 |
else if (urlType == '2') { |
|
317 |
return; |
|
318 |
} |
|
319 |
// Start page - not handled |
|
320 |
else if (urlType == '5') { |
|
321 |
return; |
|
322 |
} |
|
323 |
// Bookmark folder (by uid) - not handled |
|
324 |
else if (urlType == '6') { |
|
325 |
return; |
|
326 |
} |
|
327 |
// Url or Url + space + access point |
|
328 |
else if (urlType == '4') { |
|
329 |
url = url.mid(2); // Get the real url |
|
330 |
if (url.contains(' ')) { // Chop off the access point if there is one because it's not currently handled |
|
331 |
url = url.left(url.indexOf(' ')); |
|
332 |
} |
|
333 |
} |
|
334 |
// If no number then it's just a plain url |
|
335 |
#endif /* Q_OS_SYMBIAN */ |
|
336 |
// Bring the browser to the front (QDesktopServices openurl is supposed to do this but doesn't) |
|
16 | 337 |
#ifndef Q_WS_MAEMO_5 |
3 | 338 |
if (m_view) { |
339 |
m_view->activateWindow(); |
|
340 |
m_view->raise(); |
|
341 |
} |
|
16 | 342 |
#endif |
343 |
m_contentUrl = QDir::fromNativeSeparators(url); |
|
344 |
WebPageController::getSingleton()->loadInitialUrlFromOtherApp(m_contentUrl); |
|
3 | 345 |
// GVA::GWebContentView *webView = (GVA::GWebContentView *)m_chrome->getView("WebView"); |
346 |
// if (webView != 0) { |
|
347 |
// m_contentUrl = url; |
|
348 |
// webView->loadUrlToCurrentPage(url); |
|
349 |
// } |
|
350 |
} |
|
351 |
||
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
352 |
void GinebraBrowser::showSplashScreen() { |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
353 |
QString splashImage = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("SplashImage"); |
3 | 354 |
QString baseDir = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("ChromeBaseDirectory"); |
355 |
QString imagePath = baseDir + splashImage; |
|
356 |
||
9 | 357 |
#ifdef Q_WS_MAEMO_5 |
358 |
m_splashScreenM5 = new QSplashScreen(m_mainWindow, QPixmap(imagePath)); |
|
359 |
m_splashScreenM5->show(); |
|
360 |
#else |
|
361 |
||
3 | 362 |
if (!imagePath.isNull()) { |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
363 |
m_splashScreen = new QLabel(NULL); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
364 |
m_splashScreen->setAlignment(Qt::AlignCenter); |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
365 |
m_splashScreen->setStyleSheet("background-color: #FFF"); |
12 | 366 |
|
367 |
#ifdef ORBIT_UI |
|
368 |
if (m_view->orientation() == Qt::Horizontal) { |
|
369 |
QMatrix mx; |
|
370 |
mx.rotate(KLandscapeRoatation); |
|
371 |
m_splashScreen->setPixmap((QPixmap(imagePath)).transformed(mx)); |
|
372 |
} |
|
373 |
else { |
|
374 |
m_splashScreen->setPixmap((QPixmap(imagePath))); |
|
375 |
} |
|
376 |
#else |
|
377 |
m_splashScreen->setPixmap((QPixmap(imagePath))); |
|
378 |
#endif |
|
379 |
||
380 |
||
3 | 381 |
if (m_splashScreen->pixmap()->isNull()) { |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
382 |
;//qDebug() << "ChromeView::chromeLoaded: ERROR splashscreen creation failed. " << imagePath; |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
383 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
384 |
else { |
9 | 385 |
#ifdef Q_OS_SYMBIAN |
386 |
m_splashScreen->showFullScreen(); |
|
387 |
m_view->showFullScreen(); |
|
388 |
#else |
|
389 |
m_splashScreen->setGeometry(0,0,360,640); |
|
3 | 390 |
m_splashScreen->show(); |
9 | 391 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
392 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
393 |
} |
9 | 394 |
#endif |
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
395 |
} |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
396 |
|
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
397 |
void GinebraBrowser::destroySplashScreen() |
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
398 |
{ |
9 | 399 |
#ifdef Q_WS_MAEMO_5 |
400 |
if(m_splashScreenM5) { |
|
401 |
delete m_splashScreenM5; |
|
402 |
m_splashScreenM5 = 0; |
|
403 |
} |
|
404 |
#else |
|
405 |
if (m_splashScreen) { |
|
406 |
delete m_splashScreen; |
|
407 |
m_splashScreen = NULL; |
|
408 |
} |
|
409 |
#endif |
|
0
1450b09d0cfd
Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff
changeset
|
410 |
} |
3 | 411 |
|
412 |
void GinebraBrowser::setApplicationNameVersion() |
|
413 |
{ |
|
414 |
QCoreApplication::setApplicationName(BEDROCK_APPLICATION_NAME); |
|
415 |
QString browserAppVersion = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("BedrockVersion"); |
|
416 |
QCoreApplication::setApplicationVersion(browserAppVersion); |
|
417 |
} |
|
9 | 418 |