diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-01-28 14:50:43 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2016-01-28 14:30:04 +0000 |
commit | d12c37e52b64184bbb50e375d17d7eca3244a360 (patch) | |
tree | f5f5ce381506c1c4465f7502b977a67ed668928b | |
parent | fce62e0d0fab90932f1afb7c1520b721f50cf7c1 (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.cpp | 4 | ||||
-rw-r--r-- | src/templates/qquickoverlay.cpp | 6 | ||||
-rw-r--r-- | src/templates/qquickpopup.cpp | 6 | ||||
-rw-r--r-- | src/templates/qquickpopup_p.h | 2 | ||||
-rw-r--r-- | tests/auto/popup/tst_popup.cpp | 4 |
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()); |