diff options
author | J-P Nurmi <jpnurmi@qt.io> | 2017-06-08 09:11:39 +0200 |
---|---|---|
committer | J-P Nurmi <jpnurmi@qt.io> | 2017-06-08 09:11:39 +0200 |
commit | 38be5b605a844693bb93d24fab8c721bec273003 (patch) | |
tree | bd8f5271078bca73acb1c33d7ee6f6f5a02b6a59 /src/quicktemplates2/qquickapplicationwindow.cpp | |
parent | 20d141034b48ae73eee70743dc410d35491cd00f (diff) | |
parent | a5f8ceee8547c3447675d1c4e70f5706bbd2bd99 (diff) |
Merge remote-tracking branch 'origin/5.9' into dev
Conflicts:
src/imports/controls/doc/src/qtquickcontrols2-index.qdoc
src/imports/controls/doc/src/qtquickcontrols2-styles.qdoc
src/quicktemplates2/qquickapplicationwindow.cpp
src/quicktemplates2/qquickmenu.cpp
src/quicktemplates2/qquickmenu_p.h
src/quicktemplates2/qquickpopup.cpp
tests/auto/auto.pro
Change-Id: I856a022d38abd84763127539f46ef032ddc53c3d
Diffstat (limited to 'src/quicktemplates2/qquickapplicationwindow.cpp')
-rw-r--r-- | src/quicktemplates2/qquickapplicationwindow.cpp | 21 |
1 files changed, 17 insertions, 4 deletions
diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp index ff062259..a6523553 100644 --- a/src/quicktemplates2/qquickapplicationwindow.cpp +++ b/src/quicktemplates2/qquickapplicationwindow.cpp @@ -36,7 +36,7 @@ #include "qquickapplicationwindow_p.h" #include "qquickoverlay_p.h" -#include "qquickpopup_p.h" +#include "qquickpopup_p_p.h" #include "qquickcontrol_p_p.h" #include "qquicktextarea_p.h" #include "qquicktextfield_p.h" @@ -179,6 +179,8 @@ public: void _q_updateActiveFocus(); void setActiveFocusControl(QQuickItem *item); + static void contentData_append(QQmlListProperty<QObject> *prop, QObject *obj); + bool complete; QQuickItem *background; QQuickItem *contentItem; @@ -268,7 +270,6 @@ void QQuickApplicationWindowPrivate::updateFont(const QFont &f) QQuickControlPrivate::updateFontRecur(q->QQuickWindow::contentItem(), f); - // TODO: internal QQuickPopupManager that provides reliable access to all QQuickPopup instances const QList<QQuickPopup *> popups = q->findChildren<QQuickPopup *>(); for (QQuickPopup *popup : popups) QQuickControlPrivate::get(static_cast<QQuickControl *>(popup->popupItem()))->inheritFont(f); @@ -340,6 +341,15 @@ void QQuickApplicationWindowPrivate::setActiveFocusControl(QQuickItem *control) } } +void QQuickApplicationWindowPrivate::contentData_append(QQmlListProperty<QObject> *prop, QObject *obj) +{ + QQuickItemPrivate::data_append(prop, obj); + + // associate "top-level" popups with the window as soon as they are added to the default property + if (QQuickPopup *popup = qobject_cast<QQuickPopup *>(obj)) + QQuickPopupPrivate::get(popup)->setWindow(static_cast<QQuickApplicationWindow *>(prop->data)); +} + QQuickApplicationWindow::QQuickApplicationWindow(QWindow *parent) : QQuickWindowQmlImpl(parent), d_ptr(new QQuickApplicationWindowPrivate) { @@ -539,7 +549,11 @@ void QQuickApplicationWindow::setFooter(QQuickItem *footer) */ QQmlListProperty<QObject> QQuickApplicationWindow::contentData() { - return QQuickItemPrivate::get(contentItem())->data(); + return QQmlListProperty<QObject>(contentItem(), this, + QQuickApplicationWindowPrivate::contentData_append, + QQuickItemPrivate::data_count, + QQuickItemPrivate::data_at, + QQuickItemPrivate::data_clear); } /*! @@ -670,7 +684,6 @@ void QQuickApplicationWindow::resetFont() setFont(QFont()); } - /*! \qmlproperty Locale QtQuick.Controls::ApplicationWindow::locale |