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