diff options
Diffstat (limited to 'src/controls/qquickstyle.cpp')
-rw-r--r-- | src/controls/qquickstyle.cpp | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/controls/qquickstyle.cpp b/src/controls/qquickstyle.cpp index c38950d8..76cb24cc 100644 --- a/src/controls/qquickstyle.cpp +++ b/src/controls/qquickstyle.cpp @@ -145,14 +145,20 @@ static QList<QQuickStyle *> findChildStyles(const QMetaObject *type, QObject *ob QQuickStyle::QQuickStyle(QObject *parent) : QObject(parent) { - QQuickItem *item = parentItem(); + QQuickItem *item = qobject_cast<QQuickItem *>(parent); + if (!item) { + QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent); + if (popup) + item = popup->popupItem(); + } + if (item) QQuickItemPrivate::get(item)->addItemChangeListener(this, QQuickItemPrivate::Parent); } QQuickStyle::~QQuickStyle() { - QQuickItem *item = parentItem(); + QQuickItem *item = qobject_cast<QQuickItem *>(parent()); if (item) QQuickItemPrivate::get(item)->removeItemChangeListener(this, QQuickItemPrivate::Parent); @@ -174,17 +180,6 @@ QSharedPointer<QSettings> QQuickStyle::settings(const QString &group) return QSharedPointer<QSettings>(); } -QQuickItem *QQuickStyle::parentItem() const -{ - QQuickItem *item = qobject_cast<QQuickItem *>(parent()); - if (!item) { - QQuickPopup *popup = qobject_cast<QQuickPopup *>(parent()); - if (popup) - item = popup->popupItem(); - } - return item; -} - QList<QQuickStyle *> QQuickStyle::childStyles() const { return m_childStyles; |