diff options
| author | Thiago Macieira <thiago.macieira@intel.com> | 2024-11-28 09:12:00 -0800 |
|---|---|---|
| committer | Thiago Macieira <thiago.macieira@intel.com> | 2024-12-19 20:42:42 +0000 |
| commit | 8928b0fbb9ca4caf9b63a32b3d2a73a6da096755 (patch) | |
| tree | 0f882c08023abda1a24708b58ce090e87d2ad49f /src/corelib/tools/qcommandlineparser.cpp | |
| parent | 5735d7ac861fe99a71d8044977e5f487c401ca12 (diff) | |
QCommandLineParser: include the positional arguments' sizes in --help
We were mostly ignoring them because it looks like most people's options
were longer than their positional arguments. The rest must have just
accepted the enforced wrapping.
But if you have very short options like single-letter only ones or none
at all, the positional argument wrapping is unnecessarily short.
[ChangeLog][QtCore][QCommandLineParser] Made it so the positional
argument descriptions are taken into account in the aligning of text for
helpText().
Pick-to: 6.8 6.9
Fixes: QTBUG-131716
Change-Id: Ib1eee62c7cf4462f6a26fffdec233ba849ebf158
Reviewed-by: David Faure <david.faure@kdab.com>
Diffstat (limited to 'src/corelib/tools/qcommandlineparser.cpp')
| -rw-r--r-- | src/corelib/tools/qcommandlineparser.cpp | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/corelib/tools/qcommandlineparser.cpp b/src/corelib/tools/qcommandlineparser.cpp index 45831d093d7..21de967a80d 100644 --- a/src/corelib/tools/qcommandlineparser.cpp +++ b/src/corelib/tools/qcommandlineparser.cpp @@ -1159,6 +1159,7 @@ QString QCommandLineParserPrivate::helpText(bool includeQtOptions) const text += nl; if (!options.isEmpty()) text += QCommandLineParser::tr("Options:") + nl; + QStringList optionNameList; optionNameList.reserve(options.size()); qsizetype longestOptionNameString = 0; @@ -1179,6 +1180,10 @@ QString QCommandLineParserPrivate::helpText(bool includeQtOptions) const optionNameList.append(optionNamesString); longestOptionNameString = qMax(longestOptionNameString, optionNamesString.size()); } + + for (const PositionalArgumentDefinition &arg : positionalArgumentDefinitions) + longestOptionNameString = qMax(longestOptionNameString, arg.name.size()); + ++longestOptionNameString; const int optionNameMaxWidth = qMin(50, int(longestOptionNameString)); auto optionNameIterator = optionNameList.cbegin(); |
