X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fcliparser.cpp;h=2116577db18c3e4f3650014b2740fe2601ae89a7;hp=c4ca9b8c847d059dca0f17e59fe6b361c3919ea6;hb=7c261a2241532e6d11c678289823d590d5244549;hpb=4831a16871344dc46a8ae9da4e9fd3125f87b785 diff --git a/src/common/cliparser.cpp b/src/common/cliparser.cpp index c4ca9b8c..2116577d 100644 --- a/src/common/cliparser.cpp +++ b/src/common/cliparser.cpp @@ -20,15 +20,44 @@ #include "cliparser.h" #include +#include #include #include -#include -CliParser::CliParser(QStringList arguments) -{ - argsRaw = arguments; +#ifdef HAVE_KDE +# include +#endif + +CliParser::CliParser() { + +} + +#ifdef HAVE_KDE +void CliParser::addArgument(const QString &longName, const CliParserArg &arg) { + if(arg.shortName != 0) { + _cmdLineOptions.add(QByteArray().append(arg.shortName)); + } + _cmdLineOptions.add(longName.toUtf8(), ki18n(arg.help.toUtf8()), arg.def.toUtf8()); +} + +bool CliParser::init(const QStringList &) { + KCmdLineArgs::addCmdLineOptions(_cmdLineOptions); + return true; +} + +QString CliParser::value(const QString &longName) { + return KCmdLineArgs::parsedArgs()->getOption(longName.toUtf8()); +} + +bool CliParser::isSet(const QString &longName) { + return KCmdLineArgs::parsedArgs()->isSet(longName.toUtf8()); +} + +void CliParser::usage() { + KCmdLineArgs::usage(); } +#else void CliParser::addArgument(const QString &longName, const CliParserArg &arg) { if(argsHash.contains(longName)) qWarning() << "Warning: Multiple definition of argument" << longName; if(arg.shortName != 0 && !lnameOfShortArg(arg.shortName).isNull()) @@ -82,7 +111,8 @@ QString CliParser::escapedValue(const QString &value) { return escapedValue; } -bool CliParser::parse() { +bool CliParser::init(const QStringList &args) { + argsRaw = args; QStringList::const_iterator currentArg; for (currentArg = argsRaw.constBegin(); currentArg != argsRaw.constEnd(); ++currentArg) { if(currentArg->startsWith("--")) { @@ -147,7 +177,7 @@ bool CliParser::parse() { void CliParser::usage() { qWarning() << "Usage:" << QFileInfo(argsRaw.at(0)).completeBaseName() << "[arguments]"; - + // get size of longName field QStringList keys = argsHash.keys(); uint lnameFieldSize = 0; @@ -161,12 +191,12 @@ void CliParser::usage() { size += 8; if(size > lnameFieldSize) lnameFieldSize = size; } - + QHash::const_iterator arg; for(arg = argsHash.constBegin(); arg != argsHash.constEnd(); ++arg) { QString output; QString lnameField; - + if(arg.value().shortName) { output.append(" -").append(arg.value().shortName).append(","); } @@ -182,7 +212,7 @@ void CliParser::usage() { if(arg.value().type == CliParserArg::CliArgOption && !arg.value().def.isNull()) { output.append(". Default is: ").append(arg.value().def); } - qWarning(output.toLatin1()); + qWarning() << output.toLatin1(); } } @@ -217,3 +247,5 @@ QString CliParser::lnameOfShortArg(const char arg) { } return QString(); } + +#endif