aboutsummaryrefslogtreecommitdiffstats
path: root/src/quicktemplates2/qquickcontainer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/quicktemplates2/qquickcontainer.cpp')
-rw-r--r--src/quicktemplates2/qquickcontainer.cpp25
1 files changed, 16 insertions, 9 deletions
diff --git a/src/quicktemplates2/qquickcontainer.cpp b/src/quicktemplates2/qquickcontainer.cpp
index c4af6151..8217a3ff 100644
--- a/src/quicktemplates2/qquickcontainer.cpp
+++ b/src/quicktemplates2/qquickcontainer.cpp
@@ -336,6 +336,21 @@ void QQuickContainerPrivate::reorderItems()
}
}
+// Helper function needed for derived classes such as QQuickMenuBarPrivate.
+void QQuickContainerPrivate::addObject(QObject *obj)
+{
+ Q_Q(QQuickContainer);
+ QQuickItem *item = qobject_cast<QQuickItem *>(obj);
+ if (item) {
+ if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
+ item->setParentItem(effectiveContentItem(contentItem));
+ else if (contentModel->indexOf(item, nullptr) == -1)
+ q->addItem(item);
+ } else {
+ contentData.append(obj);
+ }
+}
+
void QQuickContainerPrivate::_q_currentIndexChanged()
{
Q_Q(QQuickContainer);
@@ -379,15 +394,7 @@ void QQuickContainerPrivate::contentData_append(QQmlListProperty<QObject> *prop,
{
QQuickContainer *q = static_cast<QQuickContainer *>(prop->object);
QQuickContainerPrivate *p = QQuickContainerPrivate::get(q);
- QQuickItem *item = qobject_cast<QQuickItem *>(obj);
- if (item) {
- if (QQuickItemPrivate::get(item)->isTransparentForPositioner())
- item->setParentItem(effectiveContentItem(p->contentItem));
- else if (p->contentModel->indexOf(item, nullptr) == -1)
- q->addItem(item);
- } else {
- p->contentData.append(obj);
- }
+ p->addObject(obj);
}
int QQuickContainerPrivate::contentData_count(QQmlListProperty<QObject> *prop)