diff options
Diffstat (limited to 'src/qmmpui')
| -rw-r--r-- | src/qmmpui/commandlinehandler.cpp | 22 | ||||
| -rw-r--r-- | src/qmmpui/commandlinehandler.h | 13 | ||||
| -rw-r--r-- | src/qmmpui/commandlinemanager.cpp | 2 | ||||
| -rw-r--r-- | src/qmmpui/commandlinemanager.h | 2 |
4 files changed, 36 insertions, 3 deletions
diff --git a/src/qmmpui/commandlinehandler.cpp b/src/qmmpui/commandlinehandler.cpp index 7bf98f069..e8a5e81da 100644 --- a/src/qmmpui/commandlinehandler.cpp +++ b/src/qmmpui/commandlinehandler.cpp @@ -25,7 +25,9 @@ QStringList CommandLineHandler::helpString() const QStringList out; foreach (const CommandLineOption &opt, m_options.values()) { - if(opt.values.isEmpty()) + if(opt.flags & HIDDEN_FROM_HELP) + continue; + else if(opt.values.isEmpty()) out << opt.names.join(", ") + "||" + opt.helpString; else out << opt.names.join(", ") + " <" + opt.values.join("> <") + ">||" + opt.helpString; @@ -33,6 +35,14 @@ QStringList CommandLineHandler::helpString() const return out; } +QString CommandLineHandler::helpString(int id) const +{ + if(m_options[id].values.isEmpty()) + return m_options[id].names.join(", ") + "||" + m_options[id].helpString; + else + return m_options[id].names.join(", ") + " <" + m_options[id].values.join("> <") + ">||" + m_options[id].helpString; +} + int CommandLineHandler::identify(const QString &name) const { foreach (const CommandLineOption &opt, m_options.values()) @@ -43,6 +53,11 @@ int CommandLineHandler::identify(const QString &name) const return -1; } +CommandLineHandler::OptionFlags CommandLineHandler::flags(int id) const +{ + return m_options.value(id).flags; +} + void CommandLineHandler::registerOption(int id, const QString &name, const QString &helpString, const QStringList &values) { registerOption(id, QStringList() << name, helpString, values); @@ -56,3 +71,8 @@ void CommandLineHandler::registerOption(int id, const QStringList &names, const opt.helpString = helpString; m_options.insert(id, opt); } + +void CommandLineHandler::setOptionFlags(int id, OptionFlags flags) +{ + m_options[id].flags = flags; +} diff --git a/src/qmmpui/commandlinehandler.h b/src/qmmpui/commandlinehandler.h index 78e2262ed..bc998fe0d 100644 --- a/src/qmmpui/commandlinehandler.h +++ b/src/qmmpui/commandlinehandler.h @@ -24,6 +24,7 @@ #include <QMap> #include <QStringList> #include <QtPlugin> +#include <QFlags> #include "qmmpui_export.h" @@ -64,11 +65,22 @@ public: virtual QString executeCommand(int id, const QStringList &args) = 0; QStringList helpString() const; + QString helpString(int id) const; int identify(const QString &name) const; + enum OptionFlag + { + HIDDEN_FROM_HELP = 0x1, + NO_START = 0x2 + }; + Q_DECLARE_FLAGS(OptionFlags, OptionFlag) + + CommandLineHandler::OptionFlags flags(int id) const; + protected: void registerOption(int id, const QString &name, const QString &helpString, const QStringList &values = QStringList()); void registerOption(int id, const QStringList &names, const QString &helpString, const QStringList &values = QStringList()); + void setOptionFlags(int id, OptionFlags flags); private: struct CommandLineOption @@ -76,6 +88,7 @@ private: QStringList names; QStringList values; QString helpString; + OptionFlags flags; inline bool operator == (const CommandLineOption &opt) const { diff --git a/src/qmmpui/commandlinemanager.cpp b/src/qmmpui/commandlinemanager.cpp index 1c56e7db4..d1f28b1ba 100644 --- a/src/qmmpui/commandlinemanager.cpp +++ b/src/qmmpui/commandlinemanager.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2008-2017 by Ilya Kotov * + * Copyright (C) 2008-2019 by Ilya Kotov * * forkotov02@ya.ru * * * * This program is free software; you can redistribute it and/or modify * diff --git a/src/qmmpui/commandlinemanager.h b/src/qmmpui/commandlinemanager.h index a57114ff2..78cba92c6 100644 --- a/src/qmmpui/commandlinemanager.h +++ b/src/qmmpui/commandlinemanager.h @@ -38,7 +38,7 @@ public: * @param args Command arguments. * @return Command output result. */ - static QString executeCommand(const QString& name, const QStringList &args = QStringList()); + static QString executeCommand(const QString &name, const QStringList &args = QStringList()); /*! * Return \b true if command \b opt_str is supported, otherwise returns \b false. */ |
