aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKent Hansen <kent.hansen@nokia.com>2012-06-04 16:10:34 +0200
committerQt by Nokia <qt-info@nokia.com>2012-06-22 10:04:44 +0200
commit15fd9d0c230680255b523b0409c0eb946d7a785f (patch)
tree245fad57aabf9ea604f2e809a8ac9873d6c22295
parent836bade8766f7de2104b1a91b10cbc2a08d12c03 (diff)
Pass the right signal index in visualadaptormodel proxy meta-object
For QMetaObject::activate(), the index must be relative to the class's own signals (excluding non-signal methods). For QMetaObjectBuilder, the notifier index must be relative to the class's own methods. Change-Id: I22f55d1fc55d56c997135dc78f51b710b37bb01a Reviewed-by: Andrew den Exter <andrew.den-exter@nokia.com>
-rw-r--r--src/quick/items/qquickvisualadaptormodel.cpp4
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml2
-rw-r--r--tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp2
3 files changed, 5 insertions, 3 deletions
diff --git a/src/quick/items/qquickvisualadaptormodel.cpp b/src/quick/items/qquickvisualadaptormodel.cpp
index 4151c3695e..b15513eed2 100644
--- a/src/quick/items/qquickvisualadaptormodel.cpp
+++ b/src/quick/items/qquickvisualadaptormodel.cpp
@@ -882,7 +882,7 @@ public:
QMetaObject::metacall(m_data->object, call, id - m_type->propertyOffset + objectPropertyOffset, arguments);
return -1;
} else if (id >= m_type->signalOffset && call == QMetaObject::InvokeMetaMethod) {
- QMetaObject::activate(m_data, this, id, 0);
+ QMetaObject::activate(m_data, this, id - m_type->signalOffset, 0);
return -1;
} else {
return m_data->qt_metacall(call, id, arguments);
@@ -910,7 +910,7 @@ public:
}
const int previousMethodCount = methodCount();
- int notifierId = previousMethodCount;
+ int notifierId = previousMethodCount - methodOffset();
for (int propertyId = previousPropertyCount; propertyId < metaObject->propertyCount() - objectPropertyOffset; ++propertyId) {
QMetaProperty property = metaObject->property(propertyId + objectPropertyOffset);
QMetaPropertyBuilder propertyBuilder;
diff --git a/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml b/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml
index b3952a8a4d..99151aa9e1 100644
--- a/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml
+++ b/tests/auto/quick/qquickvisualdatamodel/data/objectlist.qml
@@ -10,7 +10,7 @@ ListView {
height: 25
width: 100
color: model.modelData.color
- Text { objectName: "name"; text: name; function getText() { return name } }
+ Text { objectName: "name"; text: name; property string modelName: model.name; function getText() { return name } }
Text { objectName: "section"; text: parent.ListView.section }
}
}
diff --git a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
index 2d6cfa02d7..5da7dc7fba 100644
--- a/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
+++ b/tests/auto/quick/qquickvisualdatamodel/tst_qquickvisualdatamodel.cpp
@@ -525,12 +525,14 @@ void tst_qquickvisualdatamodel::objectListModel()
QQuickText *name = findItem<QQuickText>(contentItem, "name", 0);
QCOMPARE(name->text(), QString("Item 1"));
+ QCOMPARE(name->property("modelName").toString(), QString("Item 1"));
QQuickText *section = findItem<QQuickText>(contentItem, "section", 0);
QCOMPARE(section->text(), QString("Item 1"));
dataList[0]->setProperty("name", QLatin1String("Changed"));
QCOMPARE(name->text(), QString("Changed"));
+ QCOMPARE(name->property("modelName").toString(), QString("Changed"));
}
void tst_qquickvisualdatamodel::singleRole()