aboutsummaryrefslogtreecommitdiff
path: root/lib/configuration/configuration.h
diff options
context:
space:
mode:
authorAqua-sama <aqua@iserlohn-fortress.net>2018-04-22 16:10:18 +0200
committerAqua-sama <aqua@iserlohn-fortress.net>2018-04-22 16:10:18 +0200
commite1f240f490324f8c6f4d8132630ad85756f6d191 (patch)
treed0b9cb561d34a361297a72823a897cbb235cbae9 /lib/configuration/configuration.h
parentAdd tile and cascade actions to Window menu (diff)
downloadsmolbote-e1f240f490324f8c6f4d8132630ad85756f6d191.tar.xz
Merge CommandLine functionality into Configuration
Diffstat (limited to 'lib/configuration/configuration.h')
-rw-r--r--lib/configuration/configuration.h23
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;