X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fcliparser.h;h=3c096a2e76fce56c793d065d5df59163aedc78fb;hp=00f22b982bad297e3d7e5bf40e32f5a6b14aa920;hb=af5ee11e78a6c98f755d0cc5e3bef77028b227dd;hpb=b3a2bd9e7d829afca26c6ab3ea09dfc6490319ce diff --git a/src/common/cliparser.h b/src/common/cliparser.h index 00f22b98..3c096a2e 100644 --- a/src/common/cliparser.h +++ b/src/common/cliparser.h @@ -21,50 +21,30 @@ #ifndef CLIPARSER_H #define CLIPARSER_H -#include -#include #include -#include -class CliParserArg { +#include "abstractcliparser.h" + +//! Quassel's own parser for command line arguments +class CliParser : public AbstractCliParser { public: - enum CliArgType { - CliArgInvalid, - CliArgSwitch, - CliArgOption - }; - typedef CliArgType CliArgTypes; - - inline CliParserArg() {}; - CliParserArg(const CliParserArg &other); - CliParserArg(CliArgType type, QString longName, char shortName = 0, QVariant _def = QVariant()); - CliParserArg &operator=(const CliParserArg &other); + CliParser(); - CliArgType type; - QString lname; - char sname; - QString shortHelp; - QVariant def; - QVariant value; -}; -Q_DECLARE_METATYPE(CliParserArg); + bool init(const QStringList &arguments = QStringList()); -class CliParser{ -public: - inline CliParser() {}; - CliParser(QStringList arguments); - bool parse(); - QVariant value(QString key); - void addSwitch(QString longName, char shortName = 0, QVariant def = false); - void addOption(QString longName, char shortName = 0, QVariant def = QVariant()); - void addHelp(QString key, QString txt); + QString value(const QString &longName); + bool isSet(const QString &longName); void usage(); + private: - void addArgument(CliParserArg::CliArgType type, QString longName, char shortName, QVariant def); + void addArgument(const QString &longName, const CliParserArg &arg); + bool addLongArg(const CliParserArg::CliArgType type, const QString &name, const QString &value = QString()); + bool addShortArg(const CliParserArg::CliArgType type, const char shortName, const QString &value = QString()); + QString escapedValue(const QString &value); + QString lnameOfShortArg(const char arg); + QStringList argsRaw; QHash argsHash; - QHash::iterator> shortHash; }; - #endif