aboutsummaryrefslogtreecommitdiff
path: root/main.cpp
diff options
context:
space:
mode:
authorMikko Syrjä <mikko@3d-system.fi>2019-03-08 22:33:56 +0200
committerMikko Syrjä <mikko@3d-system.fi>2019-03-08 22:33:56 +0200
commitcaa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a (patch)
tree7f982d39b290308f30b38eed9ac0a323996f05ce /main.cpp
parentacf0e164d66043d31e5e683d46eb02c837b7bb42 (diff)
downloadsymedit-caa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a.tar.gz
symedit-caa8a50b5c30d9c82e4e5db2d5e24ad5e55aab6a.zip
Command line parameter improvements.
Diffstat (limited to 'main.cpp')
-rw-r--r--main.cpp45
1 files changed, 38 insertions, 7 deletions
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(&currenttranslator);
+
+ // 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;