From 4e2ad25fc191204923689d573abccba9235234fd Mon Sep 17 00:00:00 2001 From: Nick Bolton Date: Mon, 16 Jun 2025 10:09:07 +0100 Subject: [PATCH] fix: Error text is not shown for Qt CLI parser --- src/apps/deskflow-gui/deskflow-gui.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/apps/deskflow-gui/deskflow-gui.cpp b/src/apps/deskflow-gui/deskflow-gui.cpp index 69a3312ec..e55b6d0c4 100644 --- a/src/apps/deskflow-gui/deskflow-gui.cpp +++ b/src/apps/deskflow-gui/deskflow-gui.cpp @@ -36,6 +36,8 @@ using namespace deskflow::gui; bool checkMacAssistiveDevices(); #endif +const static auto kHeader = QStringLiteral("%1: %2\n").arg(kAppName, kDisplayVersion); + int main(int argc, char *argv[]) { #if defined(Q_OS_UNIX) && defined(QT_DEBUG) @@ -63,15 +65,19 @@ int main(int argc, char *argv[]) parser.addOption(resetOption); parser.parse(QCoreApplication::arguments()); - const auto header = QStringLiteral("%1: %2\n").arg(kAppName, kDisplayVersion); - if (parser.isSet(helpOption) || !parser.unknownOptionNames().isEmpty() || !parser.errorText().isEmpty()) { - QTextStream(stdout) << header << QStringLiteral(" %1\n\n").arg(kAppDescription) + if (!parser.errorText().isEmpty()) { + qCritical().noquote() << parser.errorText() << "\nUse --help for more information."; + return 1; + } + + if (parser.isSet(helpOption)) { + QTextStream(stdout) << kHeader << QStringLiteral(" %1\n\n").arg(kAppDescription) << parser.helpText().replace(QApplication::applicationFilePath(), kAppId); return 0; } if (parser.isSet(versionOption)) { - QTextStream(stdout) << header << kCopyright << Qt::endl; + QTextStream(stdout) << kHeader << kCopyright << Qt::endl; return 0; }