История изменений
Исправление
Twissel,
(текущая версия)
:
main.cpp
for (int i = 1; i < arguments.size(); ++i) {
const QString &arg = arguments.at(i);
if (arg.startsWith(QLatin1Char('-'))) {
if (arg == QLatin1String("-m") || arg == QLatin1String("--mainwindow")) {
showMainWindow = true;
} else if (arg == QLatin1String("-a") || arg == QLatin1String("--addressbook")) {
showAddressbookWindow = true;
} else if (arg == QLatin1String("-c") || arg == QLatin1String("--compose")) {
showComposeWindow = true;
} else if (arg == QLatin1String("-h") || arg == QLatin1String("--help")) {
showHelp = true;
} else if (arg == QLatin1String("-p") || arg == QLatin1String("--profile")) {
if (i+1 == arguments.size() || arguments.at(i+1).startsWith(QLatin1Char('-'))) {
qErr << QObject::tr("Error: Profile was not specified") << endl;
error = true;
break;
} else if (!profileName.isEmpty()) {
qErr << QObject::tr("Error: Duplicate profile option '%1'").arg(arg) << endl;
error = true;
break;
} else {
profileName = arguments.at(i+1);
++i;
}
} else if (arg == QLatin1String("--log-to-disk")) {
logToDisk = true;
} else {
qErr << QObject::tr("Warning: Unknown option '%1'").arg(arg) << endl;
}
} else {
if (!url.isEmpty() || !arg.startsWith(QLatin1String("mailto:"))) {
qErr << QObject::tr("Warning: Unexpected argument '%1'").arg(arg) << endl;
} else {
url = arg;
showComposeWindow = true;
}
}
}
Имеет ли смысл этот код переписывать с использованием QCommandLineParser ?
P.S. если что, аргументы это app.arguments()
Исходная версия
Twissel,
:
main.cpp
for (int i = 1; i < arguments.size(); ++i) {
const QString &arg = arguments.at(i);
if (arg.startsWith(QLatin1Char('-'))) {
if (arg == QLatin1String("-m") || arg == QLatin1String("--mainwindow")) {
showMainWindow = true;
} else if (arg == QLatin1String("-a") || arg == QLatin1String("--addressbook")) {
showAddressbookWindow = true;
} else if (arg == QLatin1String("-c") || arg == QLatin1String("--compose")) {
showComposeWindow = true;
} else if (arg == QLatin1String("-h") || arg == QLatin1String("--help")) {
showHelp = true;
} else if (arg == QLatin1String("-p") || arg == QLatin1String("--profile")) {
if (i+1 == arguments.size() || arguments.at(i+1).startsWith(QLatin1Char('-'))) {
qErr << QObject::tr("Error: Profile was not specified") << endl;
error = true;
break;
} else if (!profileName.isEmpty()) {
qErr << QObject::tr("Error: Duplicate profile option '%1'").arg(arg) << endl;
error = true;
break;
} else {
profileName = arguments.at(i+1);
++i;
}
} else if (arg == QLatin1String("--log-to-disk")) {
logToDisk = true;
} else {
qErr << QObject::tr("Warning: Unknown option '%1'").arg(arg) << endl;
}
} else {
if (!url.isEmpty() || !arg.startsWith(QLatin1String("mailto:"))) {
qErr << QObject::tr("Warning: Unexpected argument '%1'").arg(arg) << endl;
} else {
url = arg;
showComposeWindow = true;
}
}
}
Имеет ли смысл этот код переписывать с использованием QCommandLineParser ?