#ifndef OPTIONS_H
#define OPTIONS_H
#include <QStringList>
/*! \brief A single option which is listed in Options */
class Option
{
public:
/*! Types of options */
enum Type {
Switch, //!< No paramater
String //!< Parameter is a string
};
Option();
Option(const QString &, const Type &, const QString &, const QString &);
void set (const QString &, const Type &, const QString &, const QString &);
QString getName();
QString getShort();
QString getLong();
Type getType();
void setArg(const QString &);
QString getArg();
void setActive();
bool isActive();
private:
QString name;
Type type;
QString sName;
QString lName;
QString sarg;
bool active;
};
/*! \brief Simple class to deal with command line options */
class Options
{
public:
Options();
int parse();
void add (Option );
void add (const QString &,const Option::Type &, const QString &, const QString&);
void setHelpText(const QString&);
QString getHelpText();
QString getProgramName();
QStringList getFileList();
bool isOn (const QString &);
QString getArg (const QString &);
private:
QString progname;
QString helptext;
QStringList filelist;
QList <Option> optlist;
};
#endif