mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2023-10-10 13:36:59 +02:00
50 lines
1.3 KiB
C
50 lines
1.3 KiB
C
|
#ifndef HYPERION_OPTION_H
|
||
|
#define HYPERION_OPTION_H
|
||
|
|
||
|
#include <QCommandLineOption>
|
||
|
#include <QCommandLineParser>
|
||
|
|
||
|
namespace commandline
|
||
|
{
|
||
|
|
||
|
class Parser;
|
||
|
|
||
|
/* Note, this class and all it's derivatives store the validated results for caching. This means that unlike the
|
||
|
* regular QCommandLineOption it is _not_ idempotent! */
|
||
|
class Option: public QCommandLineOption
|
||
|
{
|
||
|
protected:
|
||
|
QString _error;
|
||
|
public:
|
||
|
Option(const QString &name,
|
||
|
const QString &description = QString(),
|
||
|
const QString &valueName = QString::null,
|
||
|
const QString &defaultValue = QString()
|
||
|
)
|
||
|
: QCommandLineOption(name, description, valueName, defaultValue)
|
||
|
{}
|
||
|
Option(const QStringList &names,
|
||
|
const QString &description = QString(),
|
||
|
const QString &valueName = QString::null,
|
||
|
const QString &defaultValue = QString()
|
||
|
)
|
||
|
: QCommandLineOption(names, description, valueName, defaultValue)
|
||
|
{}
|
||
|
Option(const QCommandLineOption &other)
|
||
|
: QCommandLineOption(other)
|
||
|
{}
|
||
|
|
||
|
virtual bool validate(Parser &parser, QString &value);
|
||
|
QString name()
|
||
|
{ return this->names().last();}
|
||
|
QString getError()
|
||
|
{ return this->_error; }
|
||
|
QString value(Parser &parser);
|
||
|
std::string getStdString(Parser &parser);
|
||
|
std::wstring getStdWString(Parser &parser);
|
||
|
};
|
||
|
|
||
|
}
|
||
|
|
||
|
#endif //HYPERION_OPTION_H
|