aboutsummaryrefslogtreecommitdiffstats
path: root/src/controls/qquickstyle.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/controls/qquickstyle.cpp')
-rw-r--r--src/controls/qquickstyle.cpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/controls/qquickstyle.cpp b/src/controls/qquickstyle.cpp
index b83f8c2a..5e1085c6 100644
--- a/src/controls/qquickstyle.cpp
+++ b/src/controls/qquickstyle.cpp
@@ -36,10 +36,15 @@
#include "qquickstyle_p.h"
+#include <QtCore/qfile.h>
+#include <QtCore/qsettings.h>
+#include <QtCore/qfileselector.h>
#include <QtQuick/private/qquickitem_p.h>
QT_BEGIN_NAMESPACE
+static const char *SettingsFilePath = ":/qtlabscontrols.conf";
+
static QQuickStyle *attachedStyle(const QMetaObject *type, QObject *object, bool create = false)
{
if (!object)
@@ -148,6 +153,21 @@ QQuickStyle::~QQuickStyle()
setParentStyle(Q_NULLPTR);
}
+QSharedPointer<QSettings> QQuickStyle::settings(const QString &group)
+{
+#ifndef QT_NO_SETTINGS
+ const QString filePath = QLatin1String(SettingsFilePath);
+ if (QFile::exists(filePath)) {
+ QFileSelector selector;
+ QSettings *settings = new QSettings(selector.select(filePath), QSettings::IniFormat);
+ if (!group.isEmpty())
+ settings->beginGroup(group);
+ return QSharedPointer<QSettings>(settings);
+ }
+#endif // QT_NO_SETTINGS
+ return QSharedPointer<QSettings>();
+}
+
QList<QQuickStyle *> QQuickStyle::childStyles() const
{
return m_childStyles;