mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
hyperiond: add ability to export default config and effects (#244)
* - embed default config - add possibility to export effects and embeded default config to filesystem * do some code style
This commit is contained in:
@@ -42,6 +42,7 @@ public:
|
||||
QString value(Parser &parser);
|
||||
std::string getStdString(Parser &parser);
|
||||
std::wstring getStdWString(Parser &parser);
|
||||
const char* getCString(Parser &parser);
|
||||
};
|
||||
|
||||
}
|
||||
|
@@ -1,5 +1,4 @@
|
||||
#ifndef HYPERION_COMMANDLINEPARSER_H
|
||||
#define HYPERION_COMMANDLINEPARSER_H
|
||||
#pragma once
|
||||
|
||||
#include <QtCore>
|
||||
#include <QtGui>
|
||||
@@ -20,101 +19,126 @@ namespace commandline
|
||||
class Parser : public QObject
|
||||
{
|
||||
protected:
|
||||
QHash<QString, Option *> _options;
|
||||
QString _errorText;
|
||||
/* No public inheritance because we need to modify a few methods */
|
||||
QCommandLineParser _parser;
|
||||
QHash<QString, Option *> _options;
|
||||
QString _errorText;
|
||||
/* No public inheritance because we need to modify a few methods */
|
||||
QCommandLineParser _parser;
|
||||
|
||||
QStringList _getNames(const char shortOption, const QString longOption);
|
||||
QString _getDescription(const QString description, const QString default_=QString());
|
||||
QStringList _getNames(const char shortOption, const QString longOption);
|
||||
QString _getDescription(const QString description, const QString default_=QString());
|
||||
|
||||
public:
|
||||
bool parse(const QStringList &arguments);
|
||||
void process(const QStringList &arguments);
|
||||
void process(const QCoreApplication &app);
|
||||
QString errorText() const;
|
||||
bool parse(const QStringList &arguments);
|
||||
void process(const QStringList &arguments);
|
||||
void process(const QCoreApplication &app);
|
||||
QString errorText() const;
|
||||
|
||||
template<class OptionT, class ... Args>
|
||||
OptionT &add(
|
||||
const char shortOption,
|
||||
const QString longOption,
|
||||
template<class OptionT, class ... Args>
|
||||
OptionT &add(
|
||||
const char shortOption,
|
||||
const QString longOption,
|
||||
const QString description,
|
||||
const QString default_,
|
||||
Args ... args)
|
||||
{
|
||||
OptionT * option = new OptionT(
|
||||
_getNames(shortOption, longOption),
|
||||
_getDescription(description, default_),
|
||||
longOption,
|
||||
default_,
|
||||
args...);
|
||||
addOption(option);
|
||||
return *option;
|
||||
}
|
||||
{
|
||||
OptionT * option = new OptionT(
|
||||
_getNames(shortOption, longOption),
|
||||
_getDescription(description, default_),
|
||||
longOption,
|
||||
default_,
|
||||
args...);
|
||||
addOption(option);
|
||||
return *option;
|
||||
}
|
||||
|
||||
/* gcc does not support default arguments for variadic templates which
|
||||
* makes this method necessary */
|
||||
template<class OptionT>
|
||||
OptionT &add(
|
||||
const char shortOption,
|
||||
/* gcc does not support default arguments for variadic templates which
|
||||
* makes this method necessary */
|
||||
template<class OptionT>
|
||||
OptionT &add(
|
||||
const char shortOption,
|
||||
const QString longOption,
|
||||
const QString description,
|
||||
const QString default_ = QString())
|
||||
{
|
||||
OptionT * option = new OptionT(
|
||||
_getNames(shortOption, longOption),
|
||||
_getDescription(description, default_),
|
||||
longOption,
|
||||
default_);
|
||||
addOption(option);
|
||||
return *option;
|
||||
}
|
||||
{
|
||||
OptionT * option = new OptionT(
|
||||
_getNames(shortOption, longOption),
|
||||
_getDescription(description, default_),
|
||||
longOption,
|
||||
default_);
|
||||
addOption(option);
|
||||
return *option;
|
||||
}
|
||||
|
||||
Parser(QString description=QString())
|
||||
{if(description.size())setApplicationDescription(description);};
|
||||
QCommandLineOption addHelpOption()
|
||||
{ return _parser.addHelpOption(); }
|
||||
bool addOption(Option &option);
|
||||
bool addOption(Option *option);
|
||||
void addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())
|
||||
{ _parser.addPositionalArgument(name, description, syntax); }
|
||||
QCommandLineOption addVersionOption()
|
||||
{ return _parser.addVersionOption(); }
|
||||
QString applicationDescription() const
|
||||
{ return _parser.applicationDescription(); }
|
||||
void clearPositionalArguments()
|
||||
{ _parser.clearPositionalArguments(); }
|
||||
QString helpText() const
|
||||
{ return _parser.helpText(); }
|
||||
bool isSet(const QString &name) const
|
||||
{ return _parser.isSet(name); }
|
||||
bool isSet(const Option &option) const
|
||||
{ return _parser.isSet(option); }
|
||||
bool isSet(const Option *option) const
|
||||
{ return _parser.isSet(*option); }
|
||||
QStringList optionNames() const
|
||||
{ return _parser.optionNames(); }
|
||||
QStringList positionalArguments() const
|
||||
{ return _parser.positionalArguments(); }
|
||||
void setApplicationDescription(const QString &description)
|
||||
{ _parser.setApplicationDescription(description); }
|
||||
void setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
|
||||
{ _parser.setSingleDashWordOptionMode(singleDashWordOptionMode); }
|
||||
void showHelp(int exitCode = 0)
|
||||
{ _parser.showHelp(exitCode); }
|
||||
QStringList unknownOptionNames() const
|
||||
{ return _parser.unknownOptionNames(); }
|
||||
QString value(const QString &optionName) const
|
||||
{ return _parser.value(optionName); }
|
||||
QString value(const Option &option) const
|
||||
{ return _parser.value(option); }
|
||||
QStringList values(const QString &optionName) const
|
||||
{ return _parser.values(optionName); }
|
||||
QStringList values(const Option &option) const
|
||||
{ return _parser.values(option); }
|
||||
Parser(QString description=QString())
|
||||
{
|
||||
if(description.size())setApplicationDescription(description);
|
||||
};
|
||||
|
||||
QCommandLineOption addHelpOption()
|
||||
{
|
||||
return _parser.addHelpOption();
|
||||
};
|
||||
|
||||
bool addOption(Option &option);
|
||||
bool addOption(Option *option);
|
||||
void addPositionalArgument(const QString &name, const QString &description, const QString &syntax = QString())
|
||||
{
|
||||
_parser.addPositionalArgument(name, description, syntax);
|
||||
};
|
||||
|
||||
QCommandLineOption addVersionOption()
|
||||
{
|
||||
return _parser.addVersionOption();
|
||||
};
|
||||
|
||||
QString applicationDescription() const
|
||||
{ return _parser.applicationDescription(); }
|
||||
|
||||
void clearPositionalArguments()
|
||||
{ _parser.clearPositionalArguments(); }
|
||||
|
||||
QString helpText() const
|
||||
{ return _parser.helpText(); }
|
||||
|
||||
bool isSet(const QString &name) const
|
||||
{ return _parser.isSet(name); }
|
||||
|
||||
bool isSet(const Option &option) const
|
||||
{ return _parser.isSet(option); }
|
||||
|
||||
bool isSet(const Option *option) const
|
||||
{ return _parser.isSet(*option); }
|
||||
|
||||
QStringList optionNames() const
|
||||
{ return _parser.optionNames(); }
|
||||
|
||||
QStringList positionalArguments() const
|
||||
{ return _parser.positionalArguments(); }
|
||||
|
||||
void setApplicationDescription(const QString &description)
|
||||
{ _parser.setApplicationDescription(description); }
|
||||
|
||||
void setSingleDashWordOptionMode(QCommandLineParser::SingleDashWordOptionMode singleDashWordOptionMode)
|
||||
{ _parser.setSingleDashWordOptionMode(singleDashWordOptionMode); }
|
||||
|
||||
void showHelp(int exitCode = 0)
|
||||
{ _parser.showHelp(exitCode); }
|
||||
|
||||
QStringList unknownOptionNames() const
|
||||
{ return _parser.unknownOptionNames(); }
|
||||
|
||||
QString value(const QString &optionName) const
|
||||
{ return _parser.value(optionName); }
|
||||
|
||||
QString value(const Option &option) const
|
||||
{ return _parser.value(option); }
|
||||
|
||||
QStringList values(const QString &optionName) const
|
||||
{ return _parser.values(optionName); }
|
||||
|
||||
QStringList values(const Option &option) const
|
||||
{ return _parser.values(option); }
|
||||
|
||||
};
|
||||
|
||||
}
|
||||
|
||||
#endif //HYPERION_COMMANDLINEPARSER_H
|
||||
|
Reference in New Issue
Block a user