browsercore/core/wrtbrowsercontainer.cpp
author hgs
Fri, 15 Oct 2010 17:30:59 -0400
changeset 16 3c88a81ff781
parent 12 afcd8e6d025b
permissions -rw-r--r--
201041
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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) 2009 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.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     4
*
3
hgs
parents: 0
diff changeset
     5
* This program is free software: you can redistribute it and/or modify
hgs
parents: 0
diff changeset
     6
* it under the terms of the GNU Lesser General Public License as published by
hgs
parents: 0
diff changeset
     7
* the Free Software Foundation, version 2.1 of the License.
hgs
parents: 0
diff changeset
     8
* 
hgs
parents: 0
diff changeset
     9
* This program is distributed in the hope that it will be useful,
hgs
parents: 0
diff changeset
    10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
hgs
parents: 0
diff changeset
    11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
hgs
parents: 0
diff changeset
    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
hgs
parents: 0
diff changeset
    14
* You should have received a copy of the GNU Lesser General Public License
hgs
parents: 0
diff changeset
    15
* along with this program.  If not, 
hgs
parents: 0
diff changeset
    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
hgs
parents: 0
diff changeset
    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 "browserpagefactory.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "wrtbrowsercontainer_p.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "wrtbrowsercontainer.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    25
#include "webpagedata.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "SchemeHandlerBr.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "webnetworkaccessmanager.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "webcookiejar.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include "secureuicontroller.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    30
#include "LoadController.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    31
#include "WebDialogProvider.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    32
#include "bedrockprovisioning.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    33
#include <QPainter>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    34
#include <QAuthenticator>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    35
#include <QFile>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    36
#include <QMessageBox>
3
hgs
parents: 0
diff changeset
    37
#include <QWebHistory>
hgs
parents: 0
diff changeset
    38
#include <QWebFrame>
hgs
parents: 0
diff changeset
    39
#include <QGraphicsWebView>
hgs
parents: 0
diff changeset
    40
16
hgs
parents: 12
diff changeset
    41
#ifdef QT_GEOLOCATION
hgs
parents: 12
diff changeset
    42
#include "geolocationManager.h"
hgs
parents: 12
diff changeset
    43
hgs
parents: 12
diff changeset
    44
/* Declare the user defined meta type for use with QVariant in geolocation. */
hgs
parents: 12
diff changeset
    45
Q_DECLARE_METATYPE(QWebPage::PermissionPolicy);
hgs
parents: 12
diff changeset
    46
#endif // QT_GEOLOCATION
hgs
parents: 12
diff changeset
    47
3
hgs
parents: 0
diff changeset
    48
QDataStream &operator<<(QDataStream &out, const WebPageData &myObj)
hgs
parents: 0
diff changeset
    49
{
16
hgs
parents: 12
diff changeset
    50
    out << myObj.magic
hgs
parents: 12
diff changeset
    51
        << myObj.minScale
hgs
parents: 12
diff changeset
    52
        << myObj.maxScale
hgs
parents: 12
diff changeset
    53
        << myObj.userScalable
hgs
parents: 12
diff changeset
    54
        << myObj.initialScale
hgs
parents: 12
diff changeset
    55
        << myObj.rect
hgs
parents: 12
diff changeset
    56
        << myObj.webViewRect
hgs
parents: 12
diff changeset
    57
        << myObj.scale
hgs
parents: 12
diff changeset
    58
        << myObj.viewportSize
hgs
parents: 12
diff changeset
    59
        << myObj.specifiedWidth
hgs
parents: 12
diff changeset
    60
        << myObj.specifiedHeight
hgs
parents: 12
diff changeset
    61
        << myObj.fitToScreen;
3
hgs
parents: 0
diff changeset
    62
   return out;
hgs
parents: 0
diff changeset
    63
}
hgs
parents: 0
diff changeset
    64
hgs
parents: 0
diff changeset
    65
