Remove Q_WS_*, symbian and maemo code in QtDeclarative
[profile/ivi/qtdeclarative.git] / tools / qmlviewer / main.cpp
index b1a10ff..91362bb 100644 (file)
@@ -7,29 +7,29 @@
 ** This file is part of the tools applications of the Qt Toolkit.
 **
 ** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
 ** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file.  Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** This file may be used under the terms of the GNU Lesser General Public
+** License version 2.1 as published by the Free Software Foundation and
+** appearing in the file LICENSE.LGPL included in the packaging of this
+** file. Please review the following information to ensure the GNU Lesser
+** General Public License version 2.1 requirements will be met:
+** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
 **
 ** In addition, as a special exception, Nokia gives you certain additional
-** rights.  These rights are described in the Nokia Qt LGPL Exception
+** rights. These rights are described in the Nokia Qt LGPL Exception
 ** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
 **
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
+** GNU General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU General
+** Public License version 3.0 as published by the Free Software Foundation
+** and appearing in the file LICENSE.GPL included in the packaging of this
+** file. Please review the following information to ensure the GNU General
+** Public License version 3.0 requirements will be met:
+** http://www.gnu.org/copyleft/gpl.html.
 **
+** Other Usage
+** Alternatively, this file may be used in accordance with the terms and
+** conditions contained in a signed written agreement between you and Nokia.
 **
 **
 **
@@ -50,8 +50,8 @@
 #include <QDebug>
 #include <QMessageBox>
 #include <QAtomicInt>
+#include <QLibraryInfo>
 #include "qdeclarativetester.h"
-#include <private/qdeclarativedebughelper_p.h>
 
 QT_USE_NAMESPACE
 
@@ -67,7 +67,7 @@ void exitApp(int i)
     // Debugging output is not visible by default on Windows -
     // therefore show modal dialog with errors instead.
     if (!warnings.isEmpty()) {
-        QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings);
+        QMessageBox::warning(0, QApplication::translate("QDeclarativeViewer", "Qt QML Viewer"), warnings);
     }
 #endif
     exit(i);
@@ -76,13 +76,6 @@ void exitApp(int i)
 QWeakPointer<LoggerWidget> logger;
 static QAtomicInt recursiveLock(0);
 
-#if defined (Q_OS_SYMBIAN)
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#endif
-
 void myMessageOutput(QtMsgType type, const char *msg)
 {
     QString strMsg = QString::fromLatin1(msg);
@@ -98,19 +91,6 @@ void myMessageOutput(QtMsgType type, const char *msg)
             warnings += QLatin1Char('\n');
         }
     }
