summaryrefslogtreecommitdiffstats
path: root/api/logic
diff options
context:
space:
mode:
Diffstat (limited to 'api/logic')
-rw-r--r--api/logic/Env.cpp28
-rw-r--r--api/logic/Env.h6
2 files changed, 34 insertions, 0 deletions
diff --git a/api/logic/Env.cpp b/api/logic/Env.cpp
index 73cad2e9..77546bbc 100644
--- a/api/logic/Env.cpp
+++ b/api/logic/Env.cpp
@@ -20,6 +20,7 @@ struct Env::Private
std::shared_ptr<IIconList> m_iconlist;
shared_qobject_ptr<Meta::Index> m_metadataIndex;
QString m_jarsPath;
+ QSet<QString> m_features;
};
static Env * instance;
@@ -179,3 +180,30 @@ void Env::setJarsPath(const QString& path)
{
d->m_jarsPath = path;
}
+
+void Env::enableFeature(const QString& featureName, bool state)
+{
+ if(state)
+ {
+ d->m_features.insert(featureName);
+ }
+ else
+ {
+ d->m_features.remove(featureName);
+ }
+}
+
+bool Env::isFeatureEnabled(const QString& featureName) const
+{
+ return d->m_features.contains(featureName);
+}
+
+void Env::getEnabledFeatures(QSet<QString>& features) const
+{
+ features = d->m_features;
+}
+
+void Env::setEnabledFeatures(const QSet<QString>& features) const
+{
+ d->m_features = features;
+}
diff --git a/api/logic/Env.h b/api/logic/Env.h
index 4d9ec139..8b9b827e 100644
--- a/api/logic/Env.h
+++ b/api/logic/Env.h
@@ -54,6 +54,12 @@ public:
QString getJarsPath();
void setJarsPath(const QString & path);
+
+ bool isFeatureEnabled(const QString & featureName) const;
+ void enableFeature(const QString & featureName, bool state = true);
+ void getEnabledFeatures(QSet<QString> & features) const;
+ void setEnabledFeatures(const QSet<QString> & features) const;
+
protected:
Private * d;
};