attempted to implement localization loading

This commit is contained in:
itsmattkc
2020-11-17 16:04:09 +11:00
parent 8a64ef75d9
commit b9724e3910
14 changed files with 4972 additions and 67 deletions
+13 -3
View File
@@ -34,11 +34,11 @@ CommandLineParser::~CommandLineParser()
}
}
const CommandLineParser::Option *CommandLineParser::AddOption(const QStringList &strings, const QString &description)
const CommandLineParser::Option *CommandLineParser::AddOption(const QStringList &strings, const QString &description, bool takes_arg, const QString &arg_placeholder)
{
Option* o = new Option();
options_.append({strings, description, o});
options_.append({strings, description, o, takes_arg, arg_placeholder});
return o;
}
@@ -72,6 +72,12 @@ void CommandLineParser::Process(int argc, char **argv)
if (!s.compare(arg_basename, Qt::CaseInsensitive)) {
// Flag discovered!
o.option->Set();
if (o.takes_arg && i+1 < argc) {
o.option->SetSetting(argv[i+1]);
i++;
}
matched_known = true;
goto found_flag;
}
@@ -147,7 +153,11 @@ void CommandLineParser::PrintHelp(const char* filename)
all_args.append(this_arg);
}
printf(" %s\n", all_args.toUtf8().constData());
if (o.arg_placeholder.isEmpty()) {
printf(" %s\n", all_args.toUtf8().constData());
} else {
printf(" %s <%s>\n", all_args.toUtf8().constData(), o.arg_placeholder.toUtf8().constData());
}
printf(" %s\n\n", o.description.toUtf8().constData());
}
+24 -22
View File
@@ -33,7 +33,27 @@ public:
DISABLE_COPY_MOVE(CommandLineParser)
class Option {
class PositionalArgument
{
public:
PositionalArgument() = default;
const QString& GetSetting() const
{
return setting_;
}
void SetSetting(const QString& s)
{
setting_ = s;
}
private:
QString setting_;
};
class Option : public PositionalArgument {
public:
Option()
{
@@ -55,29 +75,9 @@ public:
};
class PositionalArgument
{
public:
PositionalArgument() = default;
const QString& GetSetting() const
{
return setting_;
}
void SetSetting(const QString& s)
{
setting_ = s;
}
private:
QString setting_;
};
CommandLineParser() = default;
const Option* AddOption(const QStringList& strings, const QString& description);
const Option* AddOption(const QStringList& strings, const QString& description, bool takes_arg = false, const QString& arg_placeholder = QString());
const PositionalArgument* AddPositionalArgument(const QString& name, const QString& description, bool required = false);
@@ -90,6 +90,8 @@ private:
QStringList args;
QString description;
Option* option;
bool takes_arg;
QString arg_placeholder;
};
struct KnownPositionalArgument {