--- /dev/null
+#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