5 #include "ColorOption.h" 6 #include "ColorsOption.h" 7 #include "DoubleOption.h" 8 #include "ImageOption.h" 11 #include "RegularExpressionOption.h" 12 #include "SwitchOption.h" 13 #include "ValidatorOption.h" 14 #include "BooleanOption.h" 22 QHash<QString, Option *> _options;
25 QCommandLineParser _parser;
27 QStringList _getNames(
const char shortOption,
const QString longOption);
28 QString _getDescription(
const QString description,
const QString default_=QString());
31 bool parse(
const QStringList &arguments);
32 void process(
const QStringList &arguments);
33 void process(
const QCoreApplication &app);
34 QString errorText()
const;
36 template<
class OptionT,
class ... Args>
38 const char shortOption,
39 const QString longOption,
40 const QString description,
41 const QString default_,
44 OptionT * option =
new OptionT(
45 _getNames(shortOption, longOption),
46 _getDescription(description, default_),
56 template<
class OptionT>
58 const char shortOption,
59 const QString longOption,
60 const QString description,
61 const QString default_ = QString())
63 OptionT * option =
new OptionT(
64 _getNames(shortOption, longOption),
65 _getDescription(description, default_),
72 Parser(QString description=QString())
74 if(description.size())setApplicationDescription(description);
77 QCommandLineOption addHelpOption()
79 return _parser.addHelpOption();
82 bool addOption(
Option &option);
83 bool addOption(
Option *option);
84 void addPositionalArgument(
const QString &name,
const QString &description,
const QString &syntax = QString())
86 _parser.addPositionalArgument(name, description, syntax);
89 QCommandLineOption addVersionOption()
91 return _parser.addVersionOption();
94 QString applicationDescription()
const 95 {
return _parser.applicationDescription(); }
97 void clearPositionalArguments()
98 { _parser.clearPositionalArguments(); }
100 QString helpText()
const 101 {
return _parser.helpText(); }
103 bool isSet(
const QString &name)
const 104 {
return _parser.isSet(name); }
106 bool isSet(
const Option &option)
const 107 {
return _parser.isSet(option); }
109 bool isSet(
const Option *option)
const 110 {
return _parser.isSet(*option); }
112 QStringList optionNames()
const 113 {
return _parser.optionNames(); }
115 QStringList positionalArguments()
const 116 {
return _parser.positionalArguments(); }
118 void setApplicationDescription(
const QString &description)
119 { _parser.setApplicationDescription(description); }
121 void setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
122 { _parser.setSingleDashWordOptionMode(singleDashWordOptionMode); }
124 void showHelp(
int exitCode = 0)
125 { _parser.showHelp(exitCode); }
127 QStringList unknownOptionNames()
const 128 {
return _parser.unknownOptionNames(); }
130 QString value(
const QString &optionName)
const 131 {
return _parser.value(optionName); }
133 QString value(
const Option &option)
const 134 {
return _parser.value(option); }
136 QStringList values(
const QString &optionName)
const 137 {
return _parser.values(optionName); }
139 QStringList values(
const Option &option)
const 140 {
return _parser.values(option); }
Definition: BooleanOption.h:8