summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJedrzej Nowacki <jedrzej.nowacki@nokia.com>2009-08-10 11:48:05 (GMT)
committerJedrzej Nowacki <jedrzej.nowacki@nokia.com>2009-08-10 11:48:05 (GMT)
commit7c2621743bd71aac11bba3d6061707cc2d95b0f9 (patch)
tree3c9bb3de77a3b8f7bc17c080344fa4e47e49d8b6 /src
parentaf9ebb26298e80992cda4fb3bbb6a3384e59e94a (diff)
parent457c1f8183df105a932cfa4de54546312ddbf544 (diff)
downloadQt-7c2621743bd71aac11bba3d6061707cc2d95b0f9.zip
Qt-7c2621743bd71aac11bba3d6061707cc2d95b0f9.tar.gz
Qt-7c2621743bd71aac11bba3d6061707cc2d95b0f9.tar.bz2
Merge branch 'qtscript-jsc-backend' of git@scm.dev.nokia.troll.no:qt/qt-webkit into qtscript-jsc-backend
Diffstat (limited to 'src')
-rw-r--r--src/script/api/qscriptcontextinfo.cpp40
1 files changed, 39 insertions, 1 deletions
diff --git a/src/script/api/qscriptcontextinfo.cpp b/src/script/api/qscriptcontextinfo.cpp
index eb9daf0..98d0d52 100644
--- a/src/script/api/qscriptcontextinfo.cpp
+++ b/src/script/api/qscriptcontextinfo.cpp
@@ -44,6 +44,7 @@
#include "qscriptcontext_p.h"
#include "../bridge/qscriptqobject_p.h"
#include <QtCore/qdatastream.h>
+#include <QtCore/qmetaobject.h>
#include "CodeBlock.h"
#include "JSFunction.h"
@@ -175,7 +176,15 @@ QScriptContextInfoPrivate::QScriptContextInfoPrivate(const QScriptContext *conte
// lineNumber = codeBlock->expressionRangeForBytecodeOffset(...);
} else if (callee && callee->isObject(&QScript::QtFunction::info)) {
functionType = QScriptContextInfo::QtFunction;
+ // ### the slot can be overloaded -- need to get the particular overload from the context
functionMetaIndex = static_cast<QScript::QtFunction*>(callee)->initialIndex();
+ const QMetaObject *meta = static_cast<QScript::QtFunction*>(callee)->metaObject();
+ if (meta != 0) {
+ QMetaMethod method = meta->method(functionMetaIndex);
+ QList<QByteArray> formals = method.parameterNames();
+ for (int i = 0; i < formals.count(); ++i)
+ parameterNames.append(QLatin1String(formals.at(i)));
+ }
}
else if (callee && callee->isObject(&QScript::QtPropertyFunction::info)) {
functionType = QScriptContextInfo::QtPropertyFunction;
@@ -509,7 +518,36 @@ Q_SCRIPT_EXPORT QDataStream &operator>>(QDataStream &in, QScriptContextInfo &inf
info.d_ptr->ref.ref();
}
- Q_ASSERT_X(false, Q_FUNC_INFO, "not implemented");
+ in >> info.d_ptr->scriptId;
+
+ qint32 line;
+ in >> line;
+ info.d_ptr->lineNumber = line;
+
+ qint32 column;
+ in >> column;
+ info.d_ptr->columnNumber = column;
+
+ quint32 ftype;
+ in >> ftype;
+ info.d_ptr->functionType = QScriptContextInfo::FunctionType(ftype);
+
+ qint32 startLine;
+ in >> startLine;
+ info.d_ptr->functionStartLineNumber = startLine;
+
+ qint32 endLine;
+ in >> endLine;
+ info.d_ptr->functionEndLineNumber = endLine;
+
+ qint32 metaIndex;
+ in >> metaIndex;
+ info.d_ptr->functionMetaIndex = metaIndex;
+
+ in >> info.d_ptr->fileName;
+ in >> info.d_ptr->functionName;
+ in >> info.d_ptr->parameterNames;
+
return in;
}
#endif