Suffering from absence of useful QSettings in QML?
Its pretty easy to solve (if you not afraid of some c++ code in your project)
#ifndef SETTINGS_H #define SETTINGS_H #include <QObject> #include <QSettings> class Settings : public QObject { Q_OBJECT public: explicit Settings(QObject *parent = 0); Q_INVOKABLE void setValue(const QString & key, const QVariant & value); Q_INVOKABLE QVariant value(const QString &key, const QVariant &defaultValue = QVariant()) const; signals: public slots: private: QSettings settings_; }; #endif // SETTINGS_H
#include "settings.h" Settings::Settings(QObject *parent) : QObject(parent) { } void Settings::setValue(const QString &key, const QVariant &value) { settings_.setValue(key, value); } QVariant Settings::value(const QString &key, const QVariant &defaultValue) const { return settings_.value(key, defaultValue); }
register it:
QQmlContext *context = engine->rootContext(); context->setContextProperty("settings", &settings);
and use:
FileDialog { id: fileDialog folder: settings.value("lastFolder", ".") onAccepted: { settings.setValue("lastFolder", fileDialog.folder) } }
pretty easy, eh?