summaryrefslogtreecommitdiffstats
path: root/src/CRSMConfig.hpp
diff options
context:
space:
mode:
authorMarkus Mittendrein <git@maxmitti.tk>2015-10-08 14:04:04 +0200
committerMarkus Mittendrein <git@maxmitti.tk>2015-10-08 14:04:04 +0200
commitdbd4d15144c727f967911d41d798758bfb9bad03 (patch)
tree7b3245f2ea9265f98dae5a16ff5b6dd268c8e0d8 /src/CRSMConfig.hpp
parentc59e14b83f8b88f01ec23dcc4e6265cbfb84f733 (diff)
downloadmanager-dbd4d15144c727f967911d41d798758bfb9bad03.tar.gz
manager-dbd4d15144c727f967911d41d798758bfb9bad03.zip
Add config get and config set commands and a -= config syntax to remove
elements from a list or map (by key)
Diffstat (limited to 'src/CRSMConfig.hpp')
-rw-r--r--src/CRSMConfig.hpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/CRSMConfig.hpp b/src/CRSMConfig.hpp
index b25b809..788b7e8 100644
--- a/src/CRSMConfig.hpp
+++ b/src/CRSMConfig.hpp
@@ -142,12 +142,14 @@ public:
class CRSMConfigValueList : public CRSMConfigValueBase {
public:
virtual void append(const QString& entry) = 0;
+ virtual void remove(const QString& entry) = 0;
virtual QStringList getValues() = 0;
};
class CRSMConfigValueMap : public CRSMConfigValueBase {
public:
virtual void setKeyValue(const QString& key, const QString& value) = 0;
+ virtual void remove(const QString& key) = 0;
virtual QMap<QString, QString> getValues() = 0;
};
@@ -172,6 +174,8 @@ public:
}
}
+ virtual void remove(const QString &entry) { config.removeAll(CRSMConfigValueBase::getValue<Type>(entry)); }
+
virtual QStringList getValues()
{
QStringList ret;
@@ -213,6 +217,11 @@ public:
return ret;
}
+
+ virtual void remove(const QString &key)
+ {
+ config.remove(CRSMConfigValueBase::getValue<KeyType>(key));
+ }
};
template<typename Type>
@@ -250,12 +259,16 @@ public:
explicit CRSMConfigBase(QMap<QString, CRSMConfigValueBase*> configValues) : configValues(configValues) {}
void setConfigValue(const QString& name, const QString& value);
+ QString getConfigValueLine(const QString& name);
void addConfigListEntry(const QString& name, const QString& value);
+ void removeConfigMapListEntry(const QString &name, const QString &value);
void setConfigMapValue(const QString& name, const QString& key, const QString& value);
QString read(const QString& fileName, bool writeDefault = true);
bool write(const QString& fileName);
+ void setConfigLine(const QString& line);
+
protected:
void addConfigValue(QString name, CRSMConfigValueBase *value);
CRSMConfigValueBase& getConfigValue(const QString &name);