diff -r bf4420e9fa4d -r 2e16851ffecd ginebra2/AppContentView.cpp --- a/ginebra2/AppContentView.cpp Fri Jun 11 16:23:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -/* -* Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: -* -*/ - - -#include "AppContentView.h" -#include "ChromeWidget.h" -#include -#include -#include -#ifndef NO_QSTM_GESTURE -#include "qstmgestureevent.h" -#endif -#include - - - -namespace GVA -{ - - AppContentView::AppContentView(ChromeWidget * chrome, QObject * parent) - : ContentViewDelegate(chrome, parent), - m_view(new QGraphicsWebView), - m_page(new QWebPage), - m_timeLine(0), - m_zoomIn(false) - { -#ifndef NO_QSTM_GESTURE - m_view->installEventFilter(this); -#endif - m_page->mainFrame()->setScrollBarPolicy(Qt::Vertical, Qt::ScrollBarAlwaysOff); - m_page->mainFrame()->setScrollBarPolicy(Qt::Horizontal, Qt::ScrollBarAlwaysOff); - //NB: Here's how to set default webview backgound color - QPalette viewPalette = m_view->palette(); - viewPalette.setBrush(QPalette::Base, Qt::white); - //viewPalette.setColor(QPalette::Window, Qt::transparent); - m_page->setPalette(viewPalette); - m_view->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred); - m_view->setPage(m_page); - setObjectName("appView"); - QObject::connect(m_view, SIGNAL(titleChanged(const QString &)), this, SIGNAL(titleChanged(const QString &))); - QObject::connect(m_view, SIGNAL(loadStarted()), this, SIGNAL(loadStarted())); - QObject::connect(m_view, SIGNAL(loadProgress(int)), this, SIGNAL(loadProgress(int))); - QObject::connect(m_view, SIGNAL(loadFinished(bool)), this, SIGNAL(loadFinished(bool))); - QObject::connect(m_view, SIGNAL(urlChanged(const QUrl&)), this, SLOT(onUrlChanged(const QUrl&))); - QObject::connect(m_page->mainFrame(), SIGNAL(javaScriptWindowObjectCleared()), this, SIGNAL(javaScriptWindowObjectCleared())); - } - - AppContentView::~AppContentView() - { - delete m_timeLine; - delete m_page; - delete m_view; - } - - void AppContentView::load(const QString& url) - { - // TO DO: need to filter out non-local URLs. Should only load local files. - - qDebug() << "AppContentView::load: " << url; - m_page->mainFrame()->load(QUrl(url)); - //m_page->setViewportSize(m_page->mainFrame()->contentsSize()); //NB:? - } - - void AppContentView::setHtml(const QString& html) - { - m_view->setHtml(html); - // m_page->setViewportSize(m_page->mainFrame()->contentsSize()); //NB:? - } - - void AppContentView::triggerAction(const QString & action) - { - QWebPage::WebAction webAction; - if(action=="Stop") - webAction = QWebPage::Stop; - else if (action=="Back") - webAction = QWebPage::Back; - else if(action=="Reload") - webAction = QWebPage::Reload; - else if (action=="Forward") - webAction = QWebPage::Forward; - else - return; - m_view->triggerPageAction(webAction); - } - - void AppContentView::stop() - { - m_view->stop(); - } - - void AppContentView::back() - { - m_view->back(); - } - - void AppContentView::forward() - { - m_view->forward(); - } - - void AppContentView::reload() - { - m_view->reload(); - } - - void AppContentView::zoomBy(qreal delta) - { - m_page->mainFrame()->setZoomFactor(m_page->mainFrame()->zoomFactor() + delta); - } - - void AppContentView::scrollBy(int deltaX, int deltaY) - { - m_page->mainFrame()->setScrollPosition(m_page->mainFrame()->scrollPosition() + QPoint(deltaX, deltaY)); - } - - int AppContentView::scrollX() - { - return m_page->mainFrame()->scrollPosition().x(); - } - - int AppContentView::scrollY() - { - return m_page->mainFrame()->scrollPosition().y(); - } - - int AppContentView::contentWidth() - { - return m_page->mainFrame()->contentsSize().width(); - } - - int AppContentView::contentHeight() - { - return m_page->mainFrame()->contentsSize().height(); - } - - void AppContentView::onUrlChanged(const QUrl& url) - { - emit urlChanged(url.toString()); - } - - - void AppContentView::updateZoom(qreal delta){ - if(m_zoomIn) - zoomBy(0.1); - else - zoomBy(-0.1); - } - - - void AppContentView::zoom(bool in) - { - m_zoomIn = in; - if(!m_timeLine) { - m_timeLine = new QTimeLine(); - connect(m_timeLine, SIGNAL(valueChanged(qreal)), - this, SLOT(updateZoom(qreal))); - } - else { - m_timeLine->stop(); - } - m_timeLine->start(); - } - - void AppContentView::toggleZoom(){ - zoom(!m_zoomIn); - } - - void AppContentView::stopZoom() { - m_timeLine->stop(); - } - - void AppContentView::addJSObjectToWindow(QObject *object) { - m_page->mainFrame()->addToJavaScriptWindowObject(object->objectName(), object); - } -#ifndef NO_QSTM_GESTURE - bool AppContentView::eventFilter(QObject* object, QEvent* event) - { - if (event->type() == QEvent::Gesture) { - QStm_Gesture* gesture = getQStmGesture(event); - if (gesture) { - QStm_GestureType gtype = gesture->getGestureStmType(); - if (gtype == QStmTapGestureType) { - QPoint gpos = gesture->position(); - QWidget* topWidget = QApplication::topLevelAt(gpos); - QPoint pos = topWidget->mapFromGlobal(gpos); - QWidget* w = topWidget->childAt(pos); - gesture->sendMouseEvents(w); - return true; - } - } - return true; - } - return false; - } -#endif -} // end of namespace GVA -