aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-28 14:50:43 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-28 14:30:04 +0000
commitd12c37e52b64184bbb50e375d17d7eca3244a360 (patch)
treef5f5ce381506c1c4465f7502b977a67ed668928b
parentfce62e0d0fab90932f1afb7c1520b721f50cf7c1 (diff)
Add QQuickPopup::popupItem()
Even though I didn't want to expose this, because I'm still hoping we could make QQuickPopup inherit QQuickControl in the future, the fact that QQuickPopupPrivate::get(popup)->popupItem was used in so many places is a good indicator that accessing the popup item is often required when dealing with popups. In any case, this is C++ only API and not exposed to QML, so it's not that big deal... and we can always deprecate it later and make it return "this" should the item plans come true. Change-Id: I6b99a499327d838ee61eae70f8ebf8e77f00ae39 Reviewed-by: J-P Nurmi <jpnurmi@theqtcompany.com>
-rw-r--r--src/controls/qquickstyle.cpp4
-rw-r--r--src/templates/qquickoverlay.cpp6
-rw-r--r--src/templates/qquickpopup.cpp6
-rw-r--r--src/templates/qquickpopup_p.h2
-rw-r--r--tests/auto/popup/tst_popup.cpp4
5 files changed, 15 insertions, 7 deletions
diff --git a/src/controls/qquickstyle.cpp b/src/controls/qquickstyle.cpp
index 05f4fbff..0ca6558e 100644
--- a/src/controls/qquickstyle.cpp
+++ b/src/controls/qquickstyle.cpp
@@ -40,7 +40,7 @@
#include <QtCore/qsettings.h>
#include <QtCore/qfileselector.h>
#include <QtQuick/private/qquickitem_p.h>
-#include <QtLabsTemplates/private/qquickpopup_p_p.h>
+#include <QtLabsTemplates/private/qquickpopup_p.h>
QT_BEGIN_NAMESPACE
@@ -118,7 +118,7 @@ static QList<QQuickStyle *> findChildStyles(const QMetaObject *type, QObject *ob
}
}
} else if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(object)) {
- item = QQuickPopupPrivate::get(popup)->popupItem;
+ item = popup->popupItem();
QQuickStyle *style = attachedStyle(type, popup);
if (style)
diff --git a/src/templates/qquickoverlay.cpp b/src/templates/qquickoverlay.cpp
index 09fa05b4..589cafdf 100644
--- a/src/templates/qquickoverlay.cpp
+++ b/src/templates/qquickoverlay.cpp
@@ -35,7 +35,7 @@
****************************************************************************/
#include "qquickoverlay_p.h"
-#include "qquickpopup_p_p.h"
+#include "qquickpopup_p.h"
#include "qquickdrawer_p.h"
#include <QtQml/qqmlinfo.h>
#include <QtQml/qqmlproperty.h>
@@ -97,8 +97,8 @@ void QQuickOverlayPrivate::closePopup(QQuickPopup *popup, QMouseEvent *event)
const bool onOutside = popup->closePolicy().testFlag(isPress ? QQuickPopup::OnPressOutside : QQuickPopup::OnReleaseOutside);
const bool onOutsideParent = popup->closePolicy().testFlag(isPress ? QQuickPopup::OnPressOutsideParent : QQuickPopup::OnReleaseOutsideParent);
if (onOutside || onOutsideParent) {
- QQuickItem *popupItem = QQuickPopupPrivate::get(popup)->popupItem;
- QQuickItem *parentItem = QQuickPopupPrivate::get(popup)->parentItem;
+ QQuickItem *popupItem = popup->popupItem();
+ QQuickItem *parentItem = popup->parentItem();
if (onOutside && onOutsideParent) {
if (!popupItem->contains(q->mapToItem(popupItem, event->pos())) &&
diff --git a/src/templates/qquickpopup.cpp b/src/templates/qquickpopup.cpp
index 606ce058..2db7488c 100644
--- a/src/templates/qquickpopup.cpp
+++ b/src/templates/qquickpopup.cpp
@@ -906,6 +906,12 @@ void QQuickPopup::resetBottomPadding()
d->setBottomPadding(0, true);
}
+QQuickItem *QQuickPopup::popupItem() const
+{
+ Q_D(const QQuickPopup);
+ return d->popupItem;
+}
+
/*!
\qmlproperty Item Qt.labs.popups::Popup::parent
diff --git a/src/templates/qquickpopup_p.h b/src/templates/qquickpopup_p.h
index 349268a5..6c51c46a 100644
--- a/src/templates/qquickpopup_p.h
+++ b/src/templates/qquickpopup_p.h
@@ -149,6 +149,8 @@ public:
void setBottomPadding(qreal padding);
void resetBottomPadding();
+ QQuickItem *popupItem() const;
+
QQuickItem *parentItem() const;
void setParentItem(QQuickItem *parent);
diff --git a/tests/auto/popup/tst_popup.cpp b/tests/auto/popup/tst_popup.cpp
index 0b75b7f7..61bf999c 100644
--- a/tests/auto/popup/tst_popup.cpp
+++ b/tests/auto/popup/tst_popup.cpp
@@ -41,7 +41,7 @@
#include <QtLabsTemplates/private/qquickapplicationwindow_p.h>
#include <QtLabsTemplates/private/qquickoverlay_p.h>
-#include <QtLabsTemplates/private/qquickpopup_p_p.h>
+#include <QtLabsTemplates/private/qquickpopup_p.h>
#include <QtLabsTemplates/private/qquickbutton_p.h>
using namespace QQuickVisualTestUtil;
@@ -67,7 +67,7 @@ void tst_popup::visible()
QQuickPopup *popup = helper.window->property("popup").value<QQuickPopup*>();
QVERIFY(popup);
- QQuickItem *popupItem = QQuickPopupPrivate::get(popup)->popupItem;
+ QQuickItem *popupItem = popup->popupItem();
popup->open();
QVERIFY(popup->isVisible());