diff options
Diffstat (limited to 'tools/qmlviewer/main.cpp')
-rw-r--r-- | tools/qmlviewer/main.cpp | 55 |
1 files changed, 33 insertions, 22 deletions
diff --git a/tools/qmlviewer/main.cpp b/tools/qmlviewer/main.cpp index f27606e..ed700a0 100644 --- a/tools/qmlviewer/main.cpp +++ b/tools/qmlviewer/main.cpp @@ -17,6 +17,8 @@ #include <QDir> #include "qfxtestengine.h" #include <QApplication> +#include <QTranslator> +#include <QDebug> void usage() { @@ -38,6 +40,8 @@ void usage() qWarning(" -cache ................................... disk cache remote content"); qWarning(" -recordtest <directory> .................. record an autotest"); qWarning(" -runtest <directory> ..................... run a previously recorded test"); + qWarning(" -translation <translationfile> ........... set the language to run in"); + qWarning(" -L <directory> ........................... prepend to the library search path"); qWarning(" "); qWarning(" Press F1 for interactive help"); exit(1); @@ -46,28 +50,18 @@ void usage() int main(int argc, char ** argv) { //### default to using raster graphics backend for now - int newargc = argc + 2; - char **newargv; bool gsSpecified = false; for (int i = 0; i < argc; ++i) { - if (!qstrcmp(argv[i], "-graphicssystem")) { + QString arg = argv[i]; + if (arg == "-graphicssystem") { gsSpecified = true; - newargc -= 2; break; } } - newargv = new char * [newargc]; - for (int i = 0; i < argc; ++i) { - newargv[i] = argv[i]; - } - if (!gsSpecified) { - char system[] = "-graphicssystem"; - newargv[argc] = system; - char raster[] = "raster"; - newargv[argc+1] = raster; - } + if (!gsSpecified) + QApplication::setGraphicsSystem("raster"); - QApplication app(newargc, newargv); + QApplication app(argc, argv); app.setApplicationName("viewer"); bool frameless = false; @@ -78,14 +72,16 @@ int main(int argc, char ** argv) QString dither = "none"; QString recordfile; QStringList recordargs; + QStringList libraries; QString skin; bool devkeys = false; bool cache = false; QFxTestEngine::TestMode testMode = QFxTestEngine::NoTest; QString testDir; + QString translationFile; - for (int i = 1; i < newargc; ++i) { - QString arg = newargv[i]; + for (int i = 1; i < argc; ++i) { + QString arg = argv[i]; if (arg == "-frameless") { frameless = true; } else if (arg == "-skin") { @@ -110,19 +106,26 @@ int main(int argc, char ** argv) devkeys = true; } else if (arg == "-recordtest") { testMode = QFxTestEngine::RecordTest; - if(i + 1 >= newargc) + if(i + 1 >= argc) usage(); - testDir = newargv[i + 1]; + testDir = argv[i + 1]; ++i; } else if (arg == "-runtest") { testMode = QFxTestEngine::PlaybackTest; - if(i + 1 >= newargc) + if(i + 1 >= argc) usage(); - testDir = newargv[i + 1]; + testDir = argv[i + 1]; ++i; } else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) { fprintf(stderr, "Qt Declarative UI Viewer version %s\n", QT_VERSION_STR); return 0; + } else if (arg == "-translation") { + if(i + 1 >= argc) + usage(); + translationFile = argv[i + 1]; + ++i; + } else if (arg == "-L") { + libraries << QString(argv[++i]); } else if (arg[0] != '-') { fileName = arg; } else if (1 || arg == "-help") { @@ -130,14 +133,22 @@ int main(int argc, char ** argv) } } + QTranslator qmlTranslator; + if (!translationFile.isEmpty()) { + qmlTranslator.load(translationFile); + app.installTranslator(&qmlTranslator); + } + QmlViewer viewer(testMode, testDir, 0, frameless ? Qt::FramelessWindowHint : Qt::Widget); + foreach (QString lib, libraries) + viewer.addLibraryPath(lib); viewer.setCacheEnabled(cache); viewer.setRecordFile(recordfile); if (period>0) viewer.setRecordPeriod(period); if (autorecord_to) viewer.setAutoRecord(autorecord_from,autorecord_to); - if (QDir(skin).exists()) + if (!skin.isEmpty() && QDir(skin).exists()) viewer.setSkin(skin); if (devkeys) viewer.setDeviceKeys(true); |