src/declarative/qml/qdeclarativevmemetaobject.cpp
changeset 33 3e2da88830cd
parent 30 5dc02b23752f
child 37 758a864f9613
--- a/src/declarative/qml/qdeclarativevmemetaobject.cpp	Tue Jul 06 15:10:48 2010 +0300
+++ b/src/declarative/qml/qdeclarativevmemetaobject.cpp	Wed Aug 18 10:37:55 2010 +0300
@@ -751,6 +751,22 @@
     interceptors.insert(index, qMakePair(valueIndex, interceptor));
 }
 
+int QDeclarativeVMEMetaObject::vmeMethodLineNumber(int index)
+{
+    if (index < methodOffset) {
+        Q_ASSERT(parent);
+        return static_cast<QDeclarativeVMEMetaObject *>(parent)->vmeMethodLineNumber(index);
+    }
+
+    int plainSignals = metaData->signalCount + metaData->propertyCount + metaData->aliasCount;
+    Q_ASSERT(index >= (methodOffset + plainSignals) && index < (methodOffset + plainSignals + metaData->methodCount));
+
+    int rawIndex = index - methodOffset - plainSignals;
+
+    QDeclarativeVMEMetaData::MethodData *data = metaData->methodData() + rawIndex;
+    return data->lineNumber;
+}
+
 QScriptValue QDeclarativeVMEMetaObject::vmeMethod(int index)
 {
     if (index < methodOffset) {
@@ -762,6 +778,20 @@
     return method(index - methodOffset - plainSignals);
 }
 
+void QDeclarativeVMEMetaObject::setVmeMethod(int index, const QScriptValue &value)
+{
+    if (index < methodOffset) {
+        Q_ASSERT(parent);
+        return static_cast<QDeclarativeVMEMetaObject *>(parent)->setVmeMethod(index, value);
+    }
+    int plainSignals = metaData->signalCount + metaData->propertyCount + metaData->aliasCount;
+    Q_ASSERT(index >= (methodOffset + plainSignals) && index < (methodOffset + plainSignals + metaData->methodCount));
+
+    if (!methods) 
+        methods = new QScriptValue[metaData->methodCount];
+    methods[index - methodOffset - plainSignals] = value;
+}
+
 QScriptValue QDeclarativeVMEMetaObject::vmeProperty(int index)
 {
     if (index < propOffset) {