hyperion.ng/include/commandline/Option.h
redPanther 858125510e hyperiond: add ability to export default config and effects (#244)
* - embed default config
- add possibility to export effects and embeded default config to filesystem

* do some code style
2016-09-17 00:40:29 +02:00

51 lines
1.4 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);
const char* getCString(Parser &parser);
};
}
#endif //HYPERION_OPTION_H