diff options
Diffstat (limited to 'src/command_line_options.cpp')
-rw-r--r-- | src/command_line_options.cpp | 48 |
1 files changed, 24 insertions, 24 deletions
diff --git a/src/command_line_options.cpp b/src/command_line_options.cpp index 1bc6c4a..712f8a5 100644 --- a/src/command_line_options.cpp +++ b/src/command_line_options.cpp @@ -1,33 +1,37 @@ #include "command_line_options.h" #include <getopt.h> +#include <QDebug> CommandLineOptions::CommandLineOptions(int argc, char * const argv[]) { // parse command line arguments - for (;;) { - static const struct option longOptions[] = { - {"config", required_argument, NULL, 'c'}, - {"default", required_argument, NULL, 'd'}, - {"pool", required_argument, NULL, 'P'}, - {"path", required_argument, NULL, 'p'}, - {"xpath", required_argument, NULL, 'x'}, - {"size", required_argument, NULL, 's'}, - {"pvs", no_argument, NULL, 'b'}, - {"debug", no_argument, NULL, 'D'}, - {"version", no_argument, NULL, 'v'}, - {"help", no_argument, NULL, 'h'}, - {0, 0, 0, 0} - }; + static const struct option longOptions[] = { + {"config", required_argument, NULL, 'c'}, + {"default", required_argument, NULL, 'd'}, + {"pool", required_argument, NULL, 'P'}, + {"path", required_argument, NULL, 'p'}, + {"xpath", required_argument, NULL, 'x'}, + {"size", required_argument, NULL, 's'}, + {"theme", required_argument, NULL, 't'}, + {"pvs", no_argument, NULL, 'b'}, + {"debug", no_argument, NULL, 'D'}, + {"version", no_argument, NULL, 'v'}, + {"help", no_argument, NULL, 'h'}, + {0, 0, 0, 0} + }; - int opt = getopt_long(argc, argv, "c:d:P:p:x:s:w:vhbD", longOptions, NULL); - if (opt == -1) break; + int c; - switch (opt) { + while ((c = getopt_long(argc, argv, "c:d:f:P:p:x:s:t:w:vhbD", longOptions, NULL)) != -1) { + switch (c) { case 'c': options.insert("config", optarg); break; case 'd': options.insert("default", optarg); break; + case 'f': + options.insert("file", optarg); + break; case 'D': options.insert("debugMode", "debugMode"); break; @@ -43,6 +47,9 @@ CommandLineOptions::CommandLineOptions(int argc, char * const argv[]) { case 's': options.insert("size", optarg); break; + case 't': + options.insert("theme", optarg); + break; case 'b': options.insert("pvs", "pvs"); break; @@ -56,12 +63,5 @@ CommandLineOptions::CommandLineOptions(int argc, char * const argv[]) { default: options.insert("error", "error"); } - - if (optind == argc - 1) { - options.insert("file", argv[optind]); - } else if (optind < argc - 1) { - options.insert("error", "error"); - } } } - |