diff options
| author | Mikko Syrjä <mikko@3d-system.fi> | 2019-03-08 22:33:56 +0200 |
|---|---|---|
| committer | Mikko Syrjä <mikko@3d-system.fi> | 2019-03-08 22:33:56 +0200 |
| commit | caa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a (patch) | |
| tree | 7f982d39b290308f30b38eed9ac0a323996f05ce /main.cpp | |
| parent | acf0e164d66043d31e5e683d46eb02c837b7bb42 (diff) | |
| download | symedit-caa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a.tar.gz symedit-caa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a.zip | |
Command line parameter improvements.
Diffstat (limited to 'main.cpp')
| -rw-r--r-- | main.cpp | 45 |
1 files changed, 38 insertions, 7 deletions
@@ -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; |
