WIP CLIparser #25

已手动合并
crtxcr 2020-10-10 21:56:31 +02:00 将 5 次代码提交从 wip/cliparser 合并至 master
仅显示提交 883b71e8a8 的更改 - 显示所有提交

查看文件

@ -14,6 +14,7 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/ */
#include <QApplication> #include <QApplication>
#include <QCommandLineParser>
#include <QFuture> #include <QFuture>
#include <QFutureWatcher> #include <QFutureWatcher>
#include <QtConcurrent/QtConcurrentRun> #include <QtConcurrent/QtConcurrentRun>
@ -32,7 +33,15 @@ int main(int argc, char *argv[])
QDir dir; QDir dir;
if(argc >= 2) if(argc >= 2)
{ {
configDirectoryPath = QCoreApplication::arguments().at(1); QCommandLineParser parser;
parser.addOptions({
{"new-instance", "Launch a new instance, ignoring any running ones"},
{"kill-instances", "Kill all running instances"},
{"config", "Use supplied config dir instead of default"},
});
parser.addHelpOption();
parser.process(app.arguments());
configDirectoryPath = parser.value("config");
if(!dir.exists(configDirectoryPath)) if(!dir.exists(configDirectoryPath))
{ {
QMessageBox::warning(nullptr, "Directory not found", configDirectoryPath + " was not found"); QMessageBox::warning(nullptr, "Directory not found", configDirectoryPath + " was not found");
@ -45,12 +54,12 @@ int main(int argc, char *argv[])
} }
qRegisterMetaType<QVector<QString>>("QVector<QString>"); qRegisterMetaType<QVector<QString>>("QVector<QString>");
if(!dir.exists(configDirectoryPath)) if(!dir.exists(configDirectoryPath))
{ {
if(!dir.mkdir(configDirectoryPath)) if(!dir.mkdir(configDirectoryPath))
{ {
QMessageBox::warning(nullptr, "Failed to create dir", configDirectoryPath + " was not found and could not be created!"); QMessageBox::warning(nullptr, "Failed to create dir",
configDirectoryPath + " was not found and could not be created!");
return 1; return 1;
} }
} }
@ -91,10 +100,7 @@ int main(int argc, char *argv[])
}); });
w->showMaximized(); w->showMaximized();
w->focusInput(); w->focusInput();
} }
return app.exec(); return app.exec();
} }