Empty JSON files are not needed for the plugin system
[profile/ivi/qtdeclarative.git] / src / imports / testlib / main.cpp
index 5781b3d..1b8487e 100644 (file)
@@ -1,8 +1,7 @@
 /****************************************************************************
 **
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
+** Copyright (C) 2012 Nokia Corporation and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/
 **
 ** This file is part of the test suite of the Qt Toolkit.
 **
 **
 **
 **
+**
 ** $QT_END_LICENSE$
 **
 ****************************************************************************/
 
-#include <QtDeclarative/qdeclarativeextensionplugin.h>
-#include <QtDeclarative/qdeclarative.h>
-#include <QtScript/qscriptvalue.h>
-#include <QtScript/qscriptcontext.h>
-#include <QtScript/qscriptcontextinfo.h>
-#include <QtScript/qscriptengine.h>
+#include <QtQml/qqmlextensionplugin.h>
+#include <QtQml/qqml.h>
+#include <QtQml/qjsvalue.h>
+#include <QtQml/qjsengine.h>
 #include "QtQuickTest/private/quicktestresult_p.h"
 #include "QtQuickTest/private/quicktestevent_p.h"
 #include "private/qtestoptions_p.h"
-#include "QtDeclarative/qsgitem.h"
-#include <QtDeclarative/private/qdeclarativeengine_p.h>
-QT_BEGIN_NAMESPACE
+#include "QtQuick/qquickitem.h"
+#include <QtQml/private/qqmlengine_p.h>
+#include <QtGui/QGuiApplication>
+#include <QtGui/qstylehints.h>
 
 QML_DECLARE_TYPE(QuickTestResult)
 QML_DECLARE_TYPE(QuickTestEvent)
 
 #include <QtDebug>
 
+QT_BEGIN_NAMESPACE
+
 class QuickTestUtil : public QObject
 {
     Q_OBJECT
-    Q_PROPERTY(bool printAvailableFunctions READ printAvailableFunctions)
-    Q_PROPERTY(bool wrapper READ wrapper)
+    Q_PROPERTY(bool printAvailableFunctions READ printAvailableFunctions NOTIFY printAvailableFunctionsChanged)
+    Q_PROPERTY(int dragThreshold READ dragThreshold NOTIFY dragThresholdChanged)
 public:
     QuickTestUtil(QObject *parent = 0)
         :QObject(parent)
@@ -73,22 +74,22 @@ public:
     {
         return QTest::printAvailableFunctions;
     }
-    bool wrapper() const
-    {
-        return true;
-    }
+    int dragThreshold() const { return qApp->styleHints()->startDragDistance(); }
+
+Q_SIGNALS:
+    void printAvailableFunctionsChanged();
+    void dragThresholdChanged();
 
 public Q_SLOTS:
 
-    QDeclarativeV8Handle typeName(const QVariant& v) const
+    QQmlV8Handle typeName(const QVariant& v) const
     {
         QString name(v.typeName());
-        //qDebug() << "type:" << name  << " string value:" << v.toString() << " value:" << v;
         if (v.canConvert<QObject*>()) {
-            QDeclarativeType *type = 0;
+            QQmlType *type = 0;
             const QMetaObject *mo = v.value<QObject*>()->metaObject();
             while (!type && mo) {
-                type = QDeclarativeMetaType::qmlType(mo);
+                type = QQmlMetaType::qmlType(mo);
                 mo = mo->superClass();
             }
             if (type) {
@@ -96,60 +97,46 @@ public Q_SLOTS:
             }
         }
 
-        return QDeclarativeV8Handle::fromHandle(v8::String::New(name.toUtf8()));
+        return QQmlV8Handle::fromHandle(v8::String::New(name.toUtf8()));
     }
 
     bool compare(const QVariant& act, const QVariant& exp) const {
         return act == exp;
     }
-//    QDeclarativeV8Handle toString(const QVariant& v) const
-//    {
-//        QString name(v.typeName());
-
-//        if (v.canConvert<QObject*>()) {
-//            QDeclarativeType *type = 0;
-//            const QMetaObject *mo = v.value<QObject*>()->metaObject();
-//            while (!type && mo) {
-//                type = QDeclarativeMetaType::qmlType(mo);
-//                mo = mo->superClass();
-//            }
-//            if (type) {
-//                name = type->qmlTypeName();
-//            }
-//        }
-
-//        return QDeclarativeV8Handle::fromHandle(v8::String::New(name.toUtf8()));
-//    }
-
-    QDeclarativeV8Handle callerFile(int frameIndex = 0) const
-    {
-        v8::HandleScope scope;
 
+    QQmlV8Handle callerFile(int frameIndex = 0) const
+    {
         v8::Local<v8::StackTrace> stacks = v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed);
         int count = stacks->GetFrameCount();
-        if (count >= frameIndex + 2) {
-            v8::Local<v8::StackFrame> frame = stacks->GetFrame(frameIndex + 2);
-            return QDeclarativeV8Handle::fromHandle(frame->GetScriptNameOrSourceURL());
+        if (count >= frameIndex + 1) {
+            v8::Local<v8::StackFrame> frame = stacks->GetFrame(frameIndex + 1);
+            return QQmlV8Handle::fromHandle(frame->GetScriptNameOrSourceURL());
         }
-        return QDeclarativeV8Handle();
+        return QQmlV8Handle();
     }
     int callerLine(int frameIndex = 0) const
     {
-        v8::HandleScope scope;
         v8::Local<v8::StackTrace> stacks = v8::StackTrace::CurrentStackTrace(10, v8::StackTrace::kDetailed);
         int count = stacks->GetFrameCount();
-        if (count >= frameIndex + 2) {
-            v8::Local<v8::StackFrame> frame = stacks->GetFrame(frameIndex + 2);
+        if (count >= frameIndex + 1) {
+            v8::Local<v8::StackFrame> frame = stacks->GetFrame(frameIndex + 1);
             return frame->GetLineNumber();
         }
         return -1;
     }
 };
+
+QT_END_NAMESPACE
+
 QML_DECLARE_TYPE(QuickTestUtil)
 
-class QTestQmlModule : public QDeclarativeExtensionPlugin
+QT_BEGIN_NAMESPACE
+
+class QTestQmlModule : public QQmlExtensionPlugin
 {
     Q_OBJECT
+    Q_PLUGIN_METADATA(IID "org.qt-project.Qt.QQmlExtensionInterface")
+
 public:
     virtual void registerTypes(const char *uri)
     {
@@ -159,7 +146,7 @@ public:
         qmlRegisterType<QuickTestUtil>(uri,1,0,"TestUtil");
     }
 
-    void initializeEngine(QDeclarativeEngine *engine, const char *)
+    void initializeEngine(QQmlEngine *, const char *)
     {
     }
 };
@@ -167,5 +154,3 @@ public:
 QT_END_NAMESPACE
 
 #include "main.moc"
-
-Q_EXPORT_PLUGIN2(qmltestplugin, QT_PREPEND_NAMESPACE(QTestQmlModule));