QDataStream &operator>>(QDataStream &in, WebPageData &myObj)
hgs
parents: 0
diff changeset
    66
{
16
hgs
parents: 12
diff changeset
    67
    in >> myObj.magic
hgs
parents: 12
diff changeset
    68
       >> myObj.minScale
hgs
parents: 12
diff changeset
    69
       >> myObj.maxScale
hgs
parents: 12
diff changeset
    70
       >> myObj.userScalable
hgs
parents: 12
diff changeset
    71
       >> myObj.initialScale
hgs
parents: 12
diff changeset
    72
       >> myObj.rect
hgs
parents: 12
diff changeset
    73
       >> myObj.webViewRect
hgs
parents: 12
diff changeset
    74
       >> myObj.scale
hgs
parents: 12
diff changeset
    75
       >> myObj.viewportSize
hgs
parents: 12
diff changeset
    76
       >> myObj.specifiedWidth
hgs
parents: 12
diff changeset
    77
       >> myObj.specifiedHeight
hgs
parents: 12
diff changeset
    78
       >> myObj.fitToScreen;
3
hgs
parents: 0
diff changeset
    79
   return in;
hgs
parents: 0
diff changeset
    80
}
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    81
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
namespace WRT
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    83
{
3
hgs
parents: 0
diff changeset
    84
const int historyItemsCount = 10;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    85
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    86
WrtBrowserContainerPrivate::WrtBrowserContainerPrivate(QObject* parent,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    87
		WrtBrowserContainer* page/*never NULL*/) : m_schemeHandler(new SchemeHandler())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    88
,   m_pageFactory(0)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    89
,   m_widget(0)
3
hgs
parents: 0
diff changeset
    90
,   m_fileChooser(0)
hgs
parents: 0
diff changeset
    91
,   m_needUpdateThumbnail(false)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    92
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    93
    m_page = page;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    94
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
    m_secureController = new WRT::SecureUIController(parent);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    96
    m_loadController = new  WRT::LoadController();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    97
 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
    // Turn off the scroll bars of main frame
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    99
    m_page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
    m_page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   102
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   103
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
WrtBrowserContainerPrivate::~WrtBrowserContainerPrivate()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   106
	m_page->setView(0);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   107
	if (m_page)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   108
		m_page->disconnect();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
	delete m_schemeHandler;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   110
  delete m_secureController;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   111
  delete m_loadController;
3
hgs
parents: 0
diff changeset
   112
  delete m_fileChooser;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   113
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   114
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   115
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
 * Static function which creates Wrt page with parent Widget
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
 * @param parent   : parent widget for the new page
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   118
 * @return WrtBrowserContainer : Page handle to the newly created page
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   120
WrtBrowserContainer* WrtBrowserContainer::createPageWithWidgetParent(
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
		QObject* parent, WrtBrowserContainer* page)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   122
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   123
    if (page)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   124
    {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   125
        page->setParent(parent);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
        return page;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   127
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
    else
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
        return new WrtBrowserContainer(parent);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   130
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   132
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   133
 * WrtBrowserContainer Constructor
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   134
 * @param parent : Widget parent
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   135
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   136
WrtBrowserContainer::WrtBrowserContainer(QObject* parent) :
3
hgs
parents: 0
diff changeset
   137
	QWebPage(parent), d(new WrtBrowserContainerPrivate(this, this))
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   138
{
3
hgs
parents: 0
diff changeset
   139
    
hgs
parents: 0
diff changeset
   140
  settings()->setAttribute(QWebSettings::PluginsEnabled, true);
16
hgs
parents: 12
diff changeset
   141
  BEDROCK_PROVISIONING::BedrockProvisioning * provisioning = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning();
hgs
parents: 12
diff changeset
   142
  settings()->setAttribute(QWebSettings::JavascriptCanOpenWindows, !provisioning->value("PopupBlocking").toInt());
hgs
parents: 12
diff changeset
   143
hgs
parents: 12
diff changeset
   144
  // Download related enable "forwardUnsupportedContent" to redirect unsupported content to download manager
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   145
	setForwardUnsupportedContent(true);
3
hgs
parents: 0
diff changeset
   146
#ifdef BEDROCK_TILED_BACKING_STORE
16
hgs
parents: 12
diff changeset
   147
#ifndef OWN_BACKING_STORE
hgs
parents: 12
diff changeset
   148
	bool enableTiling = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->value("EnableTiling").toBool(); 
hgs
parents: 12
diff changeset
   149
    settings()->setAttribute(QWebSettings::TiledBackingStoreEnabled, enableTiling);
hgs
parents: 12
diff changeset
   150
#endif // OWN_BACKING_STORE
3
hgs
parents: 0
diff changeset
   151
    settings()->setAttribute(QWebSettings::ZoomTextOnly, false);
hgs
parents: 0
diff changeset
   152
    settings()->setAttribute(QWebSettings::FrameFlatteningEnabled, true);
hgs
parents: 0
diff changeset
   153
hgs
parents: 0
diff changeset
   154
    //Configure tiling properties
hgs
parents: 0
diff changeset
   155
    //This would set tile size to (256, 256) and add 25ms delay between constructing
hgs
parents: 0
diff changeset
   156
    //individual tiles. The settings would try to cache an area 1.5x width and 1.5x height
hgs
parents: 0
diff changeset
   157
    //of the current viewport (centered to the viewport) with tiles and would drop tiles
hgs
parents: 0
diff changeset
   158
    //after they are outside an area 2x the width and 2.5x the height of the viewport.
hgs
parents: 0
diff changeset
   159
    //Refer https://bugs.webkit.org/show_bug.cgi?id=39874
16
hgs
parents: 12
diff changeset
   160
    
hgs
parents: 12
diff changeset
   161
    BEDROCK_PROVISIONING::BedrockProvisioning* brSettings = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning();
hgs
parents: 12
diff changeset
   162
    int tileW = brSettings->value("TilesWidth").toInt();
hgs
parents: 12
diff changeset
   163
    int tileH = brSettings->value("TilesHeight").toInt();
hgs
parents: 12
diff changeset
   164
    int tileCreationDelay = brSettings->value("TileCreationDelay").toInt();
hgs
parents: 12
diff changeset
   165
    qreal coverAreaMultiplier = brSettings->value("TileCoverAreaMultiplier").toDouble();
hgs
parents: 12
diff changeset
   166
    qreal keepAreaMultiplier = brSettings->value("TileKeepAreaMultiplier").toDouble();
hgs
parents: 12
diff changeset
   167
    setProperty("_q_TiledBackingStoreTileSize", QSize(tileW, tileH));
hgs
parents: 12
diff changeset
   168
    setProperty("_q_TiledBackingStoreTileCreationDelay", tileCreationDelay);
hgs
parents: 12
diff changeset
   169
    setProperty("_q_TiledBackingStoreCoverAreaMultiplier", QSizeF(coverAreaMultiplier, coverAreaMultiplier));
hgs
parents: 12
diff changeset
   170
    setProperty("_q_TiledBackingStoreKeepAreaMultiplier", QSizeF(keepAreaMultiplier, keepAreaMultiplier));
3
hgs
parents: 0
diff changeset
   171
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   172
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   173
#ifndef NO_NETWORK_ACCESS_MANAGER	
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
	setNetworkAccessManager(new WebNetworkAccessManager(this,this));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
#endif
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
	
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
	history()->setMaximumItemCount(historyItemsCount);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
    /* Connect secure related signals and slots */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
    connect(mainFrame(), SIGNAL(urlChanged(QUrl)), d->m_secureController, SLOT(setTopLevelScheme(const QUrl &)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
    connect(this, SIGNAL(loadFinished(bool)), d->m_secureController, SLOT( endSecureCheck(bool) ) );
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
    connect(d->m_secureController, SIGNAL(pageSecureState(int)), this, SLOT(pageSecureState(int)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
    connect(networkAccessManager(), SIGNAL(sslErrors(QNetworkReply *, const QList<QSslError> &)), d->m_secureController, SLOT(onSslErrors(QNetworkReply *, const QList<QSslError> &)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    connect(this, SIGNAL(loadStarted()), d->m_loadController, SLOT(loadStarted()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
    connect(this, SIGNAL(loadProgress(int)), d->m_loadController, SLOT(loadProgress(int)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
    connect(this, SIGNAL(loadFinished(bool)), d->m_loadController, SLOT(loadFinished(bool)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
    connect(mainFrame(), SIGNAL(urlChanged(QUrl)), d->m_loadController, SLOT(urlChanged(QUrl)));
16
hgs
parents: 12
diff changeset
   189
    connect(mainFrame(), SIGNAL(initialLayoutCompleted()), d->m_loadController, SLOT(initialLayoutCompleted()));
hgs
parents: 12
diff changeset
   190
	  
hgs
parents: 12
diff changeset
   191
#ifdef QT_GEOLOCATION 
hgs
parents: 12
diff changeset
   192
    d->m_geolocationManager = GeolocationManager::getSingleton();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    
16
hgs
parents: 12
diff changeset
   194
    /* Register user defined Meta Types used in geolocation API. */
hgs
parents: 12
diff changeset
   195
    qRegisterMetaType<QWebPage::PermissionPolicy>("QWebPage::PermissionPolicy");
hgs
parents: 12
diff changeset
   196
    /* Connect the geolocation permission signal to the geolocation handler. */
hgs
parents: 12
diff changeset
   197
    connect(this, SIGNAL(requestPermissionFromUser(QWebFrame*, QWebPage::PermissionDomain)),
hgs
parents: 12
diff changeset
   198
        this, SLOT(handleRequestPermissionFromUser(QWebFrame*, QWebPage::PermissionDomain)));
hgs
parents: 12
diff changeset
   199
#endif // QT_GEOLOCATION
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   200
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   201
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   202
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   203
 * WrtBrowserContainer destructor
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   204
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   205
WrtBrowserContainer::~WrtBrowserContainer()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
	// gracefully but warn, disconnect anything connected to this page
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
	if (!disconnect())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
		qWarning("WrtPage destructor blanket disconnect failed");
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
    //setNetworkAccessManager(NULL);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
   delete d;
3
hgs
parents: 0
diff changeset
   213
   
hgs
parents: 0
diff changeset
   214
   // 
hgs
parents: 0
diff changeset
   215
   QList<QWebHistoryItem> items = history()->items();
hgs
parents: 0
diff changeset
   216
hgs
parents: 0
diff changeset
   217
   for (int i = 0; i < history()->count(); i++) {
hgs
parents: 0
diff changeset
   218
       QWebHistoryItem item = items.at(i);
hgs
parents: 0
diff changeset
   219
       WebPageData* data = (WebPageData*)(item.userData().value<void*>());
hgs
parents: 0
diff changeset
   220
       if(data){
hgs
parents: 0
diff changeset
   221
           QVariant variant;
hgs
parents: 0
diff changeset
   222
           item.setUserData(variant);
hgs
parents: 0
diff changeset
   223
           delete data;
hgs
parents: 0
diff changeset
   224
       }
hgs
parents: 0
diff changeset
   225
   }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
}
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
QGraphicsWidget* WrtBrowserContainer::webWidget() const
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   229
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
    return d->m_widget;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   232
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
void WrtBrowserContainer::setWebWidget(QGraphicsWidget* view)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    d->m_widget = view;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
    if (view)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
    {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
        QGraphicsWebView* webView = static_cast<QGraphicsWebView*>(view);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
        if(webView)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
            webView->setPage(this);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   243
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   245
 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   246
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
 * Handles pageSecureState state 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
void WrtBrowserContainer::pageSecureState(int state) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
    emit secureStateChange(state);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
 * Returns schemeHandler
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   257
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
SchemeHandler* WrtBrowserContainer::schemeHandler() const
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   259
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   260
   return d->m_schemeHandler;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   261
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   262
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
/*!
16
hgs
parents: 12
diff changeset
   264
 *  This function returns a thumbnail image for this page as specified by X & Y co-ordinate scale factors
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
 * @param  scaleX :  X Co-ordinate scale factor for the page thumbnail
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
 * @param  scaleY :  y Co-ordinate scale factor for the page thumbnail
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   267
 */
16
hgs
parents: 12
diff changeset
   268
QImage WrtBrowserContainer::thumbnail(QSize s)
hgs
parents: 12
diff changeset
   269
{
hgs
parents: 12
diff changeset
   270
    QImage image(s, QImage::Format_RGB32);
hgs
parents: 12
diff changeset
   271
    qreal fitWidth = s.width();
hgs
parents: 12
diff changeset
   272
    QPoint renderPos(0, 0);
hgs
parents: 12
diff changeset
   273
    WebPageData* d = pageZoomMetaData();
hgs
parents: 12
diff changeset
   274
    qreal scale = 1.0;
hgs
parents: 12
diff changeset
   275
    if(d->isValid())
hgs
parents: 12
diff changeset
   276
    {
hgs
parents: 12
diff changeset
   277
        fitWidth = d->rect.width();
hgs
parents: 12
diff changeset
   278
        if(fitWidth > d->webViewRect.width() * d->scale)
hgs
parents: 12
diff changeset
   279
            fitWidth = d->webViewRect.width() * d->scale;
hgs
parents: 12
diff changeset
   280
        renderPos = d->webViewRect.topLeft().toPoint();
hgs
parents: 12
diff changeset
   281
        scale = s.width() / (fitWidth / d->scale);
hgs
parents: 12
diff changeset
   282
    }
hgs
parents: 12
diff changeset
   283
hgs
parents: 12
diff changeset
   284
    if (image.isNull()) {
hgs
parents: 12
diff changeset
   285
        return QImage();
hgs
parents: 12
diff changeset
   286
    }
hgs
parents: 12
diff changeset
   287
    QPainter painter(&image);
hgs
parents: 12
diff changeset
   288
    QRect r(QPoint(0,0),s);
hgs
parents: 12
diff changeset
   289
    QRegion clip(r);
hgs
parents: 12
diff changeset
   290
    painter.setBrush(Qt::white);
hgs
parents: 12
diff changeset
   291
    painter.fillRect(r,Qt::white);
hgs
parents: 12
diff changeset
   292
hgs
parents: 12
diff changeset
   293
    QTransform transform;
hgs
parents: 12
diff changeset
   294
    transform.scale(scale,scale);
hgs
parents: 12
diff changeset
   295
    renderPos /= scale;
hgs
parents: 12
diff changeset
   296
    transform.translate(renderPos.x(),renderPos.y());
hgs
parents: 12
diff changeset
   297
    painter.setTransform(transform);
hgs
parents: 12
diff changeset
   298
hgs
parents: 12
diff changeset
   299
    mainFrame()->render(&painter);
hgs
parents: 12
diff changeset
   300
    return image;
hgs
parents: 12
diff changeset
   301
}
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
QImage WrtBrowserContainer::pageThumbnail(qreal scaleX, qreal scaleY)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
{
16
hgs
parents: 12
diff changeset
   304
    #ifdef Q_WS_MAEMO_5
hgs
parents: 12
diff changeset
   305
    QSize size(800,424);
hgs
parents: 12
diff changeset
   306
    #else
hgs
parents: 12
diff changeset
   307
    QSize size(640,360);
hgs
parents: 12
diff changeset
   308
    #endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    QImage image(size, QImage::Format_RGB32);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   310
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   311
    QPainter painter(&image);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
    QRect r(0, 0, size.width(), size.height());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   313
    QRegion clip(r);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   314
    painter.save();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
    painter.setBrush(Qt::white);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   316
    painter.drawRect(r);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   317
    painter.restore();
16
hgs
parents: 12
diff changeset
   318
    qreal saveZoomFactor = mainFrame()->zoomFactor();
hgs
parents: 12
diff changeset
   319
    mainFrame()->setZoomFactor(1.0);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
    mainFrame()->render(&painter, clip);
16
hgs
parents: 12
diff changeset
   321
    mainFrame()->setZoomFactor(saveZoomFactor);
hgs
parents: 12
diff changeset
   322
    QImage thumbnail = image.scaled(scaleX * size.width(), scaleY * size.height(),Qt::KeepAspectRatio,Qt::SmoothTransformation);
3
hgs
parents: 0
diff changeset
   323
    return thumbnail;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   324
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   325
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   326
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   327
 Pulic Slots:
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
 void savePageDataToHistoryItem(QWebFrame*, QWebHistoryItem* item);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
 void slotAuthenticationRequired(QNetworkReply *, QAuthenticator *);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
 void slotProxyAuthenticationRequired(const QNetworkProxy &, QAuthenticator *);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
 * Public slot, saves the page data (like thumbail, current position, zoom factor etc ) to WebHistoryItem
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
 * @frame  main frame for which the data has to be stored
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
 * @item   handle to QWebHistoryItem into which the page data has to be saved.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
void WrtBrowserContainer::savePageDataToHistoryItem(QWebFrame* frame,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
      QWebHistoryItem* item)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   341
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   342
    if (frame != mainFrame() || !item->isValid() || !webWidget())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   343
    {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   344
        return;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   345
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
    if (restoreSession()) return;
16
hgs
parents: 12
diff changeset
   347
hgs
parents: 12
diff changeset
   348
//    item->setUserData(QVariant::fromValue(d->m_zoomData));
hgs
parents: 12
diff changeset
   349
/*    WebPageData data(this);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
    //   WebPageData data = item->userData().value<WebPageData>();
3
hgs
parents: 0
diff changeset
   351
    data.m_zoomFactor = 1.0; // Need to find a way to get this.  Not used right now anyway
hgs
parents: 0
diff changeset
   352
    data.m_thumbnail = pageThumbnail(0.5, 0.5);//data.m_zoomFactor, data.m_zoomFactor);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   353
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   354
    QPoint pos(0, 0);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
    //    pos = static_cast<WebCanvasWidget*>(webWidget())->canvas()->canvasToDocument(pos);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
    pos = mainFrame()->scrollPosition();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
    data.m_contentsPos = pos;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
    QVariant variant;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
    variant.setValue(data);
16
hgs
parents: 12
diff changeset
   360
    item->setUserData(variant); */
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   361
    //ii++;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   362
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   364
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
 * Public slot  AuthenticationRequired
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
 * Launches dialog for user name and password if Authentication is required for page load.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   367
 * @param reply     : network reply
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
 * @param  athenticator : athenticator
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   369
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   370
void WrtBrowserContainer::slotAuthenticationRequired(QNetworkReply* reply,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   371
      QAuthenticator* authenticator)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   372
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
	QString username, password;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   374
	if (WebDialogProvider::getUsernamePassword(0/*webWidget()*/, username, password))
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   375
	{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
		authenticator->setUser(username);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
		authenticator->setPassword(password);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   380
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   381
/*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   382
 * public slot for setting proxy when Authentication is Required
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   383
 * @param networkProxy : network Proxy
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   384
 * @param authenticator : authenticator
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   385
 */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   386
void WrtBrowserContainer::slotProxyAuthenticationRequired(
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   387
      const QNetworkProxy& networkProxy, QAuthenticator* authenticator)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   388
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
	QString username, password;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   390
	if (WebDialogProvider::getUsernamePassword(0/*webWidget()*/, username, password))
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   391
	{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   392
		authenticator->setUser(username);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   393
		authenticator->setPassword(password);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   394
    }
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
16
hgs
parents: 12
diff changeset
   397
#ifdef QT_GEOLOCATION
hgs
parents: 12
diff changeset
   398
void WrtBrowserContainer::handleRequestPermissionFromUser(QWebFrame* frame, QWebPage::PermissionDomain permissionDomain)
hgs
parents: 12
diff changeset
   399
{
hgs
parents: 12
diff changeset
   400
    QList<QVariant> attributes;
hgs
parents: 12
diff changeset
   401
    QUrl baseUrl = frame->baseUrl();
hgs
parents: 12
diff changeset
   402
    QString domain = baseUrl.host();
hgs
parents: 12
diff changeset
   403
    
hgs
parents: 12
diff changeset
   404
    qDebug() << "handleRequestPermissionFromUser";
hgs
parents: 12
diff changeset
   405
    
hgs
parents: 12
diff changeset
   406
    // Check if the domian from the frame already exisit in the database
hgs
parents: 12
diff changeset
   407
    attributes = d->m_geolocationManager->findGeodomain(domain);
hgs
parents: 12
diff changeset
   408
    
hgs
parents: 12
diff changeset
   409
    if (!attributes.isEmpty())
hgs
parents: 12
diff changeset
   410
    {
hgs
parents: 12
diff changeset
   411
        QWebPage::PermissionPolicy permission
hgs
parents: 12
diff changeset
   412
            = attributes.at(0).value<QWebPage::PermissionPolicy>();
hgs
parents: 12
diff changeset
   413
       
hgs
parents: 12
diff changeset
   414
        setUserPermission(frame, permissionDomain, permission);
hgs
parents: 12
diff changeset
   415
    }
hgs
parents: 12
diff changeset
   416
    else
hgs
parents: 12
diff changeset
   417
    {
hgs
parents: 12
diff changeset
   418
        // If the domain is empty string, provide whole base url
hgs
parents: 12
diff changeset
   419
        if (domain == "")
hgs
parents: 12
diff changeset
   420
            domain = baseUrl.toString();
hgs
parents: 12
diff changeset
   421
	          
hgs
parents: 12
diff changeset
   422
        emit requestGeolocationPermission(frame, permissionDomain, domain);
hgs
parents: 12
diff changeset
   423
    }
hgs
parents: 12
diff changeset
   424
}
hgs
parents: 12
diff changeset
   425
hgs
parents: 12
diff changeset
   426
void WrtBrowserContainer::setGeolocationPermission(QWebFrame* frame, QWebPage::PermissionDomain permissionDomain, 
hgs
parents: 12
diff changeset
   427
	       bool permissionGranted, bool saveSetting)
hgs
parents: 12
diff changeset
   428
{
hgs
parents: 12
diff changeset
   429
    QWebPage::PermissionPolicy permission = QWebPage::PermissionUnknown;
hgs
parents: 12
diff changeset
   430
    	
hgs
parents: 12
diff changeset
   431
    if (permissionGranted == true)
hgs
parents: 12
diff changeset
   432
        permission = QWebPage::PermissionGranted;
hgs
parents: 12
diff changeset
   433
    else
hgs
parents: 12
diff changeset
   434
        permission = QWebPage::PermissionDenied;
hgs
parents: 12
diff changeset
   435
	  	  	
hgs
parents: 12
diff changeset
   436
    setUserPermission(frame, permissionDomain, permission);
hgs
parents: 12
diff changeset
   437
    
hgs
parents: 12
diff changeset
   438
    // save the geolocation permission setting (granted/denied) in the data base
hgs
parents: 12
diff changeset
   439
    if (saveSetting)
hgs
parents: 12
diff changeset
   440
    {
hgs
parents: 12
diff changeset
   441
        QUrl baseUrl = frame->baseUrl();
hgs
parents: 12
diff changeset
   442
        QString domain = baseUrl.host();
hgs
parents: 12
diff changeset
   443
	      
hgs
parents: 12
diff changeset
   444
        // If the domain is empty string, provide whole base url
hgs
parents: 12
diff changeset
   445
        if (domain == "")
hgs
parents: 12
diff changeset
   446
            domain = baseUrl.toString();
hgs
parents: 12
diff changeset
   447
	          
hgs
parents: 12
diff changeset
   448
        d->m_geolocationManager->addGeodomain(domain, permission);
hgs
parents: 12
diff changeset
   449
    }
hgs
parents: 12
diff changeset
   450
}
hgs
parents: 12
diff changeset
   451
#endif // QT_GEOLOCATION 
hgs
parents: 12
diff changeset
   452
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   453
void WrtBrowserContainer::setPageFactory(BrowserPageFactory* f)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   454
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   455
    d->m_pageFactory = f;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   456
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   457
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   458
QString WrtBrowserContainer::pageTitle(){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   459
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
    QString title = mainFrame()->title();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   461
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   462
    // If mainFrame title is empty we may be restoring session
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   463
    // Check history title
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   464
    if (title.isEmpty()){ 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   465
    	title = history()->currentItem().title();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   466
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
    
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   468
    /* If there is no title, provide the partial url */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
    if (title.isEmpty()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
        QUrl url  = mainFrame()->url(); 
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   471
        // If mainframe url is empty, we may be restoring session
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   472
        // check history url
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   473
        if (url.isEmpty()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   474
        	url = history()->currentItem().url();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   475
        }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   476
        title = url.toString();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   477
        QString scheme=url.scheme();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   478
        title.remove(0, scheme.length() + 3); // remove "scheme://"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   479
        if (title.startsWith("www.", Qt::CaseInsensitive)) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   480
            title.remove(0, 4);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   481
        }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   482
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   483
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   484
    return title;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   485
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   486
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
int WrtBrowserContainer::secureState() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
    return d->m_secureController->secureState();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   490
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   491
bool WrtBrowserContainer::restoreSession() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   492
	if (d->m_pageFactory)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   493
    return d->m_pageFactory->m_bRestoreSession;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   494
  else
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   495
    return true;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   496
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   497
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
bool WrtBrowserContainer::emptyWindow() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   499
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   500
    bool result= false;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   501
    if (mainFrame()->title()  == "" && mainFrame()->url().toString() == "" )
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   502
        result = true;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   503
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   504
    return result;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   505
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   506
16
hgs
parents: 12
diff changeset
   507
WebPageData* WrtBrowserContainer::pageZoomMetaData()
hgs
parents: 12
diff changeset
   508
{
hgs
parents: 12
diff changeset
   509
    QVariant userData = history()->currentItem().userData();
hgs
parents: 12
diff changeset
   510
    QVariant::Type t = userData.type();
hgs
parents: 12
diff changeset
   511
    int ut = userData.userType();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   512
16
hgs
parents: 12
diff changeset
   513
    if(userData.isValid() && t == QVariant::UserType &&
hgs
parents: 12
diff changeset
   514
       ut == QMetaTypeId<WebPageData>::qt_metatype_id())
hgs
parents: 12
diff changeset
   515
       return (WebPageData*)(history()->currentItem().userData().constData());
hgs
parents: 12
diff changeset
   516
    else {
hgs
parents: 12
diff changeset
   517
        static WebPageData dummyData;
hgs
parents: 12
diff changeset
   518
        return &dummyData;
hgs
parents: 12
diff changeset
   519
    }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
16
hgs
parents: 12
diff changeset
   522
void WrtBrowserContainer::setPageZoomMetaData(const WebPageData &zoomData ){
hgs
parents: 12
diff changeset
   523
    history()->currentItem().setUserData(qVariantFromValue(zoomData));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
3
hgs
parents: 0
diff changeset
   527
WrtBrowserFileChooser::~WrtBrowserFileChooser()
hgs
parents: 0
diff changeset
   528
{}
hgs
parents: 0
diff changeset
   529
hgs
parents: 0
diff changeset
   530
void WrtBrowserContainer::setFileChooser(WrtBrowserFileChooser * chooser)
hgs
parents: 0
diff changeset
   531
{
hgs
parents: 0
diff changeset
   532
    if (d->m_fileChooser) {
hgs
parents: 0
diff changeset
   533
        delete d->m_fileChooser;
hgs
parents: 0
diff changeset
   534
    }
hgs
parents: 0
diff changeset
   535
hgs
parents: 0
diff changeset
   536
    d->m_fileChooser = chooser;
hgs
parents: 0
diff changeset
   537
}
hgs
parents: 0
diff changeset
   538
hgs
parents: 0
diff changeset
   539
QString WrtBrowserContainer::chooseFile(QWebFrame * parentFrame, const QString & suggestedFile)
hgs
parents: 0
diff changeset
   540
{
hgs
parents: 0
diff changeset
   541
    if (d->m_fileChooser != 0) {
hgs
parents: 0
diff changeset
   542
        return d->m_fileChooser->chooseFile(parentFrame, suggestedFile);
hgs
parents: 0
diff changeset
   543
    }
hgs
parents: 0
diff changeset
   544
hgs
parents: 0
diff changeset
   545
    return QWebPage::chooseFile(parentFrame, suggestedFile);
hgs
parents: 0
diff changeset
   546
}
hgs
parents: 0
diff changeset
   547
hgs
parents: 0
diff changeset
   548
QString WrtBrowserContainer::userAgentForUrl(const QUrl& url) const
hgs
parents: 0
diff changeset
   549
{
hgs
parents: 0
diff changeset
   550
    QString uaString = BEDROCK_PROVISIONING::BedrockProvisioning::createBedrockProvisioning()->valueAsString("UserAgentString");
hgs
parents: 0
diff changeset
   551
   
hgs
parents: 0
diff changeset
   552
    if (uaString.isEmpty())
hgs
parents: 0
diff changeset
   553
   	{
hgs
parents: 0
diff changeset
   554
   	    QUrl url;
hgs
parents: 0
diff changeset
   555
        return QWebPage::userAgentForUrl(url); 
hgs
parents: 0
diff changeset
   556
   	}
hgs
parents: 0
diff changeset
   557
   	else
hgs
parents: 0
diff changeset
   558
        return uaString;
hgs
parents: 0
diff changeset
   559
}
hgs
parents: 0
diff changeset
   560
	
hgs
parents: 0
diff changeset
   561
WRT::WrtBrowserContainer* WrtBrowserContainer::createWindow(
hgs
parents: 0
diff changeset
   562
    QWebPage::WebWindowType webWindowType)
hgs
parents: 0
diff changeset
   563
{
hgs
parents: 0
diff changeset
   564
hgs
parents: 0
diff changeset
   565
    /* When WrtPage is created, QWebSettings::JavascriptCanOpenWindows is initialized
hgs
parents: 0
diff changeset
   566
     * to popup setting value. Need not do any check here 
hgs
parents: 0
diff changeset
   567
     */
hgs
parents: 0
diff changeset
   568
    if (d->m_pageFactory)
hgs
parents: 0
diff changeset
   569
    {
hgs
parents: 0
diff changeset
   570
        // no need to signal in this case
hgs
parents: 0
diff changeset
   571
        return d->m_pageFactory->openPage();
hgs
parents: 0
diff changeset
   572
    }
hgs
parents: 0
diff changeset
   573
hgs
parents: 0
diff changeset
   574
    WrtBrowserContainer* wrtPage = new WrtBrowserContainer();
hgs
parents: 0
diff changeset
   575
    emit createNewWindow(wrtPage);
hgs
parents: 0
diff changeset
   576
    return wrtPage;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
16
hgs
parents: 12
diff changeset
   579
void WrtBrowserContainer::requestPageDataUpdate()
hgs
parents: 12
diff changeset
   580
{
hgs
parents: 12
diff changeset
   581
    QWebHistoryItem i = history()->currentItem();
hgs
parents: 12
diff changeset
   582
    emit saveFrameStateRequested(mainFrame(),&i);
hgs
parents: 12
diff changeset
   583
}
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
3
hgs
parents: 0
diff changeset
   585
} // namespace WRT
hgs
parents: 0
diff changeset
   586