Daniel d'Andrada has proposed merging
lp:~dandrader/kubuntu-packaging/qtdeclarative-opensource-src into
lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src.
Commit message:
Use original fix_qtbug_32004.patch (for Qt 5.3) and not its Qt 5.0.2 version
+ update symbols file
Requested reviews:
Kubuntu Packagers (kubuntu-packagers)
For more details, see:
https://code.launchpad.net/~dandrader/kubuntu-packaging/qtdeclarative-opensource-src/+merge/195790
Use original fix_qtbug_32004.patch (for Qt 5.3) and not its Qt 5.0.2 version
+ update symbols file
--
https://code.launchpad.net/~dandrader/kubuntu-packaging/qtdeclarative-opensource-src/+merge/195790
Your team Kubuntu Packagers is requested to review the proposed merge of
lp:~dandrader/kubuntu-packaging/qtdeclarative-opensource-src into
lp:~kubuntu-packagers/kubuntu-packaging/qtdeclarative-opensource-src.
=== modified file 'debian/libqt5quick5.symbols'
--- debian/libqt5quick5.symbols 2013-11-13 14:24:49 +0000
+++ debian/libqt5quick5.symbols 2013-11-19 14:27:34 +0000
@@ -1050,6 +1050,7 @@
_ZN15QSGPlainTextureD0Ev@Base 5.0.2 1
_ZN15QSGPlainTextureD1Ev@Base 5.0.2 1
_ZN15QSGPlainTextureD2Ev@Base 5.0.2 1
+ _ZN16QCoreApplication9sendEventEP7QObjectP6QEvent@Base 5.2.0 1
_ZN16QQuickCloseEvent11qt_metacallEN11QMetaObject4CallEiPPv@Base 5.1.0 1
_ZN16QQuickCloseEvent11qt_metacastEPKc@Base 5.1.0 1
_ZN16QQuickCloseEvent16staticMetaObjectE@Base 5.1.0 1
@@ -1200,16 +1201,10 @@
_ZN17QQuickItemPrivate15transform_clearEP16QQmlListPropertyI15QQuickTransformE@Base 5.0.2 1
_ZN17QQuickItemPrivate15transform_countEP16QQmlListPropertyI15QQuickTransformE@Base 5.0.2 1
_ZN17QQuickItemPrivate15visibleChildrenEv@Base 5.0.2 1
- _ZN17QQuickItemPrivate16deliverDragEventEP6QEvent@Base 5.0.2 1
_ZN17QQuickItemPrivate16resources_appendEP16QQmlListPropertyI7QObjectEPS1_@Base 5.0.2 1
_ZN17QQuickItemPrivate16transformChangedEv@Base 5.0.2 1
_ZN17QQuickItemPrivate16transform_appendEP16QQmlListPropertyI15QQuickTransformEPS1_@Base 5.0.2 1
_ZN17QQuickItemPrivate17canAcceptTabFocusEP10QQuickItem@Base 5.1.0 1
- _ZN17QQuickItemPrivate17deliverFocusEventEP11QFocusEvent@Base 5.0.2 1
- _ZN17QQuickItemPrivate17deliverHoverEventEP11QHoverEvent@Base 5.0.2 1
- _ZN17QQuickItemPrivate17deliverMouseEventEP11QMouseEvent@Base 5.0.2 1
- _ZN17QQuickItemPrivate17deliverTouchEventEP11QTouchEvent@Base 5.0.2 1
- _ZN17QQuickItemPrivate17deliverWheelEventEP11QWheelEvent@Base 5.0.2 1
_ZN17QQuickItemPrivate17refFromEffectItemEb@Base 5.0.2 1
_ZN17QQuickItemPrivate17setConsistentTimeEx@Base 5.0.2 1
_ZN17QQuickItemPrivate18qt_tab_all_widgetsEv@Base 5.1.0 1
=== modified file 'debian/patches/fix_qtbug_32004.patch'
--- debian/patches/fix_qtbug_32004.patch 2013-11-19 12:28:06 +0000
+++ debian/patches/fix_qtbug_32004.patch 2013-11-19 14:27:34 +0000
@@ -10,470 +10,6 @@
Task-number: QTBUG-32004
Change-Id: Ib6972e7f5e588bee986ae5f2d69aa6fccb58af95
-Index: trunk/src/quick/items/qquickitem.cpp
-===================================================================
---- trunk.orig/src/quick/items/qquickitem.cpp 2013-11-19 09:36:35.741906100 -0200
-+++ trunk/src/quick/items/qquickitem.cpp 2013-11-19 09:36:35.737906100 -0200
-@@ -4160,96 +4160,6 @@
- }
- #endif // QT_NO_IM
-
--void QQuickItemPrivate::deliverFocusEvent(QFocusEvent *e)
--{
-- Q_Q(QQuickItem);
--
-- if (e->type() == QEvent::FocusIn) {
-- q->focusInEvent(e);
-- } else {
-- q->focusOutEvent(e);
-- }
--}
--
--void QQuickItemPrivate::deliverMouseEvent(QMouseEvent *e)
--{
-- Q_Q(QQuickItem);
--
-- Q_ASSERT(e->isAccepted());
--
-- switch (e->type()) {
-- default:
-- Q_ASSERT(!"Unknown event type");
-- case QEvent::MouseMove:
-- q->mouseMoveEvent(e);
-- break;
-- case QEvent::MouseButtonPress:
-- q->mousePressEvent(e);
-- break;
-- case QEvent::MouseButtonRelease:
-- q->mouseReleaseEvent(e);
-- break;
-- case QEvent::MouseButtonDblClick:
-- q->mouseDoubleClickEvent(e);
-- break;
-- }
--}
--
--#ifndef QT_NO_WHEELEVENT
--void QQuickItemPrivate::deliverWheelEvent(QWheelEvent *e)
--{
-- Q_Q(QQuickItem);
-- q->wheelEvent(e);
--}
--#endif
--
--void QQuickItemPrivate::deliverTouchEvent(QTouchEvent *e)
--{
-- Q_Q(QQuickItem);
-- q->touchEvent(e);
--}
--
--void QQuickItemPrivate::deliverHoverEvent(QHoverEvent *e)
--{
-- Q_Q(QQuickItem);
-- switch (e->type()) {
-- default:
-- Q_ASSERT(!"Unknown event type");
-- case QEvent::HoverEnter:
-- q->hoverEnterEvent(e);
-- break;
-- case QEvent::HoverLeave:
-- q->hoverLeaveEvent(e);
-- break;
-- case QEvent::HoverMove:
-- q->hoverMoveEvent(e);
-- break;
-- }
--}
--
--#ifndef QT_NO_DRAGANDDROP
--void QQuickItemPrivate::deliverDragEvent(QEvent *e)
--{
-- Q_Q(QQuickItem);
-- switch (e->type()) {
-- default:
-- Q_ASSERT(!"Unknown event type");
-- case QEvent::DragEnter:
-- q->dragEnterEvent(static_cast<QDragEnterEvent *>(e));
-- break;
-- case QEvent::DragLeave:
-- q->dragLeaveEvent(static_cast<QDragLeaveEvent *>(e));
-- break;
-- case QEvent::DragMove:
-- q->dragMoveEvent(static_cast<QDragMoveEvent *>(e));
-- break;
-- case QEvent::Drop:
-- q->dropEvent(static_cast<QDropEvent *>(e));
-- break;
-- }
--}
--#endif // QT_NO_DRAGANDDROP
--
- /*!
- Called when \a change occurs for this item.
-
-@@ -6612,18 +6522,17 @@
- */
- bool QQuickItem::event(QEvent *ev)
- {
-+ Q_D(QQuickItem);
-+
-+ switch (ev->type()) {
- #if 0
-- if (ev->type() == QEvent::PolishRequest) {
-- Q_D(QQuickItem);
-+ case QEvent::PolishRequest:
- d->polishScheduled = false;
- updatePolish();
-- return true;
-- } else {
-- return QObject::event(ev);
-- }
-+ break;
- #endif
- #ifndef QT_NO_IM
-- if (ev->type() == QEvent::InputMethodQuery) {
-+ case QEvent::InputMethodQuery: {
- QInputMethodQueryEvent *query = static_cast<QInputMethodQueryEvent *>(ev);
- Qt::InputMethodQueries queries = query->queries();
- for (uint i = 0; i < 32; ++i) {
-@@ -6634,17 +6543,76 @@
- }
- }
- query->accept();
-- return true;
-- } else if (ev->type() == QEvent::InputMethod) {
-+ break;
-+ }
-+ case QEvent::InputMethod:
- inputMethodEvent(static_cast<QInputMethodEvent *>(ev));
-- return true;
-- } else
-+ break;
- #endif // QT_NO_IM
-- if (ev->type() == QEvent::StyleAnimationUpdate) {
-+ case QEvent::TouchBegin:
-+ case QEvent::TouchUpdate:
-+ case QEvent::TouchEnd:
-+ case QEvent::TouchCancel:
-+ touchEvent(static_cast<QTouchEvent*>(ev));
-+ break;
-+ case QEvent::StyleAnimationUpdate:
- update();
-- return true;
-+ break;
-+ case QEvent::HoverEnter:
-+ hoverEnterEvent(static_cast<QHoverEvent*>(ev));
-+ break;
-+ case QEvent::HoverLeave:
-+ hoverLeaveEvent(static_cast<QHoverEvent*>(ev));
-+ break;
-+ case QEvent::HoverMove:
-+ hoverMoveEvent(static_cast<QHoverEvent*>(ev));
-+ break;
-+ case QEvent::KeyPress:
-+ case QEvent::KeyRelease:
-+ d->deliverKeyEvent(static_cast<QKeyEvent*>(ev));
-+ break;
-+ case QEvent::FocusIn:
-+ focusInEvent(static_cast<QFocusEvent*>(ev));
-+ break;
-+ case QEvent::FocusOut:
-+ focusOutEvent(static_cast<QFocusEvent*>(ev));
-+ break;
-+ case QEvent::MouseMove:
-+ mouseMoveEvent(static_cast<QMouseEvent*>(ev));
-+ break;
-+ case QEvent::MouseButtonPress:
-+ mousePressEvent(static_cast<QMouseEvent*>(ev));
-+ break;
-+ case QEvent::MouseButtonRelease:
-+ mouseReleaseEvent(static_cast<QMouseEvent*>(ev));
-+ break;
-+ case QEvent::MouseButtonDblClick:
-+ mouseDoubleClickEvent(static_cast<QMouseEvent*>(ev));
-+ break;
-+#ifndef QT_NO_WHEELEVENT
-+ case QEvent::Wheel:
-+ wheelEvent(static_cast<QWheelEvent*>(ev));
-+ break;
-+#endif
-+#ifndef QT_NO_DRAGANDDROP
-+ case QEvent::DragEnter:
-+ dragEnterEvent(static_cast<QDragEnterEvent*>(ev));
-+ break;
-+ case QEvent::DragLeave:
-+ dragLeaveEvent(static_cast<QDragLeaveEvent*>(ev));
-+ break;
-+ case QEvent::DragMove:
-+ dragMoveEvent(static_cast<QDragMoveEvent*>(ev));
-+ break;
-+ case QEvent::Drop:
-+ dropEvent(static_cast<QDropEvent*>(ev));
-+ break;
-+#endif // QT_NO_DRAGANDDROP
-+ default:
-+ return QObject::event(ev);
- }
-- return QObject::event(ev);
-+
-+ return true;
- }
-
- #ifndef QT_NO_DEBUG_STREAM
-Index: trunk/src/quick/items/qquickitem_p.h
-===================================================================
---- trunk.orig/src/quick/items/qquickitem_p.h 2013-11-19 09:36:35.741906100 -0200
-+++ trunk/src/quick/items/qquickitem_p.h 2013-11-19 09:36:35.737906100 -0200
-@@ -526,16 +526,6 @@
- #ifndef QT_NO_IM
- void deliverInputMethodEvent(QInputMethodEvent *);
- #endif
-- void deliverFocusEvent(QFocusEvent *);
-- void deliverMouseEvent(QMouseEvent *);
--#ifndef QT_NO_WHEELEVENT
-- void deliverWheelEvent(QWheelEvent *);
--#endif
-- void deliverTouchEvent(QTouchEvent *);
-- void deliverHoverEvent(QHoverEvent *);
--#ifndef QT_NO_DRAGANDDROP
-- void deliverDragEvent(QEvent *);
--#endif
-
- bool calcEffectiveVisible() const;
- bool setEffectiveVisibleRecur(bool);
-Index: trunk/src/quick/items/qquickwindow.cpp
-===================================================================
---- trunk.orig/src/quick/items/qquickwindow.cpp 2013-11-19 09:36:35.741906100 -0200
-+++ trunk/src/quick/items/qquickwindow.cpp 2013-11-19 09:36:35.737906100 -0200
-@@ -1656,11 +1656,11 @@
- itemForTouchPointId[id] = item;
-
- // Deliver the touch event to the given item
-- QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
-- itemPrivate->deliverTouchEvent(touchEvent.data());
-+ QCoreApplication::sendEvent(item, touchEvent.data());
- touchEventAccepted = touchEvent->isAccepted();
-
- // If the touch event wasn't accepted, synthesize a mouse event and see if the item wants it.
-+ QQuickItemPrivate *itemPrivate = QQuickItemPrivate::get(item);
- if (!touchEventAccepted && (itemPrivate->acceptedMouseButtons() & Qt::LeftButton)) {
- // send mouse event
- event->setAccepted(translateTouchToMouse(item, event));
-@@ -2026,16 +2026,12 @@
- case QEvent::KeyPress:
- case QEvent::KeyRelease:
- e->accept();
-- QQuickItemPrivate::get(item)->deliverKeyEvent(static_cast<QKeyEvent *>(e));
-+ QCoreApplication::sendEvent(item, e);
- while (!e->isAccepted() && (item = item->parentItem())) {
- e->accept();
-- QQuickItemPrivate::get(item)->deliverKeyEvent(static_cast<QKeyEvent *>(e));
-+ QCoreApplication::sendEvent(item, e);
- }
- break;
-- case QEvent::FocusIn:
-- case QEvent::FocusOut:
-- QQuickItemPrivate::get(item)->deliverFocusEvent(static_cast<QFocusEvent *>(e));
-- break;
- case QEvent::MouseButtonPress:
- case QEvent::MouseButtonRelease:
- case QEvent::MouseButtonDblClick:
-@@ -2044,7 +2040,7 @@
- if (!d->sendFilteredMouseEvent(item->parentItem(), item, e)) {
- // accept because qml items by default accept and have to explicitly opt out of accepting
- e->accept();
-- QQuickItemPrivate::get(item)->deliverMouseEvent(static_cast<QMouseEvent *>(e));
-+ QCoreApplication::sendEvent(item, e);
- }
- break;
- case QEvent::UngrabMouse:
-@@ -2055,30 +2051,26 @@
- break;
- #ifndef QT_NO_WHEELEVENT
- case QEvent::Wheel:
-- QQuickItemPrivate::get(item)->deliverWheelEvent(static_cast<QWheelEvent *>(e));
-- break;
- #endif
-+#ifndef QT_NO_DRAGANDDROP
-+ case QEvent::DragEnter:
-+ case QEvent::DragMove:
-+ case QEvent::DragLeave:
-+ case QEvent::Drop:
-+#endif
-+ case QEvent::FocusIn:
-+ case QEvent::FocusOut:
- case QEvent::HoverEnter:
- case QEvent::HoverLeave:
- case QEvent::HoverMove:
-- QQuickItemPrivate::get(item)->deliverHoverEvent(static_cast<QHoverEvent *>(e));
-+ case QEvent::TouchCancel:
-+ QCoreApplication::sendEvent(item, e);
- break;
- case QEvent::TouchBegin:
- case QEvent::TouchUpdate:
- case QEvent::TouchEnd:
- d->sendFilteredTouchEvent(item->parentItem(), item, static_cast<QTouchEvent *>(e));
- break;
-- case QEvent::TouchCancel:
-- QQuickItemPrivate::get(item)->deliverTouchEvent(static_cast<QTouchEvent *>(e));
-- break;
--#ifndef QT_NO_DRAGANDDROP
-- case QEvent::DragEnter:
-- case QEvent::DragMove:
-- case QEvent::DragLeave:
-- case QEvent::Drop:
-- QQuickItemPrivate::get(item)->deliverDragEvent(e);
-- break;
--#endif
- default:
- break;
- }
-Index: trunk/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp
-===================================================================
---- trunk.orig/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp 2013-11-19 09:36:35.741906100 -0200
-+++ trunk/tests/auto/quick/qquickwindow/tst_qquickwindow.cpp 2013-11-19 09:36:35.737906100 -0200
-@@ -249,6 +249,18 @@
- int TestTouchItem::mouseMoveNum = 0;
- int TestTouchItem::mouseReleaseNum = 0;
-
-+class EventFilter : public QObject
-+{
-+public:
-+ bool eventFilter(QObject *watched, QEvent *event) {
-+ Q_UNUSED(watched);
-+ events.append(event->type());
-+ return false;
-+ }
-+
-+ QList<int> events;
-+};
-+
- class ConstantUpdateItem : public QQuickItem
- {
- Q_OBJECT
-@@ -312,6 +324,10 @@
-
- void ownershipRootItem();
-
-+ void qobjectEventFilter_touch();
-+ void qobjectEventFilter_key();
-+ void qobjectEventFilter_mouse();
-+
- #ifndef QT_NO_CURSOR
- void cursor();
- #endif
-@@ -836,6 +852,9 @@
- QTRY_COMPARE(middleItem->mousePressId, 1);
- QTRY_COMPARE(bottomItem->mousePressId, 2);
- QTRY_COMPARE(topItem->mousePressId, 3);
-+
-+ // clean up mouse press state for the next tests
-+ QTest::mouseRelease(window, Qt::LeftButton, 0, pos);
- }
-
- void tst_qquickwindow::qmlCreation()
-@@ -1207,6 +1226,84 @@
- }
- #endif
-
-+// QTBUG-32004
-+void tst_qquickwindow::qobjectEventFilter_touch()
-+{
-+ QQuickWindow window;
-+
-+ window.resize(250, 250);
-+ window.setPosition(100, 100);
-+ window.show();
-+ QVERIFY(QTest::qWaitForWindowExposed(&window));
-+
-+ TestTouchItem *item = new TestTouchItem(window.contentItem());
-+ item->setSize(QSizeF(150, 150));
-+
-+ EventFilter eventFilter;
-+ item->installEventFilter(&eventFilter);
-+
-+ QPointF pos(10, 10);
-+
-+ // press single point
-+ QTest::touchEvent(&window, touchDevice).press(0, item->mapToScene(pos).toPoint(), &window);
-+
-+ QCOMPARE(eventFilter.events.count(), 1);
-+ QCOMPARE(eventFilter.events.first(), (int)QEvent::TouchBegin);
-+}
-+
-+// QTBUG-32004
-+void tst_qquickwindow::qobjectEventFilter_key()
-+{
-+ QQuickWindow window;
-+
-+ window.resize(250, 250);
-+ window.setPosition(100, 100);
-+ window.show();
-+ QVERIFY(QTest::qWaitForWindowExposed(&window));
-+
-+ TestTouchItem *item = new TestTouchItem(window.contentItem());
-+ item->setSize(QSizeF(150, 150));
-+ item->setFocus(true);
-+
-+ EventFilter eventFilter;
-+ item->installEventFilter(&eventFilter);
-+
-+ QTest::keyPress(&window, Qt::Key_A);
-+
-+ // NB: It may also receive some QKeyEvent(ShortcutOverride) which we're not interested in
-+ QVERIFY(eventFilter.events.contains((int)QEvent::KeyPress));
-+ eventFilter.events.clear();
-+
-+ QTest::keyRelease(&window, Qt::Key_A);
-+
-+ QVERIFY(eventFilter.events.contains((int)QEvent::KeyRelease));
-+}
-+
-+// QTBUG-32004
-+void tst_qquickwindow::qobjectEventFilter_mouse()
-+{
-+ QQuickWindow window;
-+
-+ window.resize(250, 250);
-+ window.setPosition(100, 100);
-+ window.show();
-+ QVERIFY(QTest::qWaitForWindowExposed(&window));
-+
-+ TestTouchItem *item = new TestTouchItem(window.contentItem());
-+ item->setSize(QSizeF(150, 150));
-+
-+ EventFilter eventFilter;
-+ item->installEventFilter(&eventFilter);
-+
-+ QPoint point = item->mapToScene(QPointF(10, 10)).toPoint();
-+ QTest::mousePress(&window, Qt::LeftButton, Qt::NoModifier, point);
-+
-+ QVERIFY(eventFilter.events.contains((int)QEvent::MouseButtonPress));
-+
-+ // clean up mouse press state for the next tests
-+ QTest::mouseRelease(&window, Qt::LeftButton, Qt::NoModifier, point);
-+}
-+
- QTEST_MAIN(tst_qquickwindow)
-
- #include "tst_qquickwindow.moc"
-From db48c32d3328018b0857f9b60aae7c1f3627c896 Mon Sep 17 00:00:00 2001
-From: Daniel d'Andrada <[email protected]>
-Date: Tue, 12 Nov 2013 11:47:32 -0200
-Subject: [PATCH] Fix delivery of QEvents to QQuickItems
-
-Make them go through QObject::event() and comply to filtering
-from objects passsed to QObject::installEventFilter()
-
-Task-number: QTBUG-32004
-Change-Id: Ib6972e7f5e588bee986ae5f2d69aa6fccb58af95
----
- src/quick/items/qquickitem.cpp | 176 +++++++++------------
- src/quick/items/qquickitem_p.h | 10 --
- src/quick/items/qquickwindow.cpp | 46 +++---
- tests/auto/quick/qquickwindow/tst_qquickwindow.cpp | 97 ++++++++++++
- 4 files changed, 188 insertions(+), 141 deletions(-)
-
diff --git a/src/quick/items/qquickitem.cpp b/src/quick/items/qquickitem.cpp
index c3b221b..fb3e849 100644
--- a/src/quick/items/qquickitem.cpp
@@ -957,6 +493,3 @@
QTEST_MAIN(tst_qquickwindow)
#include "tst_qquickwindow.moc"
---
-1.8.4.3
-
--
kubuntu-devel mailing list
[email protected]
Modify settings or unsubscribe at:
https://lists.ubuntu.com/mailman/listinfo/kubuntu-devel