ginebra2/ContentViews/GWebContentView.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) 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
hgs
parents: 0
diff changeset
     4
*
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.
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
     8
*
3
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
*
12
hgs
parents: 9
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 "GWebContentView.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    23
#include "GWebContentViewWidget.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    24
#include "GWebContentViewJSObject.h"
3
hgs
parents: 0
diff changeset
    25
#include "SuperPageView.h"
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    26
#include "ChromeWidget.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    27
#include "WebViewEventContext.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    28
#include "browserpagefactory.h"
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    29
#include "wrtbrowsercontainer.h"
3
hgs
parents: 0
diff changeset
    30
16
hgs
parents: 12
diff changeset
    31
#ifdef Q_WS_MAEMO_5
hgs
parents: 12
diff changeset
    32
#include "ContentViewContextMenu.h"
hgs
parents: 12
diff changeset
    33
#endif
hgs
parents: 12
diff changeset
    34
3
hgs
parents: 0
diff changeset
    35
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
    36
#include "WebContentViewWidget.h"
hgs
parents: 0
diff changeset
    37
#endif
hgs
parents: 0
diff changeset
    38
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    39
#include "webpagecontroller.h"
3
hgs
parents: 0
diff changeset
    40
#include "Utilities.h"
hgs
parents: 0
diff changeset
    41
#include "GSuperWebPage.h"
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    42
#include "qstmgestureevent.h"
16
hgs
parents: 12
diff changeset
    43
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    44
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    45
#include <QGraphicsWebView>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    46
#include <QWebHistory>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    47
#include <QWebPage>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    48
#include <QWebFrame>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    49
#include <QTimeLine>
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    50
#include <QDebug>
3
hgs
parents: 0
diff changeset
    51
