fix: Error text is not shown for Qt CLI parser

This commit is contained in:
Nick Bolton
2025-06-16 10:09:07 +01:00
parent 66e201c8ef
commit 4e2ad25fc1

View File

@ -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;
}