From 7aa1cd87eac006f2f7ffd136b91ac6176755af1d Mon Sep 17 00:00:00 2001 From: LordGrey <48840279+Lord-Grey@users.noreply.github.com> Date: Mon, 23 Oct 2023 21:08:05 +0200 Subject: [PATCH] Do not validate values for options without value --- libsrc/commandline/Parser.cpp | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/libsrc/commandline/Parser.cpp b/libsrc/commandline/Parser.cpp index 0bceb682..df58fe1f 100644 --- a/libsrc/commandline/Parser.cpp +++ b/libsrc/commandline/Parser.cpp @@ -14,19 +14,22 @@ bool Parser::parse(const QStringList &arguments) return false; } - for(Option * option : _options) + for(Option * option : std::as_const(_options)) { - QString value = this->value(*option); - if (!option->validate(*this, value)) { - const QString error = option->getError(); - if (!error.isEmpty()) { - _errorText = tr("\"%1\" is not a valid option for %2, %3").arg(value, option->name(), error); + if (!option->valueName().isEmpty()) + { + QString value = this->value(*option); + if (!option->validate(*this, value)) { + const QString error = option->getError(); + if (!error.isEmpty()) { + _errorText = tr("\"%1\" is not a valid option for %2, %3").arg(value, option->name(), error); + } + else + { + _errorText = tr("\"%1\" is not a valid option for %2").arg(value, option->name()); + } + return false; } - else - { - _errorText = tr("\"%1\" is not a valid option for %2").arg(value, option->name()); - } - return false; } } return true;