Remove Q_WS_*, symbian and maemo code in QtDeclarative
[profile/ivi/qtdeclarative.git] / tools / qmlscene / main.cpp
index d351b27..336fc89 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.
 **
 **
 **
 
 #include <QtCore/qdebug.h>
 #include <QtCore/qabstractanimation.h>
-#include <QtGui/qapplication.h>
+#include <QtWidgets/qapplication.h>
 #include <QtDeclarative/qdeclarative.h>
 #include <QtDeclarative/qdeclarativeengine.h>
 #include <QtDeclarative/qdeclarativecomponent.h>
-#include <QtDeclarative/qdeclarativeview.h>
+#include <QtQuick1/qdeclarativeview.h>
 #include <QtCore/qdir.h>
-#include <QtGui/QFormLayout>
-#include <QtGui/QComboBox>
-#include <QtGui/QCheckBox>
-#include <QtGui/QDialog>
-#include <QtGui/QDialogButtonBox>
-#include <QtGui/QFileDialog>
-#include <QtGui/QGraphicsView>
-
-#include <QtDeclarative/qdeclarativeitem.h>
+#include <QtWidgets/QFormLayout>
+#include <QtWidgets/QComboBox>
+#include <QtWidgets/QCheckBox>
+#include <QtWidgets/QDialog>
+#include <QtWidgets/QDialogButtonBox>
+#include <QtWidgets/QFileDialog>
+#include <QtWidgets/QGraphicsView>
+
 #include <QtDeclarative/qdeclarativecontext.h>
-#include <private/qdeclarativedebughelper_p.h>
 
 // ### This should be private API
-#include <qsgitem.h>
-#include <qsgview.h>
+#include <qquickitem.h>
+#include <qquickview.h>
 
 #define QT_NO_SCENEGRAPHITEM
 
@@ -145,35 +143,12 @@ void RenderStatistics::printTotalStats()
 }
 #endif
 
-
-static QGLFormat getFormat()
-{
-    QGLFormat f = QGLFormat::defaultFormat();
-    f.setSampleBuffers(!qApp->arguments().contains("--no-multisample"));
-    f.setSwapInterval(qApp->arguments().contains("--nonblocking-swap") ? 0 : 1);
-    f.setStereo(qApp->arguments().contains("--stereo"));
-    return f;
-}
-
-class MyQSGView : public QSGView
+class MyQQuickView : public QQuickView
 {
 public:
-    MyQSGView() : QSGView(getFormat())
+    MyQQuickView() : QQuickView()
     {
-        setResizeMode(QSGView::SizeRootObjectToView);
-    }
-
-protected:
-    void paintEvent(QPaintEvent *e) {
-        QSGView::paintEvent(e);
-
-#ifdef QML_RUNTIME_TESTING
-//        RenderStatistics::updateStats();
-#endif
-
-        static bool continuousUpdate = qApp->arguments().contains("--continuous-update");
-        if (continuousUpdate)
-            update();
+        setResizeMode(QQuickView::SizeRootObjectToView);
     }
 };
 
@@ -184,20 +159,6 @@ public:
     {
         setResizeMode(QDeclarativeView::SizeRootObjectToView);
     }
-
-protected:
-    void paintEvent(QPaintEvent *event)
-    {
-        QDeclarativeView::paintEvent(event);
-
-#ifdef QML_RUNTIME_TESTING
-        RenderStatistics::updateStats();
-#endif
-
-        static bool continuousUpdate = qApp->arguments().contains("--continuous-update");
-        if (continuousUpdate)
-            scene()->update();
-    }
 };
 
 #ifndef QT_NO_SCENEGRAPHITEM
@@ -359,24 +320,29 @@ static void checkAndAdaptVersion(const QUrl &url)
         return;
     }
 
-    QRegExp quick1("import +QtQuick +1\\.");
-    QRegExp qt47("import +Qt +4\\.7");
+    QRegExp quick1("^\\s*import +QtQuick +1\\.");
+    QRegExp quick2("^\\s*import +QtQuick +2\\.");
+    QRegExp qt47("^\\s*import +Qt +4\\.7");
 
     QString envToWrite;
     QString compat;
 
     QTextStream stream(&f);
     bool codeFound= false;