#include <QtGui>
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    52
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    53
namespace GVA {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    54
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    55
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    56
  // ----------------------------------------------------------
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    57
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    58
  const qreal KZoomInStep = 1.05;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    59
  const qreal KZoomOutStep = 0.95238;
12
hgs
parents: 9
diff changeset
    60
  const qreal KInitialZoomFactorValue = 0.653061;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    61
  GWebContentView::GWebContentView(ChromeWidget *chrome, QObject * parent, const QString &objectName)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    62
    : ControllableViewBase(parent),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    63
      m_networkMgr(0),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    64
      m_chrome(chrome),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    65
      m_timeLine(0),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    66
      m_zoomIn(false),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    67
      m_backEnabled(false),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    68
      m_forwardEnabled(false),
3
hgs
parents: 0
diff changeset
    69
      m_sharedPage(0),
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    70
      m_currentSuperPage(m_superPages.begin()),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    71
      m_currentPageIsSuperPage(false),
3
hgs
parents: 0
diff changeset
    72
      m_timer(NULL),
12
hgs
parents: 9
diff changeset
    73
      m_enabled(true),
16
hgs
parents: 12
diff changeset
    74
      m_savedZoomValueInView(KInitialZoomFactorValue),
hgs
parents: 12
diff changeset
    75
      m_firstLoadHack(true),
hgs
parents: 12
diff changeset
    76
      m_savedZoomData(0)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    77
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    78
      setObjectName(objectName);
3
hgs
parents: 0
diff changeset
    79
      WRT::WrtBrowserContainer* page = BrowserPageFactory::openBrowserPage();
hgs
parents: 0
diff changeset
    80
hgs
parents: 0
diff changeset
    81
      setActions();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    82
3
hgs
parents: 0
diff changeset
    83
#ifdef BEDROCK_TILED_BACKING_STORE
16
hgs
parents: 12
diff changeset
    84
      m_widget = new WebContentViewWidget(parent, this, page);
3
hgs
parents: 0
diff changeset
    85
      connect(m_widget
hgs
parents: 0
diff changeset
    86
              , SIGNAL(updateZoomActions(bool,bool))
hgs
parents: 0
diff changeset
    87
              , this
hgs
parents: 0
diff changeset
    88
              , SLOT(setZoomActions(bool, bool)));
16
hgs
parents: 12
diff changeset
    89
hgs
parents: 12
diff changeset
    90
      connect(m_widget
hgs
parents: 12
diff changeset
    91
              , SIGNAL(mouseEvent(QEvent::Type)) 
hgs
parents: 12
diff changeset
    92
              , this
hgs
parents: 12
diff changeset
    93
              , SIGNAL(contentViewMouseEvent(QEvent::Type)));
3
hgs
parents: 0
diff changeset
    94
#else
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    95
      m_widget = new GWebContentViewWidget(parent, this, page);
3
hgs
parents: 0
diff changeset
    96
#endif
hgs
parents: 0
diff changeset
    97
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
    98
#ifndef __gva_no_chrome__
3
hgs
parents: 0
diff changeset
    99
      setJSObject(objectName);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   100
#endif
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   101
      m_networkMgr = webWidget()->page()->networkAccessManager();
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
      webWidget()->page()->currentFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   104
      webWidget()->page()->currentFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   105
3
hgs
parents: 0
diff changeset
   106
#ifndef BEDROCK_TILED_BACKING_STORE
16
hgs
parents: 12
diff changeset
   107
3
hgs
parents: 0
diff changeset
   108
      m_touchNavigation = new GContentViewTouchNavigation(page, m_widget);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   109
      m_touchNavigation->setChromeWidget(m_chrome);
3
hgs
parents: 0
diff changeset
   110
      m_touchNavigation->setParent(m_jsObject);
hgs
parents: 0
diff changeset
   111
      m_touchNavigation->setObjectName("touchNav");
hgs
parents: 0
diff changeset
   112
      safe_connect(m_touchNavigation, SIGNAL(mouseEvent(QEvent::Type)) , this, SIGNAL(contentViewMouseEvent(QEvent::Type)));
hgs
parents: 0
diff changeset
   113
      safe_connect(m_touchNavigation, SIGNAL(longPressEvent(QPoint)),
hgs
parents: 0
diff changeset
   114
                   webWidget(), SLOT(onLongPressEvent(QPoint)));
16
hgs
parents: 12
diff changeset
   115
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   116
#endif
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   117
      WRT::WrtBrowserContainer * wrtPage = static_cast<WRT::WrtBrowserContainer *>(page);
3
hgs
parents: 0
diff changeset
   118
      if (wrtPage) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   119
          wrtPage->setWebWidget(webWidget());
16
hgs
parents: 12
diff changeset
   120
          //pageCreated(wrtPage);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   121
      }
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
      connectAll();
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
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   126
  GWebContentView::~GWebContentView() {
16
hgs
parents: 12
diff changeset
   127
      deactivate();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   128
      disconnect(m_jsObject);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   129
      disconnect(webWidget());
3
hgs
parents: 0
diff changeset
   130
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   131
      delete m_touchNavigation;
3
hgs
parents: 0
diff changeset
   132
#endif
hgs
parents: 0
diff changeset
   133
      foreach(QAction * action, m_actions) {
hgs
parents: 0
diff changeset
   134
          delete action;
hgs
parents: 0
diff changeset
   135
      }
hgs
parents: 0
diff changeset
   136
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   137
      delete m_widget;
3
hgs
parents: 0
diff changeset
   138
      foreach(GSuperWebPage *page, m_superPages) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   139
          delete page;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   140
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   141
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   142
3
hgs
parents: 0
diff changeset
   143
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   144
void GWebContentView::zoomIn(qreal deltaPercent)
hgs
parents: 0
diff changeset
   145
{
hgs
parents: 0
diff changeset
   146
    //FIX ME : Do we need deltaPercent?
hgs
parents: 0
diff changeset
   147
    Q_UNUSED(deltaPercent);
hgs
parents: 0
diff changeset
   148
    m_widget->setPageZoom(true);
hgs
parents: 0
diff changeset
   149
}
hgs
parents: 0
diff changeset
   150
hgs
parents: 0
diff changeset
   151
void GWebContentView::zoomOut(qreal deltaPercent)
hgs
parents: 0
diff changeset
   152
{
hgs
parents: 0
diff changeset
   153
    //FIX ME : Do we need deltaPercent?
hgs
parents: 0
diff changeset
   154
    Q_UNUSED(deltaPercent);
hgs
parents: 0
diff changeset
   155
    m_widget->setPageZoom(false);
hgs
parents: 0
diff changeset
   156
}
hgs
parents: 0
diff changeset
   157
#endif
hgs
parents: 0
diff changeset
   158
hgs
parents: 0
diff changeset
   159
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   160
void GWebContentView::bitmapZoomStop()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   161
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   162
    if (m_timer) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   163
        m_timer->stop();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   164
        disconnect(m_timer,SIGNAL(timeout()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   165
        delete m_timer;
3
hgs
parents: 0
diff changeset
   166
        m_timer = NULL;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   167
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   168
    qreal zoomFactor = m_value * webWidget()->zoomFactor();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   169
    ((zoomFactor+0.001) >= webWidget()->maximumScale() )? webWidget()->setZoomFactor(webWidget()->maximumScale()):webWidget()->setZoomFactor(zoomFactor);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   170
    webWidget()->bitmapZoomCleanup();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   171
}
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
void GWebContentView::zoomP()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   174
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   175
    if ((m_value * webWidget()->zoomFactor()) >  webWidget()->maximumScale()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   176
        if (m_timer && m_timer->isActive())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   177
            bitmapZoomStop();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   178
    }else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   179
        if (m_timer->isSingleShot()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   180
            m_timer->setSingleShot(false);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   181
            m_timer->start(1);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   182
        }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   183
        webWidget()->setBitmapZoom(m_value * webWidget()->zoomFactor());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   184
        m_value *= KZoomInStep;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   185
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   186
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   187
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   188
void GWebContentView::zoomN()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   189
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   190
    if ((m_value * webWidget()->zoomFactor()) <  webWidget()->minimumScale()){
12
hgs
parents: 9
diff changeset
   191
       // if (m_timer && m_timer->isActive())
3
hgs
parents: 0
diff changeset
   192
            bitmapZoomStop();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   193
    }else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   194
        if (m_timer->isSingleShot()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   195
            m_timer->setSingleShot(false);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   196
            m_timer->start(1);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   197
        }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   198
        webWidget()->setBitmapZoom(m_value * webWidget()->zoomFactor());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   199
        m_value *= KZoomOutStep;
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
3
hgs
parents: 0
diff changeset
   203
void GWebContentView::zoomIn(qreal deltaPercent)
0
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
    Q_UNUSED(deltaPercent)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   206
    if (webWidget() && webWidget()->isUserScalable()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   207
        if (m_timer && m_timer->isActive()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   208
            if (!m_timer->isSingleShot())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   209
                m_value /= KZoomInStep;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   210
            bitmapZoomStop();
3
hgs
parents: 0
diff changeset
   211
            return;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   212
        }else if (!m_timer)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   213
            m_timer = new QTimer(this);
3
hgs
parents: 0
diff changeset
   214
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   215
        m_value = KZoomInStep;
3
hgs
parents: 0
diff changeset
   216
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   217
        if ((m_value * webWidget()->zoomFactor()) <  webWidget()->maximumScale()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   218
            webWidget()->createPageSnapShot();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   219
            connect(m_timer,SIGNAL(timeout()),this,SLOT(zoomP()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   220
            zoomP();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   221
            m_timer->setSingleShot(true);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   222
            m_timer->start(500);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   223
        }else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   224
            delete m_timer;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   225
            m_timer = NULL;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   226
            webWidget()->setZoomFactor(m_value * webWidget()->zoomFactor());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   227
        }
12
hgs
parents: 9
diff changeset
   228
        setSavedZoomValueInView(m_value * webWidget()->zoomFactor());
3
hgs
parents: 0
diff changeset
   229
    }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   230
}
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   231
3
hgs
parents: 0
diff changeset
   232
void GWebContentView::zoomOut(qreal deltaPercent)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   233
{
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   234
    Q_UNUSED(deltaPercent)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   235
    if (webWidget() && webWidget()->isUserScalable()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   236
        if (m_timer && m_timer->isActive()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   237
            if (!m_timer->isSingleShot())
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   238
                m_value /= KZoomOutStep;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   239
            bitmapZoomStop();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   240
            return;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   241
        }else if (!m_timer)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   242
            m_timer = new QTimer(this);
3
hgs
parents: 0
diff changeset
   243
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   244
        m_value = KZoomOutStep;
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
        if ((m_value * webWidget()->zoomFactor()) >  webWidget()->minimumScale()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   247
            webWidget()->createPageSnapShot();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   248
            connect(m_timer,SIGNAL(timeout()),this,SLOT(zoomN()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   249
            zoomN();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   250
            m_timer->setSingleShot(true);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   251
            m_timer->start(500);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   252
        }else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   253
            delete m_timer;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   254
            m_timer = NULL;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   255
            webWidget()->setZoomFactor(m_value * webWidget()->zoomFactor());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   256
        }
12
hgs
parents: 9
diff changeset
   257
        setSavedZoomValueInView(m_value * webWidget()->zoomFactor());
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   258
    }
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
3
hgs
parents: 0
diff changeset
   261
#endif
9
hgs
parents: 3
diff changeset
   262
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   263
  void GWebContentView::connectAll() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   264
    //qDebug() << "GWebContentView::connectAll: " << widget();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   265
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   266
#ifndef __gva_no_chrome__
3
hgs
parents: 0
diff changeset
   267
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   268
    safe_connect(widget(), SIGNAL(contextEvent(::WebViewEventContext *)),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   269
                 m_jsObject, SLOT(onContextEvent(::WebViewEventContext *)));
3
hgs
parents: 0
diff changeset
   270
#else
hgs
parents: 0
diff changeset
   271
    safe_connect(this
hgs
parents: 0
diff changeset
   272
                 , SIGNAL(contextEvent(::WebViewEventContext*))
hgs
parents: 0
diff changeset
   273
                 ,  m_jsObject
hgs
parents: 0
diff changeset
   274
                 , SLOT(onContextEvent(::WebViewEventContext*)));
hgs
parents: 0
diff changeset
   275
hgs
parents: 0
diff changeset
   276
    safe_connect(m_widget
16
hgs
parents: 12
diff changeset
   277
                , SIGNAL(contextEventObject(QWebHitTestResult*, QPointF))
3
hgs
parents: 0
diff changeset
   278
                , this
16
hgs
parents: 12
diff changeset
   279
                , SLOT(handleContextEventObject(QWebHitTestResult*, QPointF)));
3
hgs
parents: 0
diff changeset
   280
hgs
parents: 0
diff changeset
   281
    safe_connect(m_widget
hgs
parents: 0
diff changeset
   282
                 , SIGNAL(viewScrolled(QPoint&, QPoint&))
hgs
parents: 0
diff changeset
   283
                 , this
hgs
parents: 0
diff changeset
   284
                 , SLOT(handleViewScrolled(QPoint&, QPoint&)));
9
hgs
parents: 3
diff changeset
   285
hgs
parents: 3
diff changeset
   286
    safe_connect(m_widget
hgs
parents: 3
diff changeset
   287
                 , SIGNAL(mouseEvent(QEvent::Type)) 
hgs
parents: 3
diff changeset
   288
                 , this
hgs
parents: 3
diff changeset
   289
                 , SIGNAL(contentViewMouseEvent(QEvent::Type)));
hgs
parents: 3
diff changeset
   290
hgs
parents: 3
diff changeset
   291
    
3
hgs
parents: 0
diff changeset
   292
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   293
    QObject::connect(webWidget(), SIGNAL(titleChanged(const QString &)), m_jsObject, SIGNAL(titleChanged(const QString &)));
16
hgs
parents: 12
diff changeset
   294
    #ifdef Q_WS_MAEMO_5
hgs
parents: 12
diff changeset
   295
    QObject::connect(webWidget(), SIGNAL(titleChanged(const QString &)), this, SIGNAL(titleChanged(const QString &)));    
hgs
parents: 12
diff changeset
   296
    #endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   297
    QObject::connect(webWidget(), SIGNAL(loadStarted()), m_jsObject, SIGNAL(loadStarted()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   298
    QObject::connect(webWidget(), SIGNAL(loadProgress(int)), m_jsObject, SIGNAL(loadProgress(int)));
3
hgs
parents: 0
diff changeset
   299
    QObject::connect(webWidget(), SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int)));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   300
#endif
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   301
    QObject::connect(webWidget(), SIGNAL(loadStarted()), this, SLOT(onLoadStarted()));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   302
    QObject::connect(webWidget(), SIGNAL(loadFinished(bool)), this, SLOT(onLoadFinished(bool)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   303
    QObject::connect(webWidget(), SIGNAL(urlChanged(const QUrl&)), this, SLOT(onUrlChanged(const QUrl&)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   304
#ifndef __gva_no_chrome__
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   305
    QObject::connect(this, SIGNAL(urlChanged(const QString&)), m_jsObject, SIGNAL(urlChanged(const QString&)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   306
    QObject::connect(this, SIGNAL(backEnabled(bool)), m_jsObject, SIGNAL(backEnabled(bool)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   307
    QObject::connect(this, SIGNAL(forwardEnabled(bool)), m_jsObject, SIGNAL(forwardEnabled(bool)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   308
    QObject::connect(this, SIGNAL(loadFinished(bool)), m_jsObject, SIGNAL(loadFinished(bool)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   309
    QObject::connect(this, SIGNAL(secureConnection(bool)), m_jsObject, SIGNAL(secureConnection(bool)));
9
hgs
parents: 3
diff changeset
   310
3
hgs
parents: 0
diff changeset
   311
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   312
    connect(m_touchNavigation, SIGNAL(startingPanGesture(int)), m_jsObject, SIGNAL(startingPanGesture(int)));
9
hgs
parents: 3
diff changeset
   313
#else
hgs
parents: 3
diff changeset
   314
    connect(this, SIGNAL(startingPanGesture(int)), m_jsObject, SIGNAL(startingPanGesture(int)));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   315
#endif
16
hgs
parents: 12
diff changeset
   316
    safe_connect(this, SIGNAL(superPageShown(const QString&)), m_jsObject, SIGNAL(superPageShown(const QString&)));
hgs
parents: 12
diff changeset
   317
    safe_connect(this, SIGNAL(normalPageShown()), m_jsObject, SIGNAL(normalPageShown()));
3
hgs
parents: 0
diff changeset
   318
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   319
    connect(WebPageController::getSingleton(), SIGNAL(pageCreated(WRT::WrtBrowserContainer*)),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   320
            this, SLOT(pageCreated(WRT::WrtBrowserContainer*)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   321
    connect(WebPageController::getSingleton(), SIGNAL(pageChanged(WRT::WrtBrowserContainer*, WRT::WrtBrowserContainer*)),
3
hgs
parents: 0
diff changeset
   322
            this, SLOT(pageChanged(WRT::WrtBrowserContainer*, WRT::WrtBrowserContainer*)));
hgs
parents: 0
diff changeset
   323
    connect(WebPageController::getSingleton(), SIGNAL(showMessageBox(WRT::MessageBoxProxy*)),
hgs
parents: 0
diff changeset
   324
            this, SLOT(showMessageBox(WRT::MessageBoxProxy*)));
0
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
  QVariant GWebContentView::getContentWindowObject() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   328
    try {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   329
        return webWidget()->page()->mainFrame()->evaluateJavaScript("window");
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   330
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   331
    catch(...) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   332
        qDebug() << "GWebContentView::getContentWindowObject: caught expection";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   333
        return QVariant();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   334
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   335
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   336
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   337
  QGraphicsWidget* GWebContentView::widget() const {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   338
    return static_cast<QGraphicsWidget*>(m_widget);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   339
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   340
3
hgs
parents: 0
diff changeset
   341
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   342
  QGraphicsWebView* GWebContentView::webWidget() const {
hgs
parents: 0
diff changeset
   343
    return m_widget->webView();
hgs
parents: 0
diff changeset
   344
  }
hgs
parents: 0
diff changeset
   345
#else
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   346
  GWebContentViewWidget *GWebContentView::webWidget() const {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   347
    return m_widget;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   348
  }
3
hgs
parents: 0
diff changeset
   349
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   350
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   351
  QString GWebContentView::title() const {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   352
    return webWidget()->title();
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
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   355
  QUrl GWebContentView::url() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   356
    return webWidget()->url();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   357
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   358
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   359
  QWebPage* GWebContentView::wrtPage() {
3
hgs
parents: 0
diff changeset
   360
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   361
    return m_widget->page();
hgs
parents: 0
diff changeset
   362
#else
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   363
    return m_widget->wrtPage();
3
hgs
parents: 0
diff changeset
   364
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   365
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   366
3
hgs
parents: 0
diff changeset
   367
  void GWebContentView::setActions(){
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   368
3
hgs
parents: 0
diff changeset
   369
      QAction* action;
hgs
parents: 0
diff changeset
   370
      action = m_actions["zoomIn"] =  new QAction("zoomIn", this);
hgs
parents: 0
diff changeset
   371
      action->setObjectName("zoomIn");
hgs
parents: 0
diff changeset
   372
      connect(action, SIGNAL(triggered()), this, SLOT(zoomIn()));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   373
3
hgs
parents: 0
diff changeset
   374
      action = m_actions["zoomOut"] = new QAction("zoomOut", this);
hgs
parents: 0
diff changeset
   375
      action->setObjectName("zoomOut");
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   376
      /* Disable zoomOut action initially as we are the the minimum scale */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   377
      /* Revisit this to determine whether we can use the change signal to
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   378
       * set the zoomOut button image initially as well
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   379
       */
3
hgs
parents: 0
diff changeset
   380
      action->setEnabled(false);
hgs
parents: 0
diff changeset
   381
      connect(action, SIGNAL(triggered()), this, SLOT(zoomOut()));
hgs
parents: 0
diff changeset
   382
hgs
parents: 0
diff changeset
   383
      action = m_actions["zoom"] = new QAction("zoom", this);
hgs
parents: 0
diff changeset
   384
      action->setObjectName("zoom");
hgs
parents: 0
diff changeset
   385
hgs
parents: 0
diff changeset
   386
hgs
parents: 0
diff changeset
   387
      action =  m_actions["winview"]=  new QAction("winview", this);
hgs
parents: 0
diff changeset
   388
      action->setObjectName("winview");
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   389
3
hgs
parents: 0
diff changeset
   390
hgs
parents: 0
diff changeset
   391
      action = m_actions["menu"] =  new QAction("menu", this);
hgs
parents: 0
diff changeset
   392
      action->setObjectName("menu");
hgs
parents: 0
diff changeset
   393
hgs
parents: 0
diff changeset
   394
      action = m_actions["mostvisited"] =  new QAction("mostvisited", this);
hgs
parents: 0
diff changeset
   395
      action->setObjectName("mostvisited");
hgs
parents: 0
diff changeset
   396
hgs
parents: 0
diff changeset
   397
      action = m_actions["toggletb"] = new QAction("toggletb", this);
hgs
parents: 0
diff changeset
   398
      action->setObjectName("toggletb");
hgs
parents: 0
diff changeset
   399
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   400
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   401
16
hgs
parents: 12
diff changeset
   402
   void GWebContentView::triggerAction(const QString & action)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   403
  {
3
hgs
parents: 0
diff changeset
   404
    if (action=="Stop")
16
hgs
parents: 12
diff changeset
   405
        webWidget()->triggerPageAction(QWebPage::Stop);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   406
    else if (action=="Back")
16
hgs
parents: 12
diff changeset
   407
        webWidget()->triggerPageAction(QWebPage::Back);
3
hgs
parents: 0
diff changeset
   408
    else if (action=="Reload")
16
hgs
parents: 12
diff changeset
   409
        webWidget()->triggerPageAction(QWebPage::Reload);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   410
    else if (action=="Forward")
16
hgs
parents: 12
diff changeset
   411
        webWidget()->triggerPageAction(QWebPage::Forward);
hgs
parents: 12
diff changeset
   412
    else if (action=="ZoomIn")
hgs
parents: 12
diff changeset
   413
        triggerZoomInAction();
hgs
parents: 12
diff changeset
   414
    else if (action=="ZoomOut")
hgs
parents: 12
diff changeset
   415
        triggerZoomOutAction();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   416
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   417
16
hgs
parents: 12
diff changeset
   418
  void GWebContentView::triggerZoomInAction() {
hgs
parents: 12
diff changeset
   419
      if(m_actions.contains("zoomIn"))
hgs
parents: 12
diff changeset
   420
          m_actions["zoomIn"]->trigger();
hgs
parents: 12
diff changeset
   421
  }
hgs
parents: 12
diff changeset
   422
hgs
parents: 12
diff changeset
   423
  void GWebContentView::triggerZoomOutAction() {
hgs
parents: 12
diff changeset
   424
      if(m_actions.contains("zoomOut"))
hgs
parents: 12
diff changeset
   425
          m_actions["zoomOut"]->trigger();
hgs
parents: 12
diff changeset
   426
  }
hgs
parents: 12
diff changeset
   427
hgs
parents: 12
diff changeset
   428
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   429
  void GWebContentView::deactivateZoomActions()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   430
  {
3
hgs
parents: 0
diff changeset
   431
    m_actions.value("zoomIn")->setEnabled(false);
hgs
parents: 0
diff changeset
   432
    m_actions.value("zoomOut")->setEnabled(false);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   433
  }
3
hgs
parents: 0
diff changeset
   434
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   435
  void GWebContentView::changeZoomAction(qreal zoom){
16
hgs
parents: 12
diff changeset
   436
    Q_UNUSED(zoom)
3
hgs
parents: 0
diff changeset
   437
  #ifndef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   438
    if (!webWidget()) return;
hgs
parents: 0
diff changeset
   439
    if (!(webWidget()->isUserScalable() ) ){
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   440
        deactivateZoomActions();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   441
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   442
    else {
3
hgs
parents: 0
diff changeset
   443
      QAction * zoomOutAction = m_actions.value("zoomOut");
hgs
parents: 0
diff changeset
   444
      QAction * zoomInAction = m_actions.value("zoomIn");
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   445
      if (zoom <= webWidget()->minimumScale() ) {
3
hgs
parents: 0
diff changeset
   446
         zoomOutAction->setEnabled(false);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   447
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   448
      else {
3
hgs
parents: 0
diff changeset
   449
         zoomOutAction->setEnabled(true);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   450
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   451
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   452
      if (zoom >= webWidget()->maximumScale()  ){
3
hgs
parents: 0
diff changeset
   453
         zoomInAction->setEnabled(false);
0
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
      else {
3
hgs
parents: 0
diff changeset
   456
         zoomInAction->setEnabled(true);
0
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
    }
3
hgs
parents: 0
diff changeset
   459
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   460
  }
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
  void GWebContentView::setZoomFactor(qreal factor){
3
hgs
parents: 0
diff changeset
   463
    if (webWidget())
hgs
parents: 0
diff changeset
   464
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   465
        webWidget()->setScale(factor);
hgs
parents: 0
diff changeset
   466
#else
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   467
        webWidget()->setZoomFactor(factor);
3
hgs
parents: 0
diff changeset
   468
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   469
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   470
3
hgs
parents: 0
diff changeset
   471
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   472
QGraphicsWidget* GWebContentView::webWidgetConst()  {
hgs
parents: 0
diff changeset
   473
    return m_widget;
hgs
parents: 0
diff changeset
   474
}
hgs
parents: 0
diff changeset
   475
hgs
parents: 0
diff changeset
   476
void GWebContentView::setZoomActions(bool enableZoomIn, bool enableZoomOut)
hgs
parents: 0
diff changeset
   477
{
hgs
parents: 0
diff changeset
   478
    m_actions.value("zoomIn")->setEnabled(enableZoomIn);
hgs
parents: 0
diff changeset
   479
    m_actions.value("zoomOut")->setEnabled(enableZoomOut);
hgs
parents: 0
diff changeset
   480
}
16
hgs
parents: 12
diff changeset
   481
hgs
parents: 12
diff changeset
   482
qreal GWebContentView::getZoomFactor(){
3
hgs
parents: 0
diff changeset
   483
    return webWidgetConst() ? webWidgetConst()->scale() : 0.0;
16
hgs
parents: 12
diff changeset
   484
}
3
hgs
parents: 0
diff changeset
   485
hgs
parents: 0
diff changeset
   486
#else
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   487
  qreal GWebContentView::getZoomFactor() const {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   488
    return webWidgetConst() ? webWidgetConst()->zoomFactor() : 0.0;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   489
  }
3
hgs
parents: 0
diff changeset
   490
#endif
hgs
parents: 0
diff changeset
   491
  
hgs
parents: 0
diff changeset
   492
void GWebContentView::activate() {
hgs
parents: 0
diff changeset
   493
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   494
    WRT::WrtBrowserContainer* newPage = WebPageController::getSingleton()->currentPage();
hgs
parents: 0
diff changeset
   495
    changeContentViewZoomInfo(newPage);
hgs
parents: 0
diff changeset
   496
#endif
hgs
parents: 0
diff changeset
   497
    ControllableViewBase::activate();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   498
  }
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
  void GWebContentView::deactivate() {
3
hgs
parents: 0
diff changeset
   501
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   502
    if (!currentPageIsSuperPage()) {
hgs
parents: 0
diff changeset
   503
        WRT::WrtBrowserContainer* currentPage = WebPageController::getSingleton()->currentPage();
16
hgs
parents: 12
diff changeset
   504
        currentPage->setPageZoomMetaData(m_widget->pageDataFromViewportInfo());
3
hgs
parents: 0
diff changeset
   505
    }
hgs
parents: 0
diff changeset
   506
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   507
      ControllableViewBase::deactivate();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   508
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   509
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   510
//  static void appendAction(QWebPage* page, QList<QAction*> &list, enum QWebPage::WebAction webAction, const QString &name) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   511
//      QAction *action = page->action(webAction);
3
hgs
parents: 0
diff changeset
   512
//      if (action) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   513
//          action->setObjectName(name);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   514
//          list.append(action);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   515
//      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   516
//  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   517
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   518
  /*!
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   519
    Return the list of public QActions most relevant to the view's current context.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   520
    @return  List of public actions
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   521
  */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   522
  QList<QAction *> GWebContentView::getContext()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   523
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   524
      // Get some of the actions from the page (there are many more available) and build a list
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   525
      // list of them.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   526
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   527
      QList<QAction*> actions;
3
hgs
parents: 0
diff changeset
   528
      QAction * action = m_actions.value("zoomIn");
hgs
parents: 0
diff changeset
   529
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   530
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   531
      /* Add zoomIn and zoomOut actions created earlier*/
3
hgs
parents: 0
diff changeset
   532
      if (action) actions.append(action);
hgs
parents: 0
diff changeset
   533
hgs
parents: 0
diff changeset
   534
      action = m_actions.value("zoomOut");
hgs
parents: 0
diff changeset
   535
      if (action) actions.append(action);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   536
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   537
      return actions;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   538
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   539
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   540
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   541
  QAction * GWebContentView::getAction(const QString & action)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   542
  {
3
hgs
parents: 0
diff changeset
   543
    QAction * act = NULL;
hgs
parents: 0
diff changeset
   544
    if (m_actions.contains(action) )
hgs
parents: 0
diff changeset
   545
        act = m_actions.value(action);
hgs
parents: 0
diff changeset
   546
hgs
parents: 0
diff changeset
   547
    if (!act ) {
hgs
parents: 0
diff changeset
   548
        WebPageController * pageController =  WebPageController::getSingleton();
hgs
parents: 0
diff changeset
   549
        if (action == "Back")
hgs
parents: 0
diff changeset
   550
          act = pageController->getActionBack();
hgs
parents: 0
diff changeset
   551
        else if (action == "Forward")
hgs
parents: 0
diff changeset
   552
          act = pageController->getActionForward();
hgs
parents: 0
diff changeset
   553
        else if (action == "Stop")
hgs
parents: 0
diff changeset
   554
          act = pageController->getActionStop();
hgs
parents: 0
diff changeset
   555
        else if (action == "Reload")
hgs
parents: 0
diff changeset
   556
          act = pageController->getActionReload();
hgs
parents: 0
diff changeset
   557
hgs
parents: 0
diff changeset
   558
    }
hgs
parents: 0
diff changeset
   559
    return act;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   560
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   561
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   562
  void GWebContentView::scrollViewBy(int dx, int dy)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   563
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   564
      wrtPage()->mainFrame()->scroll(dx, dy);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   565
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   566
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   567
  void GWebContentView::scrollViewTo(int x, int y)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   568
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   569
      wrtPage()->mainFrame()->setScrollPosition(QPoint(x, y));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   570
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   571
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   572
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   573
  void GWebContentView::showMessageBox(WRT::MessageBoxProxy* proxy)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   574
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   575
  /*
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   576
      QMessageBox msgBox(this);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   577
      msgBox.setText(proxy->m_text);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   578
      msgBox.setInformativeText(proxy->m_informativeText);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   579
      msgBox.setDetailedText(proxy->m_detailedText);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   580
      msgBox.setStandardButtons(proxy->m_buttons);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   581
      msgBox.setDefaultButton(proxy->m_defaultButton);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   582
      msgBox.setIcon(proxy->m_icon);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   583
      int ret = msgBox.exec();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   584
      */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   585
      QString displayText = proxy->m_text + QLatin1String("\n") + QLatin1String("\n")+ proxy->m_detailedText + QLatin1String("\n") + QLatin1String("\n") + proxy->m_informativeText;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   586
      int ret = QMessageBox::warning(0/* TODO: find appropriate widget if required or just remove this widget()*/,
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   587
                                     proxy->m_text, displayText, QMessageBox::Yes | QMessageBox::No, QMessageBox::Yes);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   588
      proxy->onMessageBoxResponse(ret);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   589
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   590
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   591
  void GWebContentView::loadUrlToCurrentPage(const QString & url)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   592
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   593
      WRT::WrtBrowserContainer * activePage = WebPageController::getSingleton()->currentPage();
12
hgs
parents: 9
diff changeset
   594
      QString bookmark_url = url;
hgs
parents: 9
diff changeset
   595
      if(!bookmark_url.contains(KBOOKMARKURLFILESLASH)){
hgs
parents: 9
diff changeset
   596
         if(bookmark_url.contains(KBOOKMARKURLFILE))
hgs
parents: 9
diff changeset
   597
            bookmark_url.replace(QString(KBOOKMARKURLFILE), QString(KBOOKMARKURLFILESLASH));
hgs
parents: 9
diff changeset
   598
      }
hgs
parents: 9
diff changeset
   599
      //--DeCoding URL for DoubleQuote and BackSlash--
hgs
parents: 9
diff changeset
   600
      if (bookmark_url.contains(KENCODEDBACKSLASH, Qt::CaseInsensitive))
hgs
parents: 9
diff changeset
   601
          bookmark_url.replace(QString(KENCODEDBACKSLASH), QString("\\"));
hgs
parents: 9
diff changeset
   602
      if (bookmark_url.contains(KENCODEDDOUBLEQUOTE, Qt::CaseInsensitive))
hgs
parents: 9
diff changeset
   603
          bookmark_url.replace(QString(KENCODEDDOUBLEQUOTE), QString("\""));
hgs
parents: 9
diff changeset
   604
      
3
hgs
parents: 0
diff changeset
   605
      if (activePage) {
12
hgs
parents: 9
diff changeset
   606
          activePage->mainFrame()->load(bookmark_url);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   607
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   608
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   609
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   610
  QWebPage *GWebContentView::currentPage() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   611
      WRT::WrtBrowserContainer * activePage = WebPageController::getSingleton()->currentPage();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   612
      return activePage;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   613
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   614
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   615
  int GWebContentView::contentWidth()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   616
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   617
    return currentPage()->mainFrame()->contentsSize().width();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   618
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   619
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   620
  int GWebContentView::contentHeight()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   621
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   622
    return currentPage()->mainFrame()->contentsSize().height();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   623
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   624
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   625
  void GWebContentView::stop()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   626
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   627
    webWidget()->stop();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   628
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   629
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   630
  void GWebContentView::back()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   631
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   632
    webWidget()->back();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   633
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   634
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   635
  void GWebContentView::forward()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   636
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   637
    webWidget()->forward();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   638
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   639
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   640
  void GWebContentView::reload()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   641
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   642
    webWidget()->reload();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   643
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   644
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   645
  int GWebContentView::scrollX()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   646
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   647
    return currentPage()->mainFrame()->scrollPosition().x();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   648
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   649
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   650
  int GWebContentView::scrollY()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   651
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   652
    return currentPage()->mainFrame()->scrollPosition().y();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   653
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   654
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   655
  void GWebContentView::zoom(bool in)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   656
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   657
    m_zoomIn = in;
3
hgs
parents: 0
diff changeset
   658
    if (!m_timeLine) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   659
      m_timeLine = new QTimeLine();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   660
      connect(m_timeLine, SIGNAL(valueChanged(qreal)),
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   661
        this, SLOT(updateZoom(qreal)));
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   662
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   663
    else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   664
      m_timeLine->stop();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   665
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   666
    m_timeLine->start();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   667
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   668
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   669
  void GWebContentView::toggleZoom(){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   670
    zoom(!m_zoomIn);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   671
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   672
  void GWebContentView::stopZoom() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   673
    m_timeLine->stop();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   674
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   675
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   676
  void GWebContentView::updateZoom(qreal delta){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   677
    Q_UNUSED(delta)
3
hgs
parents: 0
diff changeset
   678
#ifndef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   679
    if (m_zoomIn)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   680
      zoomBy(0.1);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   681
    else
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   682
      zoomBy(-0.1);
3
hgs
parents: 0
diff changeset
   683
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   684
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   685
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   686
  void GWebContentView::onUrlChanged(const QUrl& url)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   687
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   688
    emit urlChanged(url.toString());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   689
    //NB: Brief hack
3
hgs
parents: 0
diff changeset
   690
    if (url.scheme()=="https")
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   691
      emit secureConnection(true);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   692
    else
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   693
      emit secureConnection(false);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   694
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   695
3
hgs
parents: 0
diff changeset
   696
  GSuperWebPage *GWebContentView::createSuperPage(const QString &name, bool persist) {
hgs
parents: 0
diff changeset
   697
    GSuperWebPage *page = 0;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   698
    PageMap::iterator it = m_superPages.find(name);
3
hgs
parents: 0
diff changeset
   699
    // If page doesn't exist create a new one.
hgs
parents: 0
diff changeset
   700
    if (it == m_superPages.end()) {
hgs
parents: 0
diff changeset
   701
hgs
parents: 0
diff changeset
   702
      if (persist || !m_sharedPage){
hgs
parents: 0
diff changeset
   703
          if (persist)
hgs
parents: 0
diff changeset
   704
              //Implicitly creates a new QWebPage that is owned by the superpage object
hgs
parents: 0
diff changeset
   705
              page = new GSuperWebPage(0, chrome());
hgs
parents: 0
diff changeset
   706
hgs
parents: 0
diff changeset
   707
          else {
hgs
parents: 0
diff changeset
   708
              //Create a shared QWebPage that is owned by this view
hgs
parents: 0
diff changeset
   709
              m_sharedPage = new WebPageWrapper(this, "Superpage javascript error");
hgs
parents: 0
diff changeset
   710
              page = new GSuperWebPage(m_sharedPage, chrome());
hgs
parents: 0
diff changeset
   711
          }
hgs
parents: 0
diff changeset
   712
          //No scroll bars
hgs
parents: 0
diff changeset
   713
          page->page()->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff);
hgs
parents: 0
diff changeset
   714
          page->page()->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff);
hgs
parents: 0
diff changeset
   715
          //No history for super pages
hgs
parents: 0
diff changeset
   716
          page->page()->history()->setMaximumItemCount(0);
hgs
parents: 0
diff changeset
   717
          //Limit page cache usage by super pages
hgs
parents: 0
diff changeset
   718
hgs
parents: 0
diff changeset
   719
          //NB: needed?
hgs
parents: 0
diff changeset
   720
          QPalette viewPalette = widget()->palette();
hgs
parents: 0
diff changeset
   721
          viewPalette.setBrush(QPalette::Base, Qt::white);
hgs
parents: 0
diff changeset
   722
          page->page()->setPalette(viewPalette);
hgs
parents: 0
diff changeset
   723
      } else {
hgs
parents: 0
diff changeset
   724
          //Reuse the shared QWebPage
hgs
parents: 0
diff changeset
   725
          page = new GSuperWebPage(m_sharedPage, chrome());
hgs
parents: 0
diff changeset
   726
      }
hgs
parents: 0
diff changeset
   727
      //Export the superpage to JS
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   728
      page->setParent(jsObject());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   729
      page->setObjectName(name);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   730
      // Add it to the superpage list.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   731
      m_superPages[name] = page;
3
hgs
parents: 0
diff changeset
   732
      if (m_superPages.count() == 1) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   733
        // This is the only superpage, make it current.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   734
        m_currentSuperPage = m_superPages.find(name);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   735
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   736
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   737
    else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   738
      qDebug() << "GWebContentView::createPage: page already exists: " << name;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   739
    }
3
hgs
parents: 0
diff changeset
   740
    //Create a controllable view onto the super page so that it can be controlled by the view controller.
hgs
parents: 0
diff changeset
   741
    m_chrome->addView(new SuperPageView(this, page, name));
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   742
    return page;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   743
  }
3
hgs
parents: 0
diff changeset
   744
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   745
  void GWebContentView::destroySuperPage(const QString &name) {
3
hgs
parents: 0
diff changeset
   746
    if (!m_superPages.contains(name)) return;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   747
3
hgs
parents: 0
diff changeset
   748
    GSuperWebPage *page = m_superPages.take(name);
hgs
parents: 0
diff changeset
   749
    //This will destroy any QWebPage owned by the super page. The shared page is not
hgs
parents: 0
diff changeset
   750
    //owned by the super page and will be deleted when the GWebContentView is deleted.
hgs
parents: 0
diff changeset
   751
    if (page){
hgs
parents: 0
diff changeset
   752
        delete page;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   753
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   754
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   755
3
hgs
parents: 0
diff changeset
   756
  bool GWebContentView::setCurrentSuperPage(const QString &name) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   757
    PageMap::iterator it = m_superPages.find(name);
3
hgs
parents: 0
diff changeset
   758
    if (it != m_superPages.end()) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   759
      m_currentSuperPage = it;
3
hgs
parents: 0
diff changeset
   760
      return true;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   761
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   762
    else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   763
      qDebug() << "GWebContentView::setCurrentSuperPage: not found: " << name;
3
hgs
parents: 0
diff changeset
   764
      return false;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   765
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   766
  }
3
hgs
parents: 0
diff changeset
   767
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   768
  bool GWebContentView::isSuperPage(const QString &name){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   769
      PageMap::iterator it = m_superPages.find(name);
3
hgs
parents: 0
diff changeset
   770
      if (it != m_superPages.end()) {
hgs
parents: 0
diff changeset
   771
        return true;
hgs
parents: 0
diff changeset
   772
      }
hgs
parents: 0
diff changeset
   773
      qDebug() << "GWebContentView::superPage: not found: " << name;
hgs
parents: 0
diff changeset
   774
      return false;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   775
 }
3
hgs
parents: 0
diff changeset
   776
hgs
parents: 0
diff changeset
   777
hgs
parents: 0
diff changeset
   778
  GSuperWebPage * GWebContentView::superPage(const QString &name) {
hgs
parents: 0
diff changeset
   779
      PageMap::iterator it = m_superPages.find(name);
hgs
parents: 0
diff changeset
   780
      if (it != m_superPages.end()) {
hgs
parents: 0
diff changeset
   781
          return it.value();
hgs
parents: 0
diff changeset
   782
      }
hgs
parents: 0
diff changeset
   783
      qDebug() << "GWebContentView::superPage: not found: " << name;
hgs
parents: 0
diff changeset
   784
      return 0;
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   785
  }
3
hgs
parents: 0
diff changeset
   786
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   787
  void GWebContentView::showSuperPage(const QString &name) {
3
hgs
parents: 0
diff changeset
   788
      if(isSuperPage(name)) {
hgs
parents: 0
diff changeset
   789
          if(currentPageIsSuperPage()) {
hgs
parents: 0
diff changeset
   790
              currentSuperPage()->onHidden();
hgs
parents: 0
diff changeset
   791
          }
hgs
parents: 0
diff changeset
   792
hgs
parents: 0
diff changeset
   793
          setCurrentSuperPage(name);
hgs
parents: 0
diff changeset
   794
          m_currentPageIsSuperPage = true;
hgs
parents: 0
diff changeset
   795
#ifndef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   796
          webWidget()->setPage(currentSuperPage()->page());
16
hgs
parents: 12
diff changeset
   797
          m_touchNavigation->setPage(webWidget()->page(), false);
3
hgs
parents: 0
diff changeset
   798
          webWidget()->page()->setPreferredContentsSize(webWidget()->size().toSize());
hgs
parents: 0
diff changeset
   799
#else
hgs
parents: 0
diff changeset
   800
          WRT::WrtBrowserContainer *pg = WebPageController::getSingleton()->currentPage();
16
hgs
parents: 12
diff changeset
   801
          pg->setPageZoomMetaData(m_widget->pageDataFromViewportInfo());
3
hgs
parents: 0
diff changeset
   802
          m_widget->setPage(currentSuperPage()->page());
hgs
parents: 0
diff changeset
   803
          m_widget->showPage(true);
hgs
parents: 0
diff changeset
   804
#endif  
hgs
parents: 0
diff changeset
   805
          emit superPageShown(name);
hgs
parents: 0
diff changeset
   806
          currentSuperPage()->onShown();
hgs
parents: 0
diff changeset
   807
      }
hgs
parents: 0
diff changeset
   808
      else {
hgs
parents: 0
diff changeset
   809
          qDebug() << "GWebContentView::showSuperPage: error, not found: " << name;
hgs
parents: 0
diff changeset
   810
      }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   811
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   812
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   813
  void GWebContentView::showNormalPage() {
3
hgs
parents: 0
diff changeset
   814
    if (webWidget()) {
16
hgs
parents: 12
diff changeset
   815
#ifndef BEDROCK_TILED_BACKING_STORE
hgs
parents: 12
diff changeset
   816
      webWidget()->showNormalPage();
hgs
parents: 12
diff changeset
   817
      webWidget()->setViewportSize();
hgs
parents: 12
diff changeset
   818
      m_touchNavigation->setPage(currentPage());
hgs
parents: 12
diff changeset
   819
      m_touchNavigation->setWantSlideViewCalls(true);
hgs
parents: 12
diff changeset
   820
#else
hgs
parents: 12
diff changeset
   821
      m_widget->showPage(false);
hgs
parents: 12
diff changeset
   822
#endif
3
hgs
parents: 0
diff changeset
   823
      //TODO: Further testing is needed to show if the following is a net benefit.
hgs
parents: 0
diff changeset
   824
      if (currentPageIsSuperPage()) {
hgs
parents: 0
diff changeset
   825
          if(currentSuperPage()->page() == m_sharedPage){
hgs
parents: 0
diff changeset
   826
              //Clear contents of shared page to free resources. This should save
hgs
parents: 0
diff changeset
   827
              //memory for big pages, but at the performance cost of loading an empty page.
hgs
parents: 0
diff changeset
   828
              //An alternative is to delete the shared page every time and reallocate it when
hgs
parents: 0
diff changeset
   829
              //a super page is loaded.
hgs
parents: 0
diff changeset
   830
              currentSuperPage()->page()->mainFrame()->setHtml(QString());
hgs
parents: 0
diff changeset
   831
          }
hgs
parents: 0
diff changeset
   832
hgs
parents: 0
diff changeset
   833
          currentSuperPage()->onHidden();
hgs
parents: 0
diff changeset
   834
          m_currentPageIsSuperPage =false;
hgs
parents: 0
diff changeset
   835
      }
9
hgs
parents: 3
diff changeset
   836
#ifndef BEDROCK_TILED_BACKING_STORE
hgs
parents: 3
diff changeset
   837
    webWidget()->showNormalPage();
hgs
parents: 3
diff changeset
   838
    webWidget()->setViewportSize();
16
hgs
parents: 12
diff changeset
   839
    m_touchNavigation->setPage(currentPage(), true);
9
hgs
parents: 3
diff changeset
   840
#else
hgs
parents: 3
diff changeset
   841
    m_widget->showPage(false);
hgs
parents: 3
diff changeset
   842
#endif
16
hgs
parents: 12
diff changeset
   843
    emit normalPageShown(); 
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   844
    }
12
hgs
parents: 9
diff changeset
   845
			}
3
hgs
parents: 0
diff changeset
   846
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   847
  QObjectList GWebContentView::getSuperPages() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   848
    QObjectList *result = new QObjectList;
3
hgs
parents: 0
diff changeset
   849
    foreach(GVA::GSuperWebPage *page, m_superPages) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   850
      result->append(page);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   851
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   852
    // TO DO: Need to add result to JS engine so it can be cleaned up.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   853
    return *result;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   854
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   855
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   856
  bool GWebContentView::currentPageIsSuperPage() const {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   857
    //qDebug() << "GWebContentView::currentPageIsSuperPage: " << webWidget()->page();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   858
    return m_currentPageIsSuperPage;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   859
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   860
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   861
  void GWebContentView::onLoadStarted()
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   862
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   863
    //qDebug() << "GWebContentView::onLoadStarted: " << QTime::currentTime();
3
hgs
parents: 0
diff changeset
   864
#if defined(__gva_no_chrome__) || defined(NO_RESIZE_ON_LOAD)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   865
      m_widget->onLoadStarted();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   866
#endif
16
hgs
parents: 12
diff changeset
   867
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   868
    emit loadStarted();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   869
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   870
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   871
  void GWebContentView::onLoadFinished(bool ok)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   872
  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   873
    //qDebug() << "GWebContentView::onLoadFinished: " << QTime::currentTime();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   874
    emit loadFinished(ok);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   875
    //NB: page manager functions really
3
hgs
parents: 0
diff changeset
   876
    if (!m_backEnabled && currentPage()->history()->canGoBack()){
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   877
      m_backEnabled = true;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   878
      emit backEnabled(true);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   879
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   880
    else if (m_backEnabled && !currentPage()->history()->canGoBack()){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   881
      m_backEnabled = false;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   882
      emit backEnabled(false);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   883
    }
3
hgs
parents: 0
diff changeset
   884
    if (!m_forwardEnabled && currentPage()->history()->canGoForward()){
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   885
      m_forwardEnabled = true;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   886
      emit forwardEnabled(true);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   887
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   888
    else if (m_forwardEnabled && !currentPage()->history()->canGoForward()){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   889
      m_forwardEnabled = false;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   890
      emit forwardEnabled(false);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   891
    }
3
hgs
parents: 0
diff changeset
   892
12
hgs
parents: 9
diff changeset
   893
    // Set focus to the Web View so that text boxes have the focus (BR-994) if user is not editing the
hgs
parents: 9
diff changeset
   894
    // url field
hgs
parents: 9
diff changeset
   895
    if (!WebPageController::getSingleton()->editMode())
hgs
parents: 9
diff changeset
   896
        m_widget->setFocus();
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   897
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   898
#if defined(__gva_no_chrome__) || defined(NO_RESIZE_ON_LOAD)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   899
    m_widget->onLoadFinished();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   900
#endif
16
hgs
parents: 12
diff changeset
   901
    if(m_savedZoomData) {
hgs
parents: 12
diff changeset
   902
        WrtBrowserContainer* curPage = WebPageController::getSingleton()->currentPage();
hgs
parents: 12
diff changeset
   903
        curPage->setPageZoomMetaData(*m_savedZoomData);
hgs
parents: 12
diff changeset
   904
        delete m_savedZoomData;
hgs
parents: 12
diff changeset
   905
        m_savedZoomData = 0;
hgs
parents: 12
diff changeset
   906
        m_widget->restoreViewportFromHistory(curPage->mainFrame());
hgs
parents: 12
diff changeset
   907
    }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   908
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   909
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   910
  void GWebContentView::dump() {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   911
    qDebug() << "-------------";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   912
    qDebug() << "GWebContentView::dump: " << this;
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   913
    qDebug() << "\tcurrent page=: " << currentPage() << " title=" << currentPage()->mainFrame()->title();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   914
    qDebug() << "\tcurrent superpage=: " << currentSuperPage();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   915
    qDebug() << "\tsuperpage count=: " << m_superPages.count();
3
hgs
parents: 0
diff changeset
   916
    foreach(GVA::GSuperWebPage *page, m_superPages) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   917
      page->dump();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   918
    }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   919
    qDebug() << "GWebContentView::dump: finished";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   920
    qDebug() << "-------------";
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   921
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   922
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   923
//  ControllableView* GWebContentView::createNew(QWidget *parent)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   924
//  {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   925
//      QWebPage* page = BrowserPageFactory::openBrowserPage();
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   926
//      return new GWebContentView(page, parent);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   927
//  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   928
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   929
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   930
  void GWebContentView::pageCreated(WRT::WrtBrowserContainer* newPage) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   931
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   932
      /* save the page snapshot before changing the current page to the new page*/
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   933
      WRT::WrtBrowserContainer * currPage = WebPageController::getSingleton()->currentPage();
3
hgs
parents: 0
diff changeset
   934
      if (currPage) {
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   935
          QWebHistoryItem item = currPage->history()->currentItem();
16
hgs
parents: 12
diff changeset
   936
          //currPage->savePageDataToHistoryItem(currPage->mainFrame(), &item);
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   937
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   938
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   939
      // When new windows are created from window view, as the content is empty, we should disable
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   940
      // zoom actions. Set the user-scalable to false and also init the other zoom params
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   941
      // so that even if we change to windows view again without loading a page we are safe.
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   942
      // In the code-driven window usecase, this will be overwritten when the page is loaded and setViewportSize is invoked
3
hgs
parents: 0
diff changeset
   943
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   944
      newPage->setPageZoomMetaData(webWidget()->defaultZoomData());
3
hgs
parents: 0
diff changeset
   945
#else
16
hgs
parents: 12
diff changeset
   946
      if(newPage->pageZoomMetaData()->isValid())
hgs
parents: 12
diff changeset
   947
         m_widget->setPageDataToViewportInfo(*(newPage->pageZoomMetaData())); // data from history
hgs
parents: 12
diff changeset
   948
      else
3
hgs
parents: 0
diff changeset
   949
	newPage->setPageZoomMetaData(m_widget->defaultZoomData());
hgs
parents: 0
diff changeset
   950
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   951
      /* Set the new page as the current page */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   952
      WebPageController::getSingleton()->setCurrentPage(newPage);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   953
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   954
      /* Set the web widget- this one is responsible for webnavigation etc */
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   955
      newPage->setWebWidget(webWidget());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   956
3
hgs
parents: 0
diff changeset
   957
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   958
      //connect new page main frame's initialLayoutCompleted with WebContentWidget' setViewportSize SLOT
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   959
      connect(newPage->mainFrame(), SIGNAL(initialLayoutCompleted()), webWidget(), SLOT(setViewportSize()));
3
hgs
parents: 0
diff changeset
   960
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   961
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   962
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   963
  void GWebContentView::updateWebPage(WRT::WrtBrowserContainer* pg)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   964
  {
3
hgs
parents: 0
diff changeset
   965
#ifdef BEDROCK_TILED_BACKING_STORE
hgs
parents: 0
diff changeset
   966
      QGraphicsWebView* w = webWidget();
hgs
parents: 0
diff changeset
   967
#else
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   968
      GWebContentViewWidget* w = webWidget();
3
hgs
parents: 0
diff changeset
   969
#endif
hgs
parents: 0
diff changeset
   970
	  
hgs
parents: 0
diff changeset
   971
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   972
      w->setPage(pg);
3
hgs
parents: 0
diff changeset
   973
#else	  
hgs
parents: 0
diff changeset
   974
	  m_widget->setPage(pg);
hgs
parents: 0
diff changeset
   975
#endif
hgs
parents: 0
diff changeset
   976
      if (pg)
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   977
      {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   978
          pg->setWebWidget(w);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   979
3
hgs
parents: 0
diff changeset
   980
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   981
          // Change navigation also to the current page
16
hgs
parents: 12
diff changeset
   982
          m_touchNavigation->setPage(pg,true );
hgs
parents: 12
diff changeset
   983
          m_touchNavigation->setLoadingFlag( WebPageController::getSingleton()->isPageLoading());
3
hgs
parents: 0
diff changeset
   984
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   985
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   986
      }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   987
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   988
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   989
  void GWebContentView::pageChanged(WRT::WrtBrowserContainer* oldPage, WRT::WrtBrowserContainer* newPage) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   990
      Q_UNUSED(oldPage)
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   991
      updateWebPage(newPage);
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   992
3
hgs
parents: 0
diff changeset
   993
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   994
      // Set new page zoom info
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   995
      changeContentViewZoomInfo(newPage);
3
hgs
parents: 0
diff changeset
   996
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   997
  }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
   998
3
hgs
parents: 0
diff changeset
   999
#ifdef BEDROCK_TILED_BACKING_STORE
16
hgs
parents: 12
diff changeset
  1000
  void GWebContentView::handleContextEventObject(QWebHitTestResult* hitTest, QPointF position)
3
hgs
parents: 0
diff changeset
  1001
  {
16
hgs
parents: 12
diff changeset
  1002
      WebViewEventContext context(type(),  *hitTest);
3
hgs
parents: 0
diff changeset
  1003
      if (currentPageIsSuperPage()) {
hgs
parents: 0
diff changeset
  1004
          // Let the superpage handle the event.
16
hgs
parents: 12
diff changeset
  1005
          //currentSuperPage()->onContextEvent(&context);
hgs
parents: 12
diff changeset
  1006
          emit contextEvent(&context);
3
hgs
parents: 0
diff changeset
  1007
      }
hgs
parents: 0
diff changeset
  1008
      else {
16
hgs
parents: 12
diff changeset
  1009
          #ifdef Q_WS_MAEMO_5
hgs
parents: 12
diff changeset
  1010
          ContentViewContextMenu menu(hitTest, 0);
hgs
parents: 12
diff changeset
  1011
          menu.exec(widget()->mapToScene(position).toPoint());
hgs
parents: 12
diff changeset
  1012
          #else
3
hgs
parents: 0
diff changeset
  1013
          emit contextEvent(&context);
16
hgs
parents: 12
diff changeset
  1014
          #endif
3
hgs
parents: 0
diff changeset
  1015
      }
hgs
parents: 0
diff changeset
  1016
  }
hgs
parents: 0
diff changeset
  1017
void GWebContentView::handleViewScrolled(QPoint& scrollPos, QPoint& delta)
hgs
parents: 0
diff changeset
  1018
{
16
hgs
parents: 12
diff changeset
  1019
    if(!currentPageIsSuperPage() && !WebPageController::getSingleton()->isPageLoading())
hgs
parents: 12
diff changeset
  1020
        m_chrome->layout()->setViewSlide(scrollPos.y() + delta.y());
9
hgs
parents: 3
diff changeset
  1021
    
hgs
parents: 3
diff changeset
  1022
    emit startingPanGesture(1);
3
hgs
parents: 0
diff changeset
  1023
}
hgs
parents: 0
diff changeset
  1024
hgs
parents: 0
diff changeset
  1025
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1026
  void GWebContentView::changeContentViewZoomInfo(WRT::WrtBrowserContainer* newPage){
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1027
     // Copy the new page zoom info into cv
3
hgs
parents: 0
diff changeset
  1028
#ifndef BEDROCK_TILED_BACKING_STORE
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1029
     webWidget()->setPageZoomMetaData(newPage->pageZoomMetaData());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1030
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1031
     if (webWidget()->isUserScalable()) {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1032
         webWidget()->setZoomFactor(newPage->mainFrame()->zoomFactor());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1033
     }
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1034
     else {
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1035
         // Need to call setPageZoomFactor instead of setZoomFactor because setZoomFactor
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1036
         // will not do anything if user-scalable is false. But we need to
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1037
         // ensure that the correct zoom factor is applied as there is a possibility
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1038
         // that we might have been on another page earlier
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1039
         webWidget()->setPageZoomFactor(newPage->mainFrame()->zoomFactor());
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1040
      }
3
hgs
parents: 0
diff changeset
  1041
#else
16
hgs
parents: 12
diff changeset
  1042
         m_widget->setPageDataToViewportInfo(*(newPage->pageZoomMetaData()));
3
hgs
parents: 0
diff changeset
  1043
#endif
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1044
  }
3
hgs
parents: 0
diff changeset
  1045
hgs
parents: 0
diff changeset
  1046
  void GWebContentView::setJSObject(const QString &objectName) {
hgs
parents: 0
diff changeset
  1047
      m_jsObject = new GWebContentViewJSObject(this, m_chrome->page()->mainFrame(), objectName);
hgs
parents: 0
diff changeset
  1048
  }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1049
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1050
3
hgs
parents: 0
diff changeset
  1051
  bool GWebContentView::enabled() const {
hgs
parents: 0
diff changeset
  1052
      return m_enabled;
hgs
parents: 0
diff changeset
  1053
  }
hgs
parents: 0
diff changeset
  1054
hgs
parents: 0
diff changeset
  1055
  void GWebContentView::setEnabled(bool value) {
hgs
parents: 0
diff changeset
  1056
      if(m_enabled == value)
hgs
parents: 0
diff changeset
  1057
          return;
hgs
parents: 0
diff changeset
  1058
hgs
parents: 0
diff changeset
  1059
      m_enabled = value;
hgs
parents: 0
diff changeset
  1060
      widget()->setEnabled(value);
hgs
parents: 0
diff changeset
  1061
      widget()->update();
hgs
parents: 0
diff changeset
  1062
  }
16
hgs
parents: 12
diff changeset
  1063
  
hgs
parents: 12
diff changeset
  1064
  
hgs
parents: 12
diff changeset
  1065
  bool GWebContentView::gesturesEnabled() const 
hgs
parents: 12
diff changeset
  1066
  { 
hgs
parents: 12
diff changeset
  1067
#ifndef BEDROCK_TILED_BACKING_STORE
hgs
parents: 12
diff changeset
  1068
      return m_touchNavigation->enabled(); 
hgs
parents: 12
diff changeset
  1069
#else   
hgs
parents: 12
diff changeset
  1070
      return m_widget->gesturesEnabled();
hgs
parents: 12
diff changeset
  1071
#endif
hgs
parents: 12
diff changeset
  1072
  }
hgs
parents: 12
diff changeset
  1073
hgs
parents: 12
diff changeset
  1074
  void GWebContentView::setGesturesEnabled(bool value) 
hgs
parents: 12
diff changeset
  1075
  { 
hgs
parents: 12
diff changeset
  1076
#ifndef BEDROCK_TILED_BACKING_STORE       
hgs
parents: 12
diff changeset
  1077
      m_touchNavigation->setEnabled(value); 
hgs
parents: 12
diff changeset
  1078
#else
hgs
parents: 12
diff changeset
  1079
      m_widget->setGesturesEnabled(value);
hgs
parents: 12
diff changeset
  1080
#endif
hgs
parents: 12
diff changeset
  1081
  }
hgs
parents: 12
diff changeset
  1082
hgs
parents: 12
diff changeset
  1083
#ifndef BEDROCK_TILED_BACKING_STORE
12
hgs
parents: 9
diff changeset
  1084
  void GWebContentView::setSavedZoomValueInView(qreal zoomValue){
hgs
parents: 9
diff changeset
  1085
	  m_savedZoomValueInView = zoomValue;
hgs
parents: 9
diff changeset
  1086
  }
hgs
parents: 9
diff changeset
  1087
  
hgs
parents: 9
diff changeset
  1088
  qreal GWebContentView::getSavedZoomValueInView() const{
hgs
parents: 9
diff changeset
  1089
      return m_savedZoomValueInView;
hgs
parents: 9
diff changeset
  1090
  }
16
hgs
parents: 12
diff changeset
  1091
#endif
hgs
parents: 12
diff changeset
  1092
hgs
parents: 12
diff changeset
  1093
  void GWebContentView::saveZoomDataAndRestoreAfterLoad()
hgs
parents: 12
diff changeset
  1094
  {
hgs
parents: 12
diff changeset
  1095
      QVariant userData = m_widget->webView()->page()->history()->currentItem().userData();
hgs
parents: 12
diff changeset
  1096
      QVariant::Type t = userData.type();
hgs
parents: 12
diff changeset
  1097
      int ut = userData.userType();
hgs
parents: 12
diff changeset
  1098
hgs
parents: 12
diff changeset
  1099
      if(userData.isValid() && t == QVariant::UserType &&
hgs
parents: 12
diff changeset
  1100
         ut == QMetaTypeId<WebPageData>::qt_metatype_id())
hgs
parents: 12
diff changeset
  1101
        m_savedZoomData = new WebPageData(userData.value<WebPageData>());
hgs
parents: 12
diff changeset
  1102
  }
0
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1103
} // end of namespace GVA
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1104
1450b09d0cfd Revision: 201015
Dremov Kirill (Nokia-D-MSW/Tampere) <kirill.dremov@nokia.com>
parents:
diff changeset
  1105