diff -r bf4420e9fa4d -r 2e16851ffecd ginebra/chromerenderer.cpp --- a/ginebra/chromerenderer.cpp Fri Jun 11 16:23:26 2010 +0100 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +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 "chromerenderer.h" -#include "chromewidget.h" -#include -#include -#include -// ------------------------------------------------------- - -// Simple wrapper class for QWebPage to allow intercepting of javascript errors in the chrome. -class ChromeWebPage : public QWebPage { - public: - ChromeWebPage(ChromeRenderer *renderer) : QWebPage(renderer) { - qDebug() << "ChromeWebPage::ChromeWebPage"; - #if (defined(Q_OS_SYMBIAN) && !defined(Q_CC_NOKIAX86)) - // empty proxy only for ARMV5 Symbian targets - #else - networkAccessManager()->setProxy((QNetworkProxy(QNetworkProxy::HttpProxy,QString("bswebproxy01.americas.nokia.com"), 8080))); - #endif - } - - // Called when javascript errors are hit in the chrome page. - virtual void javaScriptConsoleMessage(const QString & message, int lineNumber, const QString & sourceID) { - qDebug() << "Chrome javascript error:"; - qDebug() << (const char*)QString(" %1:%2 %3") - .arg(sourceID) - .arg(lineNumber) - .arg(message).toAscii(); - } -}; - - -// ------------------------------------------------------- - -ChromeRenderer::ChromeRenderer(QWidget *parent) - : QWidget(parent), - m_page(0), - m_widget(0) -{ - setMouseTracking(true); -} - -ChromeRenderer::~ChromeRenderer() -{ - if (m_page) - m_page->setView(0); - - if (m_page && m_page->parent() == this) - delete m_page; -} - -QSize ChromeRenderer::sizeHint() const -{ - return QSize(1,1); -} - -QWebPage *ChromeRenderer::page() const -{ - if (!m_page) { - ChromeRenderer *that = const_cast(this); - that->setPage(new ChromeWebPage(that)); - } - return m_page; -} - -void ChromeRenderer::setPage(QWebPage* page){ - if (m_page == page) - return; - if (m_page) { - if (m_page->parent() == this) { - delete m_page; - } else { - m_page->disconnect(this); - } - } - m_page = page; - if (m_page) { - m_page->setView(this); - m_page->setPalette(palette()); - connect(m_page, SIGNAL(microFocusChanged()), - this, SLOT(updateMicroFocus())); - } - //setAttribute(Qt::WA_OpaquePaintEvent, m_page); // Needed? - - update(); -} - - -bool ChromeRenderer::event(QEvent *e) -{ - //qDebug() << "ChromeRenderer::event " << e; - if (m_page) { - if (e->type() == QEvent::ShortcutOverride) { - m_page->event(e); - - } else if (e->type() == QEvent::Leave) { - m_page->event(e); - } - } - - return QWidget::event(e); -} -/* -void ChromeRenderer::resizeEvent(QResizeEvent *e) -{ - if (m_page) - m_page->setViewportSize(e->size()); -} - - -void ChromeRenderer::paintEvent(QPaintEvent *ev) -{ - qDebug() << "ChromeRenderer::paintEvent: " << ev; - //if (!m_widget) - // return; - - //QWebFrame *frame = m_page->mainFrame(); - //QPainter p(this); - - //frame->render(&p, ev->region()); - //m_widget->repaintRequested(ev->rect()); - -} - -void ChromeRenderer::mouseMoveEvent(QMouseEvent* ev) -{ - if (m_page) { - const bool accepted = ev->isAccepted(); - m_page->event(ev); - ev->setAccepted(accepted); - } -} - -void ChromeRenderer::mousePressEvent(QMouseEvent* ev) -{ - qDebug() << "ChromeRenderer::mousePressEvent: " << ev; - if (m_page) { - const bool accepted = ev->isAccepted(); - m_page->event(ev); - ev->setAccepted(accepted); - } -} - -void ChromeRenderer::mouseDoubleClickEvent(QMouseEvent* ev) -{ - if (m_page) { - const bool accepted = ev->isAccepted(); - m_page->event(ev); - ev->setAccepted(accepted); - } -} - -void ChromeRenderer::mouseReleaseEvent(QMouseEvent* ev) -{ - if (m_page) { - const bool accepted = ev->isAccepted(); - m_page->event(ev); - ev->setAccepted(accepted); - } -}*/ - -void ChromeRenderer::keyPressEvent(QKeyEvent* ev) -{ - //qDebug() << "ChromeRenderer::keyPressEvent: " << ev; - bool isAccepted(ev->isAccepted()); - if (m_page){ - m_page->event(ev); - isAccepted = ev->isAccepted(); - } -#ifdef Q_OS_SYMBIAN //this is the hack for symbian fep key handler - if(!isAccepted && (ev->key() == Qt::Key_Select || ev->key() == Qt::Key_Return || ev->key() == Qt::Key_Enter)) { - emit symbianCarriageReturn(); - isAccepted = ev->isAccepted(); - } -#endif - if (!ev->isAccepted()) { - //qDebug() << "ChromeRenderer::keyPressEvent: -> accepted"; - QWidget::keyPressEvent(ev); - } -} - -void ChromeRenderer::keyReleaseEvent(QKeyEvent* ev) -{ - if (m_page) - m_page->event(ev); - if (!ev->isAccepted()) - QWidget::keyReleaseEvent(ev); -} - -void ChromeRenderer::focusInEvent(QFocusEvent* ev) -{ - //qDebug() << "ChromeRenderer::focusInEvent: " << ev; - if (m_page && ev->reason() != Qt::PopupFocusReason) - m_page->event(ev); - else - QWidget::focusInEvent(ev); -} - -void ChromeRenderer::focusOutEvent(QFocusEvent* ev) -{ - //qDebug() << "ChromeRenderer::focusOutEvent: " << ev; - if (m_page) - m_page->event(ev); - else - QWidget::focusOutEvent(ev); -} - -bool ChromeRenderer::focusNextPrevChild(bool next) -{ - if (m_page && m_page->focusNextPrevChild(next)) - return true; - return QWidget::focusNextPrevChild(next); -} - -void ChromeRenderer::inputMethodEvent(QInputMethodEvent *e) -{ - if (m_page) - m_page->event(e); -} - -QVariant ChromeRenderer::inputMethodQuery(Qt::InputMethodQuery property) const -{ - if (m_page) - return m_page->inputMethodQuery(property); - - return QVariant(); -} - -/* -void ChromeRenderer::changeEvent(QEvent *e) -{ - if (m_page && e->type() == QEvent::PaletteChange) { - m_page->setPalette(palette()); - } - QWidget::changeEvent(e); -} -*/