-    while (!codeFound && envToWrite.isEmpty()) {
+    while (!codeFound) {
         QString line = stream.readLine();
         if (line.contains("{"))
             codeFound = true;
-        if (quick1.indexIn(line) >= 0) {
+        if (envToWrite.isEmpty() && quick1.indexIn(line) >= 0) {
             envToWrite = QLatin1String("quick1");
             compat = QLatin1String("QtQuick 1.0");
-        } else if (qt47.indexIn(line) >= 0) {
+        } else if (envToWrite.isEmpty() && qt47.indexIn(line) >= 0) {
             envToWrite = QLatin1String("qt");
             compat = QLatin1String("Qt 4.7");
+        } else if (quick2.indexIn(line) >= 0) {
+            envToWrite.clear();
+            compat.clear();
+            break;
         }
     }
 
@@ -456,34 +422,36 @@ int main(int argc, char ** argv)
 
     Options options;
 
-    QDeclarativeDebugHelper::enableDebugging();
     QStringList imports;
     for (int i = 1; i < argc; ++i) {
-        if (*argv[i] != '-' && QFileInfo(argv[i]).exists())
+        if (*argv[i] != '-' && QFileInfo(QFile::decodeName(argv[i])).exists()) {
             options.file = QUrl::fromLocalFile(argv[i]);
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--original-qml"))
-            options.originalQml = true;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--original-qml-raster"))
-            options.originalQmlRaster = true;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--maximized"))
-            options.maximized = true;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--fullscreen"))
-            options.fullscreen = true;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--sg-on-gv"))
-            options.scenegraphOnGraphicsview = true;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--clip"))
-            options.clip = true;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--no-version-detection"))
-            options.versionDetection = false;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("-i") && i + 1 < argc)
-            imports.append(QString::fromLatin1(argv[++i]));
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--no-vsync-animations"))
-            options.vsync = false;
-        else if (QString::fromLatin1(argv[i]).toLower() == QLatin1String("--help")
-                 || QString::fromLatin1(argv[i]).toLower() == QLatin1String("-help")
-                 || QString::fromLatin1(argv[i]).toLower() == QLatin1String("--h")
-                 || QString::fromLatin1(argv[i]).toLower() == QLatin1String("-h"))
-            usage();
+        } else {
+            const QString lowerArgument = QString::fromLatin1(argv[i]).toLower();
+            if (lowerArgument == QLatin1String("--original-qml"))
+                options.originalQml = true;
+            else if (lowerArgument == QLatin1String("--original-qml-raster"))
+                options.originalQmlRaster = true;
+            else if (lowerArgument == QLatin1String("--maximized"))
+                options.maximized = true;
+            else if (lowerArgument == QLatin1String("--fullscreen"))
+                options.fullscreen = true;
+            else if (lowerArgument == QLatin1String("--sg-on-gv"))
+                options.scenegraphOnGraphicsview = true;
+            else if (lowerArgument == QLatin1String("--clip"))
+                options.clip = true;
+            else if (lowerArgument == QLatin1String("--no-version-detection"))
+                options.versionDetection = false;
+            else if (lowerArgument == QLatin1String("-i") && i + 1 < argc)
+                imports.append(QString::fromLatin1(argv[++i]));
+            else if (lowerArgument == QLatin1String("--no-vsync-animations"))
+                options.vsync = false;
+            else if (lowerArgument == QLatin1String("--help")
+                     || lowerArgument == QLatin1String("-help")
+                     || lowerArgument == QLatin1String("--h")
+                     || lowerArgument == QLatin1String("-h"))
+                usage();
+        }
     }
 
     QApplication::setGraphicsSystem("raster");
@@ -500,7 +468,7 @@ int main(int argc, char ** argv)
         displayFileDialog(&options);
 #endif
 
-    QWidget *view = 0;
+    QWindow *window = 0;
     QDeclarativeEngine *engine = 0;
 
     int exitCode = 0;
@@ -521,54 +489,38 @@ int main(int argc, char ** argv)
             item->setSource(options.file);
         } else
 #endif
-        if (!options.originalQml && !options.originalQmlRaster) {
-            if (options.versionDetection)
-                checkAndAdaptVersion(options.file);
-            QSGView *qxView = new MyQSGView();
-            qxView->setVSyncAnimations(options.vsync);
-            engine = qxView->engine();
-            for (int i = 0; i < imports.size(); ++i)
-                engine->addImportPath(imports.at(i));
-            view = qxView;
-            if (options.file.isLocalFile()) {
-                QFileInfo fi(options.file.toLocalFile());
-                loadDummyDataFiles(*engine, fi.path());
-            }
-            qxView->setSource(options.file);
-
-        } else {
-            MyDeclarativeView *gvView = new MyDeclarativeView();
-            engine = gvView->engine();
-            for (int i = 0; i < imports.size(); ++i)
-                engine->addImportPath(imports.at(i));
-            view = gvView;
-            if (options.file.isLocalFile()) {
-                QFileInfo fi(options.file.toLocalFile());
-                loadDummyDataFiles(*engine, fi.path());
-            }
-            gvView->setSource(options.file);
-            if (!options.originalQmlRaster) {
-                QGLWidget *viewport = new QGLWidget(getFormat());
-                gvView->setViewport(viewport);
-            }
+        if (options.versionDetection)
+            checkAndAdaptVersion(options.file);
+        QQuickView *qxView = new MyQQuickView();
+        qxView->setVSyncAnimations(options.vsync);
+        engine = qxView->engine();
+        for (int i = 0; i < imports.size(); ++i)
+            engine->addImportPath(imports.at(i));
+        window = qxView;
+        if (options.file.isLocalFile()) {
+            QFileInfo fi(options.file.toLocalFile());
+            loadDummyDataFiles(*engine, fi.path());
         }
+        qxView->setSource(options.file);
 
         QObject::connect(engine, SIGNAL(quit()), QCoreApplication::instance(), SLOT(quit()));
 
+        window->setWindowFlags(Qt::Window | Qt::WindowSystemMenuHint | Qt::WindowTitleHint | Qt::WindowMinMaxButtonsHint | Qt::WindowCloseButtonHint);
         if (options.fullscreen)
-            view->showFullScreen();
+            window->showFullScreen();
         else if (options.maximized)
-            view->showMaximized();
+            window->showMaximized();
         else
-            view->show();
+            window->show();
+
 
-#ifdef Q_WS_MAC
-        view->raise();
+#ifdef Q_OS_MAC
+        window->raise();
 #endif
 
         exitCode = app.exec();
 
-        delete view;
+        delete window;
 
 #ifdef QML_RUNTIME_TESTING
         RenderStatistics::printTotalStats();