Convert SQL errors to use v4 API
authorLars Knoll <lars.knoll@digia.com>
Fri, 19 Apr 2013 07:46:09 +0000 (09:46 +0200)
committerSimon Hausmann <simon.hausmann@digia.com>
Fri, 19 Apr 2013 10:03:06 +0000 (12:03 +0200)
Change-Id: Iae1a89dbb24f3e585e5d7d2398053ae111ef9afb
Reviewed-by: Simon Hausmann <simon.hausmann@digia.com>
src/imports/localstorage/plugin.cpp
src/qml/qml/v8/qv4sqlerrors.cpp [moved from src/qml/qml/v8/qv8sqlerrors.cpp with 60% similarity]
src/qml/qml/v8/qv4sqlerrors_p.h [moved from src/qml/qml/v8/qv8sqlerrors_p.h with 95% similarity]
src/qml/qml/v8/qv8engine.cpp
src/qml/qml/v8/v8.pri

index d40433e..1584cdb 100644 (file)
@@ -54,7 +54,7 @@
 #include <QtCore/qcryptographichash.h>
 #include <QtCore/qsettings.h>
 #include <QtCore/qdir.h>
-#include <private/qv8sqlerrors_p.h>
+#include <private/qv4sqlerrors_p.h>
 
 
 #define V8THROW_SQL(error, desc) \
similarity index 60%
rename from src/qml/qml/v8/qv8sqlerrors.cpp
rename to src/qml/qml/v8/qv4sqlerrors.cpp
index e06069c..524b2a9 100644 (file)
 **
 ****************************************************************************/
 
-#include "qv8sqlerrors_p.h"
-#include "qv8engine_p.h"
+#include "qv4sqlerrors_p.h"
+#include "private/qv4engine_p.h"
 
 QT_BEGIN_NAMESPACE
 
-void qt_add_sqlexceptions(QV8Engine *engine)
-{
-    // SQL Exception
-    v8::PropertyAttribute attributes = (v8::PropertyAttribute)(v8::ReadOnly | v8::DontEnum | v8::DontDelete);
+using namespace QQmlJS::VM;
 
-    v8::Local<v8::Object> sqlexception = v8::Object::New();
-    sqlexception->Set(v8::String::New("UNKNOWN_ERR"), v8::Integer::New(SQLEXCEPTION_UNKNOWN_ERR), attributes);
-    sqlexception->Set(v8::String::New("DATABASE_ERR"), v8::Integer::New(SQLEXCEPTION_DATABASE_ERR), attributes);
-    sqlexception->Set(v8::String::New("VERSION_ERR"), v8::Integer::New(SQLEXCEPTION_VERSION_ERR), attributes);
-    sqlexception->Set(v8::String::New("TOO_LARGE_ERR"), v8::Integer::New(SQLEXCEPTION_TOO_LARGE_ERR), attributes);
-    sqlexception->Set(v8::String::New("QUOTA_ERR"), v8::Integer::New(SQLEXCEPTION_QUOTA_ERR), attributes);
-    sqlexception->Set(v8::String::New("SYNTAX_ERR"), v8::Integer::New(SQLEXCEPTION_SYNTAX_ERR), attributes);
-    sqlexception->Set(v8::String::New("CONSTRAINT_ERR"), v8::Integer::New(SQLEXCEPTION_CONSTRAINT_ERR), attributes);
-    sqlexception->Set(v8::String::New("TIMEOUT_ERR"), v8::Integer::New(SQLEXCEPTION_TIMEOUT_ERR), attributes);
-    engine->global()->Set(v8::String::New("SQLException"), sqlexception);
+void qt_add_sqlexceptions(QQmlJS::VM::ExecutionEngine *engine)
+{
+    Object *sqlexception = engine->newObject();
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("UNKNOWN_ERR"), Value::fromInt32(SQLEXCEPTION_UNKNOWN_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("DATABASE_ERR"), Value::fromInt32(SQLEXCEPTION_DATABASE_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("VERSION_ERR"), Value::fromInt32(SQLEXCEPTION_VERSION_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("TOO_LARGE_ERR"), Value::fromInt32(SQLEXCEPTION_TOO_LARGE_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("QUOTA_ERR"), Value::fromInt32(SQLEXCEPTION_QUOTA_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("SYNTAX_ERR"), Value::fromInt32(SQLEXCEPTION_SYNTAX_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("CONSTRAINT_ERR"), Value::fromInt32(SQLEXCEPTION_CONSTRAINT_ERR));
+    sqlexception->defineReadonlyProperty(engine, QStringLiteral("TIMEOUT_ERR"), Value::fromInt32(SQLEXCEPTION_TIMEOUT_ERR));
+    engine->globalObject->defineDefaultProperty(engine->current, QStringLiteral("SQLException"), Value::fromObject(sqlexception));
 }
 
 QT_END_NAMESPACE
similarity index 95%
rename from src/qml/qml/v8/qv8sqlerrors_p.h
rename to src/qml/qml/v8/qv4sqlerrors_p.h
index 8a612d6..922e9c1 100644 (file)
@@ -65,8 +65,12 @@ QT_BEGIN_NAMESPACE
 #define SQLEXCEPTION_CONSTRAINT_ERR 7
 #define SQLEXCEPTION_TIMEOUT_ERR 8
 
-class QV8Engine;
-void qt_add_sqlexceptions(QV8Engine *engine);
+namespace QQmlJS {
+namespace VM {
+class ExecutionEngine;
+}
+}
+void qt_add_sqlexceptions(QQmlJS::VM::ExecutionEngine *engine);
 
 QT_END_NAMESPACE
 
index f8a88e2..015d782 100644 (file)
@@ -58,7 +58,7 @@
 #include <private/qjsconverter_p.h>
 
 #include "qv4domerrors_p.h"
-#include "qv8sqlerrors_p.h"
+#include "qv4sqlerrors_p.h"
 
 #include <QtCore/qjsonarray.h>
 #include <QtCore/qjsonobject.h>
@@ -684,7 +684,7 @@ void QV8Engine::initializeGlobal(v8::Handle<v8::Object> global)
     qt_add_domexceptions(m_v4Engine);
     m_xmlHttpRequestData = qt_add_qmlxmlhttprequest(this);
 
-    qt_add_sqlexceptions(this);
+    qt_add_sqlexceptions(m_v4Engine);
 
     {
     v8::Handle<v8::Value> args[] = { global };
index 67f542b..43ba33e 100644 (file)
@@ -21,7 +21,7 @@ HEADERS += \
     $$PWD/qv8bindings_p.h \
     $$PWD/qv8engine_impl_p.h \
     $$PWD/qv4domerrors_p.h \
-    $$PWD/qv8sqlerrors_p.h \
+    $$PWD/qv4sqlerrors_p.h \
     $$PWD/qqmlbuiltinfunctions_p.h \
     $$PWD/qv8objectresource_p.h
 
@@ -40,5 +40,5 @@ SOURCES += \
     $$PWD/qv8worker.cpp \
     $$PWD/qv8bindings.cpp \
     $$PWD/qv4domerrors.cpp \
-    $$PWD/qv8sqlerrors.cpp \
+    $$PWD/qv4sqlerrors.cpp \
     $$PWD/qqmlbuiltinfunctions.cpp