aboutsummaryrefslogtreecommitdiffstats
path: root/src/controls
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-19 14:22:01 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2016-01-19 14:22:27 +0100
commit7cad85c2f0930e4f8531a0508c28abdae0f3e0de (patch)
tree9ffe1d390ff137aa11de472ba59947c0b96cdfbb /src/controls
parented30fdd7085ee8a007b990dc871afdeef0d7cbeb (diff)
parentd2a744f81272f9c0b6e987cc9f6c57f3931b67e7 (diff)
Merge remote-tracking branch 'origin/5.6' into dev
Conflicts: src/controls/qquickstyle.cpp Change-Id: I1c8273012b01726072e5cbfd4369453a780ff03e
Diffstat (limited to 'src/controls')
-rw-r--r--src/controls/qquickstyle.cpp53
-rw-r--r--src/controls/qquickstyleselector.cpp4
2 files changed, 32 insertions, 25 deletions
diff --git a/src/controls/qquickstyle.cpp b/src/controls/qquickstyle.cpp
index 6de4c7a2..7fd6a2f0 100644
--- a/src/controls/qquickstyle.cpp
+++ b/src/controls/qquickstyle.cpp
@@ -44,8 +44,6 @@
QT_BEGIN_NAMESPACE
-static const char *SettingsFilePath = ":/qtlabscontrols.conf";
-
static QQuickStyle *attachedStyle(const QMetaObject *type, QObject *object, bool create = false)
{
if (!object)
@@ -63,33 +61,40 @@ static QQuickStyle *findParentStyle(const QMetaObject *type, QObject *parent)
if (style)
return style;
+ // lookup object parent (window/popup)
+ QObject *grandParent = parent->parent();
+ if (grandParent) {
+ QQuickStyle *style = findParentStyle(type, grandParent);
+ if (style)
+ return style;
+ }
+
QQuickItem *item = qobject_cast<QQuickItem *>(parent);
if (item) {
// lookup parent items
QQuickItem *parent = item->parentItem();
- if (parent)
- return findParentStyle(type, parent);
+ if (parent) {
+ QQuickStyle *style = findParentStyle(type, parent);
+ if (style)
+ return style;
+ }
// fallback to item's window
- return findParentStyle(type, item->window());
+ QQuickStyle *style = findParentStyle(type, item->window());
+ if (style)
+ return style;
}
- // lookup object parent (window/popup)
- if (parent->parent())
- return findParentStyle(type, parent->parent());
-
// fallback to engine (global)
- if (parent) {
- QQmlEngine *engine = qmlEngine(parent);
- if (engine) {
- QByteArray name = QByteArray("_q_") + type->className();
- QQuickStyle *style = engine->property(name).value<QQuickStyle*>();
- if (!style) {
- style = attachedStyle(type, engine, true);
- engine->setProperty(name, QVariant::fromValue(style));
- }
- return style;
+ QQmlEngine *engine = qmlEngine(parent);
+ if (engine) {
+ QByteArray name = QByteArray("_q_") + type->className();
+ QQuickStyle *style = engine->property(name).value<QQuickStyle*>();
+ if (!style) {
+ style = attachedStyle(type, engine, true);
+ engine->setProperty(name, QVariant::fromValue(style));
}
+ return style;
}
return Q_NULLPTR;
@@ -166,7 +171,7 @@ QQuickStyle::~QQuickStyle()
QSharedPointer<QSettings> QQuickStyle::settings(const QString &group)
{
#ifndef QT_NO_SETTINGS
- const QString filePath = QLatin1String(SettingsFilePath);
+ const QString filePath = QStringLiteral(":/qtlabscontrols.conf");
if (QFile::exists(filePath)) {
QFileSelector selector;
QSettings *settings = new QSettings(selector.select(filePath), QSettings::IniFormat);
@@ -203,14 +208,16 @@ void QQuickStyle::setParentStyle(QQuickStyle *style)
void QQuickStyle::init()
{
- if (!parent())
+ QObject *parent = QObject::parent();
+ if (!parent)
return;
- QQuickStyle *parentStyle = findParentStyle(metaObject(), parent()->parent());
+ QQuickItem *parentItem = qobject_cast<QQuickItem *>(parent);
+ QQuickStyle *parentStyle = findParentStyle(metaObject(), parentItem ? parentItem->parentItem() : parent->parent());
if (parentStyle)
setParentStyle(parentStyle);
- const QList<QQuickStyle *> children = findChildStyles(metaObject(), parent());
+ const QList<QQuickStyle *> children = findChildStyles(metaObject(), parent);
for (QQuickStyle *child : children)
child->setParentStyle(this);
}
diff --git a/src/controls/qquickstyleselector.cpp b/src/controls/qquickstyleselector.cpp
index 3be5eb3d..b169ade2 100644
--- a/src/controls/qquickstyleselector.cpp
+++ b/src/controls/qquickstyleselector.cpp
@@ -82,9 +82,9 @@ QString QQuickStyleSelector::select(const QString &filePath) const
static bool isLocalScheme(const QString &file)
{
- bool local = file == QStringLiteral("qrc");
+ bool local = file == QLatin1String("qrc");
#ifdef Q_OS_ANDROID
- local |= file == QStringLiteral("assets");
+ local |= file == QLatin1String("assets");
#endif
return local;
}