@@ -17,6 +17,7 @@
17#include "fake_gsettings.h"
17#include "fake_gsettings.h"
19#include <QList>
19#include <QList>
21GSettingsControllerQml* GSettingsControllerQml::s_controllerInstance = 0;
22GSettingsControllerQml* GSettingsControllerQml::s_controllerInstance = 0;
@@ -42,12 +43,42 @@ void GSettingsControllerQml::unRegisterSettingsObject(GSettingsQml *obj) {
42 m_registeredGSettings.removeOne(obj);
43 m_registeredGSettings.removeOne(obj);
45−void GSettingsControllerQml::setPictureUri(const QString &str) {
46+void GSettingsControllerQml::setPictureUri(const QByteArray &schemaId, const QString &str)
48+ if (m_pictureUri[schemaId] != str) {
49+ m_pictureUri[schemaId] = str;
46− Q_FOREACH (GSettingsQml *obj, m_registeredGSettings) {
51+ Q_FOREACH (GSettingsQml *obj, m_registeredGSettings) {
47− obj->setPictureUri(str);
52+ if (obj->schema()->id() == schemaId) {
53+ Q_EMIT obj->pictureUriChanged(str);
59+QString GSettingsControllerQml::pictureUri(const QByteArray &schemaId) const
61+ return m_pictureUri.value(schemaId, "");
64+void GSettingsControllerQml::setUsageMode(const QByteArray &schemaId, const QString &str)
66+ if (m_usageMode[schemaId] != str) {
67+ m_usageMode[schemaId] = str;
69+ Q_FOREACH (GSettingsQml *obj, m_registeredGSettings) {
70+ if (obj->schema()->id() == schemaId) {
71+ Q_EMIT obj->usageModeChanged(str);
77+QString GSettingsControllerQml::usageMode(const QByteArray &schemaId) const
79+ return m_usageMode.value(schemaId, "phone");
51GSettingsSchemaQml::GSettingsSchemaQml(QObject *parent): QObject(parent) {
82GSettingsSchemaQml::GSettingsSchemaQml(QObject *parent): QObject(parent) {
@@ -56,12 +87,13 @@ QByteArray GSettingsSchemaQml::id() const {
58void GSettingsSchemaQml::setId(const QByteArray &id) {
89void GSettingsSchemaQml::setId(const QByteArray &id) {
59− if (m_id.isEmpty()) {
90+ if (!m_id.isEmpty()) {
60 qWarning("GSettings.schema.id may only be set on construction");
91 qWarning("GSettings.schema.id may only be set on construction");
64 m_id = id;
95 m_id = id;
96+ Q_EMIT idChanged(id);
67QByteArray GSettingsSchemaQml::path() const {
99QByteArray GSettingsSchemaQml::path() const {
@@ -69,7 +101,7 @@ QByteArray GSettingsSchemaQml::path() const {
71void GSettingsSchemaQml::setPath(const QByteArray &path) {
103void GSettingsSchemaQml::setPath(const QByteArray &path) {
72− if (m_path.isEmpty()) {
104+ if (!m_path.isEmpty()) {
73 qWarning("GSettings.schema.path may only be set on construction");
105 qWarning("GSettings.schema.path may only be set on construction");
@@ -90,13 +122,20 @@ GSettingsSchemaQml * GSettingsQml::schema() const {
90 return m_schema;
122 return m_schema;
125+void GSettingsQml::setPictureUri(const QString &str) {
126+ GSettingsControllerQml::instance()->setPictureUri(m_schema->id(), str);
93QString GSettingsQml::pictureUri() const {
129QString GSettingsQml::pictureUri() const {
94− return m_pictureUri;
130+ return GSettingsControllerQml::instance()->pictureUri(m_schema->id());
97−void GSettingsQml::setPictureUri(const QString &str) {
133+void GSettingsQml::setUsageMode(const QString &str) {
98− if (str != m_pictureUri) {
134+ GSettingsControllerQml::instance()->setUsageMode(m_schema->id(), str);
100− Q_EMIT pictureUriChanged(m_pictureUri);
137+QString GSettingsQml::usageMode() const {
138+ return GSettingsControllerQml::instance()->usageMode(m_schema->id());