diff options
Diffstat (limited to 'api/logic')
-rw-r--r-- | api/logic/Env.cpp | 28 | ||||
-rw-r--r-- | api/logic/Env.h | 6 |
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; }; |