aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/controls/qquickstyle.cpp18
-rw-r--r--src/controls/qquickstyle_p.h5
2 files changed, 23 insertions, 0 deletions
diff --git a/src/controls/qquickstyle.cpp b/src/controls/qquickstyle.cpp
index b83f8c2a..4ab7b7cc 100644
--- a/src/controls/qquickstyle.cpp
+++ b/src/controls/qquickstyle.cpp
@@ -36,10 +36,14 @@
#include "qquickstyle_p.h"
+#include <QtCore/qfile.h>
+#include <QtCore/qsettings.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 +152,20 @@ 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)) {
+ QSettings *settings = new QSettings(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;
diff --git a/src/controls/qquickstyle_p.h b/src/controls/qquickstyle_p.h
index 3d4431cd..02ee667a 100644
--- a/src/controls/qquickstyle_p.h
+++ b/src/controls/qquickstyle_p.h
@@ -52,10 +52,13 @@
#include <QtCore/qlist.h>
#include <QtCore/qobject.h>
#include <QtCore/qpointer.h>
+#include <QtCore/qsharedpointer.h>
#include <QtQuick/private/qquickitemchangelistener_p.h>
QT_BEGIN_NAMESPACE
+class QSettings;
+
class QQuickStyle : public QObject, public QQuickItemChangeListener
{
Q_OBJECT
@@ -64,6 +67,8 @@ public:
explicit QQuickStyle(QObject *parent = Q_NULLPTR);
~QQuickStyle();
+ static QSharedPointer<QSettings> settings(const QString &group = QString());
+
protected:
void init();