--- a/ginebra2/PopupWebChromeItem.cpp Fri May 14 15:40:36 2010 +0300
+++ b/ginebra2/PopupWebChromeItem.cpp Wed Jun 23 17:59:43 2010 +0300
@@ -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 "PopupWebChromeItem.h"
#include "ChromeWidget.h"
#include "WebChromeSnippet.h"
@@ -26,8 +29,10 @@
const QRectF & ownerArea,
ChromeWidget * chrome,
const QWebElement & element,
- QGraphicsItem * parent)
-: WebChromeItem(ownerArea, chrome, element, parent)
+ QGraphicsItem * parent,
+ bool modal)
+: WebChromeItem(ownerArea, chrome, element, parent),
+ m_modal(modal)
{
}
@@ -52,12 +57,18 @@
checkForExternalEvent(this, e);
- switch(e->type()) {
+ switch (e->type()) {
case QEvent::Show:
scene()->installEventFilter(this);
+ if(snippet() && m_modal) {
+ chrome()->emitPopupShown(snippet()->objectName());
+ }
break;
case QEvent::Hide:
scene()->removeEventFilter(this);
+ if(snippet() && m_modal) {
+ chrome()->emitPopupHidden(snippet()->objectName());
+ }
break;
default: break;
}
@@ -94,7 +105,9 @@
case QEvent::GraphicsSceneMousePress:
case QEvent::GraphicsSceneMouseRelease:
case QEvent::GraphicsSceneMouseDoubleClick:
- case QEvent::GraphicsSceneResize:
+// Commented out because new context menu resizes itself, don't want externalMouseEvents
+// in that case.
+// case QEvent::GraphicsSceneResize:
break;
default:
return;
@@ -104,12 +117,17 @@
// If it was outside this item's bounding rectangle,
// then tell the world.
- if(e->type() == QEvent::GraphicsSceneResize)
- {
- emitExternalEvent(e);
- return;
- }
-
+// Commented out because new context menu resizes itself, don't want externalMouseEvents
+// in that case.
+// if (e->type() == QEvent::GraphicsSceneResize)
+// {
+// QGraphicsSceneResizeEvent *resizeEvent = static_cast<QGraphicsSceneResizeEvent *>(e);
+// qDebug() << "PopupWebChromeItem::checkForExternalEvent: " << resizeEvent->newSize() << resizeEvent->oldSize();
+// if (resizeEvent->newSize() != resizeEvent->oldSize())
+// emitExternalEvent(e);
+// return;
+// }
+
QGraphicsSceneMouseEvent * me = static_cast<QGraphicsSceneMouseEvent*>(e);
QPointF eventPosition = me->scenePos();