diff -r bf4420e9fa4d -r 2e16851ffecd ginebra2/ChromeRenderer.cpp --- a/ginebra2/ChromeRenderer.cpp Fri Jun 11 16:23:26 2010 +0100 +++ b/ginebra2/ChromeRenderer.cpp Thu Jul 22 16:30:16 2010 +0100 @@ -1,113 +1,67 @@ /* * 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". +* +* This program is free software: you can redistribute it and/or modify +* it under the terms of the GNU Lesser General Public License as published by +* the Free Software Foundation, version 2.1 of the License. * -* Initial Contributors: -* Nokia Corporation - initial contribution. +* This program is distributed in the hope that it will be useful, +* but WITHOUT ANY WARRANTY; without even the implied warranty of +* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +* GNU Lesser General Public License for more details. * -* Contributors: +* You should have received a copy of the GNU Lesser General Public License +* along with this program. If not, +* see "http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html/". * -* Description: +* Description: * */ - #include "ChromeRenderer.h" #include "WebChromeItem.h" -#include -#include -#include - #include namespace GVA { -ChromeRenderer::ChromeRenderer(QWebPage * chromePage, QGraphicsItem * parent) - : QGraphicsWebView(parent)/*, - m_pageBits(0), - m_painter(0)*/ - +ChromeRenderer::ChromeRenderer(QWebPage * chromePage, QObject * parent) + : QObject(parent), + m_page(0) + { setPage(chromePage); - setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed)); - QPalette viewPalette = palette(); + QPalette viewPalette = page()->palette(); viewPalette.setBrush(QPalette::Base, Qt::transparent); //viewPalette.setColor(QPalette::Window, Qt::transparent); page()->setPalette(viewPalette); - setFocus(); //Initially grab the focus connect(page(), SIGNAL(repaintRequested(const QRect &)), this, SLOT(repaintRequested(const QRect &))); - connect(page()->mainFrame(), SIGNAL(contentsSizeChanged(const QSize &)), this, SLOT(onContentsSizeChanged(const QSize &))); - connect(page()->mainFrame(), SIGNAL(initialLayoutCompleted()), this, SLOT(onInitialLayoutCompleted())); - - //QObject::connect(page()->mainFrame(), SIGNAL(contentSizeChanged(const QSize &)), this, SIGNAL(chromeResized())); } ChromeRenderer::~ChromeRenderer() { - //delete m_pageBits; -} -void ChromeRenderer::resizeEvent(QGraphicsSceneResizeEvent * ev) -{ - //qDebug() << "ChromeRenderer resizeEvent: " << ev->newSize(); - //QGraphicsWebView::resizeEvent(ev); - page()->setPreferredContentsSize(ev->newSize().toSize()); - // qDebug()<< "ChromeRenderer::resizeEvent: ev->newSize(): " << ev->newSize() << " ContentSize: " << page()->mainFrame()->contentsSize(); - page()->setViewportSize(page()->mainFrame()->contentsSize()); - updateGeometry(); - //qDebug() << "ChromeRenderer::resizeEvent: new contents size " << page()->mainFrame()->contentsSize() << " : " << page()->mainFrame()->documentElement().geometry(); - emit chromeResized(); } -void ChromeRenderer::keyPressEvent( QKeyEvent * ev ) -{ - // qDebug() << "ChromeRenderer::keyPressEvent" << ev->type(); - QGraphicsWebView::keyPressEvent(ev); -#ifdef Q_OS_SYMBIAN //Ginebra 1 hack for symbian fep key handler - if(ev->key() == Qt::Key_Select || ev->key() == Qt::Key_Return || ev->key() == Qt::Key_Enter) { - emit symbianCarriageReturn(); - } - if(ev->key() == Qt::Key_Left || ev->key() == Qt::Key_Right || ev->key() == Qt::Key_Down || ev->key() == Qt::Key_Up) - ev->accept(); -#endif -} - -void ChromeRenderer::focusInEvent(QFocusEvent * event) +void ChromeRenderer::resize(QSizeF newSize) { - if (event->reason() != Qt::PopupFocusReason) // to fix the special char issue on VKB - QGraphicsWebView::focusInEvent(event); -} - -void ChromeRenderer::paint(QPainter * painter, const QStyleOptionGraphicsItem * option, QWidget * widget) -{ - //qDebug() << "ChromeRenderer::paint"; + page()->setPreferredContentsSize(newSize.toSize()); + page()->setViewportSize(page()->mainFrame()->contentsSize()); + emit chromeResized(); } void ChromeRenderer::repaintRequested(const QRect& dirtyRect) { //qDebug() << "ChromeRenderer repaintRequested: " << dirtyRect; - WebChromeItem * item; - foreach(item, m_renderList){ - if(item->ownerArea().intersects(dirtyRect) && !item->isPainting()){ - // qDebug() << "ChromeRenderer::repaintRequested: " << item->element().attribute("id") << " isPainting: " << item->isPainting(); - item->update(); - } + WebChromeItem * item; + if(!m_renderList.isEmpty()){ + foreach(item, m_renderList){ + if (item->elementRect().intersects(dirtyRect) && !item->isPainting()){ + item->update(); + } + } + emit chromeRepainted(dirtyRect); } - //emit chromeRepainted(QRectF(dirtyRect)); } -void ChromeRenderer::onContentsSizeChanged(const QSize & size) -{ - ;//qDebug() << "ChromeRenderer::onContentsSizeChanged: " << size; -} - -void ChromeRenderer::onInitialLayoutCompleted(){ - ;//qDebug() << "ChromeRenderer::onInitialLayoutCompleted"; -} - - } // end of namespace GVA