From 6cf244277a5ba8434b85d2b9a861ceed1c6dfb88 Mon Sep 17 00:00:00 2001 From: Aqua-sama Date: Mon, 11 Dec 2017 21:57:25 +0100 Subject: Autogenerating settings dialog --- lib/settings/configuration.cpp | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) (limited to 'lib/settings/configuration.cpp') diff --git a/lib/settings/configuration.cpp b/lib/settings/configuration.cpp index 9d53581..8af421f 100644 --- a/lib/settings/configuration.cpp +++ b/lib/settings/configuration.cpp @@ -80,18 +80,33 @@ bool Configuration::readDefaultConfiguration(const std::string &data) return true; } -std::vector Configuration::children(const char* name) +std::vector Configuration::childrenSettings(const char* name) { std::vector groupNames; const Setting &root = m_defaultCfg->lookup(name); - for(auto i = root.begin(); i != root.end(); ++i) { - groupNames.push_back(std::string(i->getName())); + for(const Setting &setting : root) { + if(setting.getType() != Setting::TypeGroup) { + groupNames.push_back(setting.getName()); + } } return groupNames; } +std::vector Configuration::childrenGroups(const char* name) +{ + std::vector groupNames; + const Setting &root = m_defaultCfg->lookup(name); + + for(const Setting &setting : root) { + if(setting.getType() == Setting::TypeGroup) { + groupNames.push_back(setting.getName()); + } + } + return groupNames; +} + template std::optional Configuration::value(const char* path) const { -- cgit v1.2.1