From caa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mikko=20Syrj=C3=A4?= Date: Fri, 8 Mar 2019 22:33:56 +0200 Subject: Command line parameter improvements. --- main.cpp | 45 ++++++++++++++++++++++++++++++++++++++------- 1 file changed, 38 insertions(+), 7 deletions(-) (limited to 'main.cpp') diff --git a/main.cpp b/main.cpp index 168bb98..b202026 100644 --- a/main.cpp +++ b/main.cpp @@ -17,29 +17,60 @@ int main(int argc, char *argv[]) QGuiApplication app(argc, argv); - // register enumerations - qmlRegisterUncreatableMetaObject(Operation::staticMetaObject, - "Org.Syrja.Symbol.Operation", 1, 0, "Operation", "Error: only enums" ); + // set base language translators + QLocale locale; + QTranslator backuptranslator, localetranslator, currenttranslator; + if ( backuptranslator.load(":/locale/symedit.en_GB.qm") ) + QCoreApplication::installTranslator(&backuptranslator); + if ( localetranslator.load(locale, ":/locale/symedit.") ) + QCoreApplication::installTranslator(&localetranslator); + // register command line arguments QCommandLineParser parser; + parser.addPositionalArgument("file", qtTrId("id_cli_symbol_file_name")); + QCommandLineOption transferoption(QStringList() << "t" << "transfer", qtTrId("id_cli_transfer_file")); + parser.addOption(transferoption); + QCommandLineOption symboloption(QStringList() << "s" << "symbol", + qtTrId("id_cli_symbol_description"), qtTrId("id_cli_symbol")); + parser.addOption(symboloption); + QCommandLineOption languageoption(QStringList() << "l" << "language", + qtTrId("id_cli_language_description"), qtTrId("id_cli_language")); + parser.addOption(languageoption); + parser.addHelpOption(); parser.process(app); - QString symbol; + // read command line arguments + QString filename; const QStringList arguments = parser.positionalArguments(); if ( arguments.size() ) - symbol = arguments.at(0); + filename = arguments.at(0); + bool transfer = parser.isSet(transferoption); + QString symbol = parser.value(symboloption); + QString language = parser.value(languageoption); + + // set current translator + if ( currenttranslator.load(language == "fin" ? ":/locale/symedit.fi_FI.qm" : "") ) + QCoreApplication::installTranslator(¤ttranslator); + + // register enumerations + qmlRegisterUncreatableMetaObject(Operation::staticMetaObject, + "Org.Syrja.Symbol.Operation", 1, 0, "Operation", "Error: only enums" ); // register manager - SymEditManager manager(symbol); QQmlApplicationEngine engine; + SymEditManager manager(filename, symbol); engine.rootContext()->setContextProperty("manager", &manager); + // start application engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); if ( engine.rootObjects().isEmpty() ) return -1; - int result = app.exec(); + if ( transfer ) + { + //## save file + } manager.SaveSettings(); return result; -- cgit v1.2.3