diff options
-rw-r--r-- | src/controls/qquickstyle.cpp | 18 | ||||
-rw-r--r-- | src/controls/qquickstyle_p.h | 5 |
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(); |