diff -r bf4420e9fa4d -r 2e16851ffecd ginebra2/WebChromeSnippet.cpp --- a/ginebra2/WebChromeSnippet.cpp Fri Jun 11 16:23:26 2010 +0100 +++ b/ginebra2/WebChromeSnippet.cpp Thu Jul 22 16:30:16 2010 +0100 @@ -1,21 +1,24 @@ /* * 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 "WebChromeSnippet.h" #include "WebChromeItem.h" #include "PopupWebChromeItem.h" @@ -29,24 +32,23 @@ static WebChromeItem * newChromeItem( ChromeWidget * chrome, - const QRectF& ownerArea, const QWebElement & element) { QString type = element.attribute("data-GinebraItemType", "normal"); if (type == "popup") { - return new PopupWebChromeItem(ownerArea, chrome, element); + QString modal = element.attribute("data-GinebraPopupModal", "true"); + return new PopupWebChromeItem(chrome, element, 0, modal == "true"); } - return new WebChromeItem(ownerArea, chrome, element); + return new WebChromeItem(chrome, element); } WebChromeSnippet::WebChromeSnippet( const QString & elementId, ChromeWidget * chrome, - const QRectF& ownerArea, const QWebElement & element) - : ChromeSnippet(elementId, chrome, newChromeItem(chrome, ownerArea, element), element) + : ChromeSnippet(elementId, chrome, newChromeItem(chrome, element), element) { WebChromeItem * item = static_cast (widget()); @@ -56,7 +58,7 @@ WebChromeSnippet::~WebChromeSnippet() { } - + WebChromeItem * WebChromeSnippet::item() { return static_cast (widget()); @@ -67,16 +69,16 @@ //qDebug() << "WebChromeSnippet::grabFocus"; WebChromeItem * item = static_cast (widget()); item->grabFocus(); - } + } void WebChromeSnippet:: updateOwnerArea() { + WebChromeItem * item = static_cast (widget()); - //Setting owner area also resets the item's size and preferred size - item->setOwnerArea(m_chrome->getSnippetRect(m_elementId)); - //qDebug() << WebChromeSnippet::updateOwnerArea: id: " << m_elementId << " element rect: " << item->ownerArea(); - //NB: Should move this to WebChromeItem::setOwnerArea()? - item->setCachedHandlers(m_chrome->dom()->getCachedHandlers(m_elementId, item->ownerArea())); + item->updateSizes(); + //TODO: Revisit this, don't use owner area + //item->setCachedHandlers(m_chrome->dom()->getCachedHandlers(m_elementId, item->ownerArea())); + } } // endof namespace GVA