diff options
author | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-03-15 14:44:06 +0100 |
---|---|---|
committer | Christian Mollekopf <chrigi_1@fastmail.fm> | 2016-03-15 15:19:41 +0100 |
commit | d838e58a3fd94a04d9db82560f7004433300b77e (patch) | |
tree | e464e72ba3e207c20bf9c5628f2513bf6170a552 /common/resourceconfig.cpp | |
parent | 3978a0128925081dac0d16c1956328b694796ce6 (diff) | |
download | sink-d838e58a3fd94a04d9db82560f7004433300b77e.tar.gz sink-d838e58a3fd94a04d9db82560f7004433300b77e.zip |
Added support for accounts
Diffstat (limited to 'common/resourceconfig.cpp')
-rw-r--r-- | common/resourceconfig.cpp | 93 |
1 files changed, 82 insertions, 11 deletions
diff --git a/common/resourceconfig.cpp b/common/resourceconfig.cpp index b988718..4b33990 100644 --- a/common/resourceconfig.cpp +++ b/common/resourceconfig.cpp | |||
@@ -23,19 +23,20 @@ | |||
23 | #include <QStandardPaths> | 23 | #include <QStandardPaths> |
24 | #include <QFile> | 24 | #include <QFile> |
25 | 25 | ||
26 | static QSharedPointer<QSettings> getSettings() | 26 | static QSharedPointer<QSettings> getConfig(const QByteArray &identifier) |
27 | { | 27 | { |
28 | return QSharedPointer<QSettings>::create(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink/resources.ini", QSettings::IniFormat); | 28 | return QSharedPointer<QSettings>::create(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink/" + identifier + ".ini", QSettings::IniFormat); |
29 | } | 29 | } |
30 | 30 | ||
31 | static QSharedPointer<QSettings> getResourceConfig(const QByteArray &identifier) | 31 | static QSharedPointer<QSettings> getSettings() |
32 | { | 32 | { |
33 | return QSharedPointer<QSettings>::create(QStandardPaths::writableLocation(QStandardPaths::GenericDataLocation) + "/sink/" + identifier, QSettings::IniFormat); | 33 | return getConfig("resources"); |
34 | } | 34 | } |
35 | 35 | ||
36 | |||
36 | QByteArray ResourceConfig::newIdentifier(const QByteArray &type) | 37 | QByteArray ResourceConfig::newIdentifier(const QByteArray &type) |
37 | { | 38 | { |
38 | auto settings = getSettings(); | 39 | auto settings = getConfig("resources"); |
39 | const auto counter = settings->value("instanceCounter", 0).toInt() + 1; | 40 | const auto counter = settings->value("instanceCounter", 0).toInt() + 1; |
40 | const QByteArray identifier = type + ".instance" + QByteArray::number(counter); | 41 | const QByteArray identifier = type + ".instance" + QByteArray::number(counter); |
41 | settings->setValue("instanceCounter", counter); | 42 | settings->setValue("instanceCounter", counter); |
@@ -45,7 +46,7 @@ QByteArray ResourceConfig::newIdentifier(const QByteArray &type) | |||
45 | 46 | ||
46 | void ResourceConfig::addResource(const QByteArray &identifier, const QByteArray &type) | 47 | void ResourceConfig::addResource(const QByteArray &identifier, const QByteArray &type) |
47 | { | 48 | { |
48 | auto settings = getSettings(); | 49 | auto settings = getConfig("resources"); |
49 | settings->beginGroup(QString::fromLatin1(identifier)); | 50 | settings->beginGroup(QString::fromLatin1(identifier)); |
50 | settings->setValue("type", type); | 51 | settings->setValue("type", type); |
51 | settings->endGroup(); | 52 | settings->endGroup(); |
@@ -54,18 +55,18 @@ void ResourceConfig::addResource(const QByteArray &identifier, const QByteArray | |||
54 | 55 | ||
55 | void ResourceConfig::removeResource(const QByteArray &identifier) | 56 | void ResourceConfig::removeResource(const QByteArray &identifier) |
56 | { | 57 | { |
57 | auto settings = getSettings(); | 58 | auto settings = getConfig("resources"); |
58 | settings->beginGroup(QString::fromLatin1(identifier)); | 59 | settings->beginGroup(QString::fromLatin1(identifier)); |
59 | settings->remove(""); | 60 | settings->remove(""); |
60 | settings->endGroup(); | 61 | settings->endGroup(); |
61 | settings->sync(); | 62 | settings->sync(); |
62 | QFile::remove(getResourceConfig(identifier)->fileName()); | 63 | QFile::remove(getConfig(identifier)->fileName()); |
63 | } | 64 | } |
64 | 65 | ||
65 | QMap<QByteArray, QByteArray> ResourceConfig::getResources() | 66 | QMap<QByteArray, QByteArray> ResourceConfig::getResources() |
66 | { | 67 | { |
67 | QMap<QByteArray, QByteArray> resources; | 68 | QMap<QByteArray, QByteArray> resources; |
68 | auto settings = getSettings(); | 69 | auto settings = getConfig("resources"); |
69 | for (const auto &identifier : settings->childGroups()) { | 70 | for (const auto &identifier : settings->childGroups()) { |
70 | settings->beginGroup(identifier); | 71 | settings->beginGroup(identifier); |
71 | const auto type = settings->value("type").toByteArray(); | 72 | const auto type = settings->value("type").toByteArray(); |
@@ -84,7 +85,7 @@ void ResourceConfig::clear() | |||
84 | 85 | ||
85 | void ResourceConfig::configureResource(const QByteArray &identifier, const QMap<QByteArray, QVariant> &configuration) | 86 | void ResourceConfig::configureResource(const QByteArray &identifier, const QMap<QByteArray, QVariant> &configuration) |
86 | { | 87 | { |
87 | auto config = getResourceConfig(identifier); | 88 | auto config = getConfig(identifier); |
88 | config->clear(); | 89 | config->clear(); |
89 | for (const auto &key : configuration.keys()) { | 90 | for (const auto &key : configuration.keys()) { |
90 | config->setValue(key, configuration.value(key)); | 91 | config->setValue(key, configuration.value(key)); |
@@ -95,7 +96,77 @@ void ResourceConfig::configureResource(const QByteArray &identifier, const QMap< | |||
95 | QMap<QByteArray, QVariant> ResourceConfig::getConfiguration(const QByteArray &identifier) | 96 | QMap<QByteArray, QVariant> ResourceConfig::getConfiguration(const QByteArray &identifier) |
96 | { | 97 | { |
97 | QMap<QByteArray, QVariant> configuration; | 98 | QMap<QByteArray, QVariant> configuration; |
98 | auto config = getResourceConfig(identifier); | 99 | auto config = getConfig(identifier); |
100 | for (const auto &key : config->allKeys()) { | ||
101 | configuration.insert(key.toLatin1(), config->value(key)); | ||
102 | } | ||
103 | return configuration; | ||
104 | } | ||
105 | |||
106 | |||
107 | QByteArray AccountConfig::newIdentifier(const QByteArray &type) | ||
108 | { | ||
109 | auto settings = getConfig("accounts"); | ||
110 | const auto counter = settings->value("instanceCounter", 0).toInt() + 1; | ||
111 | const QByteArray identifier = type + ".instance" + QByteArray::number(counter); | ||
112 | settings->setValue("instanceCounter", counter); | ||
113 | settings->sync(); | ||
114 | return identifier; | ||
115 | } | ||
116 | |||
117 | void AccountConfig::addAccount(const QByteArray &identifier, const QByteArray &type) | ||
118 | { | ||
119 | auto settings = getConfig("accounts"); | ||
120 | settings->beginGroup(QString::fromLatin1(identifier)); | ||
121 | settings->setValue("type", type); | ||
122 | settings->endGroup(); | ||
123 | settings->sync(); | ||
124 | } | ||
125 | |||
126 | void AccountConfig::removeAccount(const QByteArray &identifier) | ||
127 | { | ||
128 | auto settings = getConfig("accounts"); | ||
129 | settings->beginGroup(QString::fromLatin1(identifier)); | ||
130 | settings->remove(""); | ||
131 | settings->endGroup(); | ||
132 | settings->sync(); | ||
133 | QFile::remove(getConfig(identifier)->fileName()); | ||
134 | } | ||
135 | |||
136 | QMap<QByteArray, QByteArray> AccountConfig::getAccounts() | ||
137 | { | ||
138 | QMap<QByteArray, QByteArray> accounts; | ||
139 | auto settings = getConfig("accounts"); | ||
140 | for (const auto &identifier : settings->childGroups()) { | ||
141 | settings->beginGroup(identifier); | ||
142 | const auto type = settings->value("type").toByteArray(); | ||
143 | accounts.insert(identifier.toLatin1(), type); | ||
144 | settings->endGroup(); | ||
145 | } | ||
146 | return accounts; | ||
147 | } | ||
148 | |||
149 | void AccountConfig::clear() | ||
150 | { | ||
151 | auto settings = getSettings(); | ||
152 | settings->clear(); | ||
153 | settings->sync(); | ||
154 | } | ||
155 | |||
156 | void AccountConfig::configureAccount(const QByteArray &identifier, const QMap<QByteArray, QVariant> &configuration) | ||
157 | { | ||
158 | auto config = getConfig(identifier); | ||
159 | config->clear(); | ||
160 | for (const auto &key : configuration.keys()) { | ||
161 | config->setValue(key, configuration.value(key)); | ||
162 | } | ||
163 | config->sync(); | ||
164 | } | ||
165 | |||
166 | QMap<QByteArray, QVariant> AccountConfig::getConfiguration(const QByteArray &identifier) | ||
167 | { | ||
168 | QMap<QByteArray, QVariant> configuration; | ||
169 | auto config = getConfig(identifier); | ||
99 | for (const auto &key : config->allKeys()) { | 170 | for (const auto &key : config->allKeys()) { |
100 | configuration.insert(key.toLatin1(), config->value(key)); | 171 | configuration.insert(key.toLatin1(), config->value(key)); |
101 | } | 172 | } |