diff options
Diffstat (limited to 'lib/configuration/configuration.h')
-rw-r--r-- | lib/configuration/configuration.h | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/lib/configuration/configuration.h b/lib/configuration/configuration.h index 5b59766..5bb9f5d 100644 --- a/lib/configuration/configuration.h +++ b/lib/configuration/configuration.h @@ -23,10 +23,8 @@ public: explicit Configuration(); ~Configuration(); - static QString defaultUserConfigLocation(); - - bool read(const QString &path); - bool parse(int argc, char **argv); + bool parseConfigFile(const std::string &path); + bool parseCommandLine(int argc, char **argv); template <typename T> std::optional<T> value(const char *path) const @@ -66,13 +64,26 @@ public: const std::vector<boost::shared_ptr<boost::program_options::option_description>> &options() { - return desc.options(); + return configuration_desc.options(); } QHash<QString, QString> section(const std::string &prefix) const; + QStringList positionalArguments() const + { + QStringList l; + if(vm.count("url")) { + std::vector<std::string> urls = vm["url"].as<std::vector<std::string>>(); + for(const std::string &s : urls) { + l.append(QString::fromStdString(s)); + } + } + return l; + } private: - boost::program_options::options_description desc; + boost::program_options::options_description commandLine_desc; + boost::program_options::options_description configuration_desc; + boost::program_options::positional_options_description arguments_desc; boost::program_options::variables_map vm; std::string m_homePath; |