-#if defined (Q_OS_SYMBIAN)
-    static int fd = -1;
-    if (fd == -1)
-        fd = ::open("E:\\qml.log", O_WRONLY | O_CREAT);
-
-    ::write(fd, msg, strlen(msg));
-    ::write(fd, "\n", 1);
-    ::fsync(fd);
-    switch (type) {
-    case QtFatalMsg:
-        abort();
-    }
-#endif
 
     if (systemMsgOutput) {
         systemMsgOutput(type, msg);
@@ -123,7 +103,7 @@ void myMessageOutput(QtMsgType type, const char *msg)
 static QDeclarativeViewer* globalViewer = 0;
 
 // The qml file that is shown if the user didn't specify a QML file
-QString initialFile = "qrc:/startup/startup.qml";
+QString initialFile = QLatin1String("qrc:/startup/startup.qml");
 
 void usage()
 {
@@ -154,7 +134,7 @@ void usage()
     qWarning("  -I <directory> ........................... prepend to the module import search path,");
     qWarning("                                             display path if <directory> is empty");
     qWarning("  -P <directory> ........................... prepend to the plugin search path");
-#if defined(Q_WS_MAC)
+#if defined(Q_OS_MAC)
     qWarning("  -no-opengl ............................... don't use a QGLWidget for the viewport");
     qWarning("  -opengl .................................. use a QGLWidget for the viewport (default)");
 #else
@@ -199,7 +179,7 @@ struct ViewerOptions
           fps(0.0),
           autorecord_from(0),
           autorecord_to(0),
-          dither("none"),
+          dither(QLatin1String("none")),
           runScript(false),
           devkeys(false),
           cache(0),
@@ -212,12 +192,8 @@ struct ViewerOptions
           warningsConfig(DefaultWarnings),
           sizeToView(true)
     {
-#if defined(Q_OS_SYMBIAN)
-        maximized = true;
-        useNativeFileBrowser = false;
-#endif
 
-#if defined(Q_WS_MAC)
+#if defined(Q_OS_MAC)
         useGL = true;
 #endif
     }
@@ -336,54 +312,54 @@ static void parseCommandLineOptions(const QStringList &arguments)
     for (int i = 1; i < arguments.count(); ++i) {
         bool lastArg = (i == arguments.count() - 1);
         QString arg = arguments.at(i);
-        if (arg == "-frameless") {
+        if (arg == QLatin1String("-frameless")) {
             opts.frameless = true;
-        } else if (arg == "-maximized") {
+        } else if (arg == QLatin1String("-maximized")) {
             opts.maximized = true;
-        } else if (arg == "-fullscreen") {
+        } else if (arg == QLatin1String("-fullscreen")) {
             opts.fullScreen = true;
-        } else if (arg == "-stayontop") {
+        } else if (arg == QLatin1String("-stayontop")) {
             opts.stayOnTop = true;
-        } else if (arg == "-netcache") {
+        } else if (arg == QLatin1String("-netcache")) {
             if (lastArg) usage();
             opts.cache = arguments.at(++i).toInt();
-        } else if (arg == "-recordrate") {
+        } else if (arg == QLatin1String("-recordrate")) {
             if (lastArg) usage();
             opts.fps = arguments.at(++i).toDouble();
-        } else if (arg == "-recordfile") {
+        } else if (arg == QLatin1String("-recordfile")) {
             if (lastArg) usage();
             opts.recordfile = arguments.at(++i);
-        } else if (arg == "-record") {
+        } else if (arg == QLatin1String("-record")) {
             if (lastArg) usage();
             opts.recordargs << arguments.at(++i);
-        } else if (arg == "-recorddither") {
+        } else if (arg == QLatin1String("-recorddither")) {
             if (lastArg) usage();
             opts.dither = arguments.at(++i);
-        } else if (arg == "-autorecord") {
+        } else if (arg == QLatin1String("-autorecord")) {
             if (lastArg) usage();
             QString range = arguments.at(++i);
-            int dash = range.indexOf('-');
+            int dash = range.indexOf(QLatin1Char('-'));
             if (dash > 0)
                 opts.autorecord_from = range.left(dash).toInt();
             opts.autorecord_to = range.mid(dash+1).toInt();
-        } else if (arg == "-devicekeys") {
+        } else if (arg == QLatin1String("-devicekeys")) {
             opts.devkeys = true;
-        } else if (arg == "-dragthreshold") {
+        } else if (arg == QLatin1String("-dragthreshold")) {
             if (lastArg) usage();
             qApp->setStartDragDistance(arguments.at(++i).toInt());
         } else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) {
             qWarning("Qt QML Viewer version %s", QT_VERSION_STR);
             exitApp(0);
-        } else if (arg == "-translation") {
+        } else if (arg == QLatin1String("-translation")) {
             if (lastArg) usage();
             opts.translationFile = arguments.at(++i);
-        } else if (arg == "-no-opengl") {
+        } else if (arg == QLatin1String("-no-opengl")) {
             opts.useGL = false;
-        } else if (arg == "-opengl") {
+        } else if (arg == QLatin1String("-opengl")) {
             opts.useGL = true;
-        } else if (arg == "-qmlbrowser") {
+        } else if (arg == QLatin1String("-qmlbrowser")) {
             opts.useNativeFileBrowser = false;
-        } else if (arg == "-warnings") {
+        } else if (arg == QLatin1String("-warnings")) {
             if (lastArg) usage();
             QString warningsStr = arguments.at(++i);
             if (warningsStr == QLatin1String("show")) {
@@ -393,8 +369,8 @@ static void parseCommandLineOptions(const QStringList &arguments)
             } else {
                 usage();
             }
-        } else if (arg == "-I" || arg == "-L") {
-            if (arg == "-L")
+        } else if (arg == QLatin1String("-I") || arg == QLatin1String("-L")) {
+            if (arg == QLatin1String("-L"))
                 qWarning("-L option provided for compatibility only, use -I instead");
             if (lastArg) {
                 QDeclarativeEngine tmpEngine;
@@ -403,32 +379,32 @@ static void parseCommandLineOptions(const QStringList &arguments)
                 exitApp(0);
             }
             opts.imports << arguments.at(++i);
-        } else if (arg == "-P") {
+        } else if (arg == QLatin1String("-P")) {
             if (lastArg) usage();
             opts.plugins << arguments.at(++i);
-        } else if (arg == "-script") {
+        } else if (arg == QLatin1String("-script")) {
             if (lastArg) usage();
             opts.script = arguments.at(++i);
-        } else if (arg == "-scriptopts") {
+        } else if (arg == QLatin1String("-scriptopts")) {
             if (lastArg) usage();
             opts.scriptopts = arguments.at(++i);
-        } else if (arg == "-savescript") {
+        } else if (arg == QLatin1String("-savescript")) {
             if (lastArg) usage();
             opts.script = arguments.at(++i);
             opts.runScript = false;
-        } else if (arg == "-playscript") {
+        } else if (arg == QLatin1String("-playscript")) {
             if (lastArg) usage();
             opts.script = arguments.at(++i);
             opts.runScript = true;
-        } else if (arg == "-sizeviewtorootobject") {
+        } else if (arg == QLatin1String("-sizeviewtorootobject")) {
             opts.sizeToView = false;
-        } else if (arg == "-sizerootobjecttoview") {
+        } else if (arg == QLatin1String("-sizerootobjecttoview")) {
             opts.sizeToView = true;
-        } else if (arg == "-experimentalgestures") {
+        } else if (arg == QLatin1String("-experimentalgestures")) {
             opts.experimentalGestures = true;
-        } else if (!arg.startsWith('-')) {
+        } else if (!arg.startsWith(QLatin1Char('-'))) {
             fileNames.append(arg);
-        } else if (true || arg == "-help") {
+        } else if (true || arg == QLatin1String("-help")) {
             usage();
         }
     }
@@ -521,37 +497,29 @@ QDeclarativeViewer *openFile(const QString &fileName)
 
 int main(int argc, char ** argv)
 {
-    QDeclarativeDebugHelper::enableDebugging();
-
     systemMsgOutput = qInstallMsgHandler(myMessageOutput);
-
-#if defined (Q_WS_X11) || defined (Q_WS_MAC)
-    //### default to using raster graphics backend for now
-    bool gsSpecified = false;
-    for (int i = 0; i < argc; ++i) {
-        QString arg = argv[i];
-        if (arg == "-graphicssystem") {
-            gsSpecified = true;
-            break;
-        }
-    }
-
-    if (!gsSpecified)
-        QApplication::setGraphicsSystem("raster");
-#endif
-
-    QDeclarativeDebugHelper::enableDebugging();
-
     Application app(argc, argv);
-    app.setApplicationName("QtQmlViewer");
-    app.setOrganizationName("Nokia");
-    app.setOrganizationDomain("nokia.com");
+    app.setApplicationName(QLatin1String("QtQmlViewer"));
+    app.setOrganizationName(QLatin1String("Nokia"));
+    app.setOrganizationDomain(QLatin1String("nokia.com"));
 
     QDeclarativeViewer::registerTypes();
     QDeclarativeTester::registerTypes();
 
     parseCommandLineOptions(app.arguments());
 
+    QTranslator translator;
+    QTranslator qtTranslator;
+    QString sysLocale = QLocale::system().name();
+    if (translator.load(QLatin1String("qmlviewer_") + sysLocale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) {
+        app.installTranslator(&translator);
+        if (qtTranslator.load(QLatin1String("qt_") + sysLocale, QLibraryInfo::location(QLibraryInfo::TranslationsPath))) {
+            app.installTranslator(&qtTranslator);
+        } else {
+            app.removeTranslator(&translator);
+        }
+    }
+
     QTranslator qmlTranslator;
     if (!opts.translationFile.isEmpty()) {
         if (qmlTranslator.load(opts.translationFile)) {