// Copyright (C) 2013 Laszlo Papp // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only #ifndef QCOMMANDLINEPARSER_H #define QCOMMANDLINEPARSER_H #include #include #include QT_REQUIRE_CONFIG(commandlineparser); QT_BEGIN_NAMESPACE class QCommandLineParserPrivate; class QCoreApplication; class Q_CORE_EXPORT QCommandLineParser { Q_DECLARE_TR_FUNCTIONS(QCommandLineParser) public: QCommandLineParser(); ~QCommandLineParser(); enum SingleDashWordOptionMode { ParseAsCompactedShortOptions, ParseAsLongOptions }; void setSingleDashWordOptionMode(SingleDashWordOptionMode parsingMode); enum OptionsAfterPositionalArgumentsMode { ParseAsOptions, ParseAsPositionalArguments }; void setOptionsAfterPositionalArgumentsMode(OptionsAfterPositionalArgumentsMode mode); bool addOption(const QCommandLineOption &commandLineOption); bool addOptions(const QList &options); QCommandLineOption addVersionOption(); QCommandLineOption addHelpOption(); void setApplicationDescription(const QString &description); QString applicationDescription() const; void addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString()); void clearPositionalArguments(); void process(const QStringList &arguments); void process(const QCoreApplication &app); bool parse(const QStringList &arguments); QString errorText() const; bool isSet(const QString &name) const; QString value(const QString &name) const; QStringList values(const QString &name) const; bool isSet(const QCommandLineOption &option) const; QString value(const QCommandLineOption &option) const; QStringList values(const QCommandLineOption &option) const; QStringList positionalArguments() const; QStringList optionNames() const; QStringList unknownOptionNames() const; Q_NORETURN void showVersion(); Q_NORETURN void showHelp(int exitCode = 0); QString helpText() const; private: Q_DISABLE_COPY(QCommandLineParser) QCommandLineParserPrivate * const d; }; QT_END_NAMESPACE #endif // QCOMMANDLINEPARSER_H