aboutsummaryrefslogtreecommitdiffstats
path: root/src/declarative/items/qquickvisualdatamodel.cpp
diff options
context:
space:
mode:
authorAndrew den Exter <andrew.den-exter@nokia.com>2011-11-08 17:29:38 +1000
committerQt by Nokia <qt-info@nokia.com>2011-11-09 08:23:57 +0100
commit89eea1765625c59a4362e600e4e0f99f261706bc (patch)
tree393756e52a1163f0c5c1ffb3cb7ab7e0b7554494 /src/declarative/items/qquickvisualdatamodel.cpp
parentcd633df026733f420b5b63ea8b6a4ab943408db9 (diff)
Add tests for the VisualDataGroup onChanged signal.
And other things. Fixes onChanged being emitted with an empty change list, an out of bounds array access in groups property and model parts group filter not being correctly reset. Change-Id: If2f27b303a141634d106b7c5164984e5817aff4e Reviewed-by: Martin Jones <martin.jones@nokia.com>
Diffstat (limited to 'src/declarative/items/qquickvisualdatamodel.cpp')
-rw-r--r--src/declarative/items/qquickvisualdatamodel.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/declarative/items/qquickvisualdatamodel.cpp b/src/declarative/items/qquickvisualdatamodel.cpp
index 8852dce3cc..5cf2d6c9b3 100644
--- a/src/declarative/items/qquickvisualdatamodel.cpp
+++ b/src/declarative/items/qquickvisualdatamodel.cpp
@@ -766,7 +766,7 @@ QQuickVisualDataGroup *QQuickVisualDataModelPrivate::group_at(
{
QQuickVisualDataModelPrivate *d = static_cast<QQuickVisualDataModelPrivate *>(property->data);
return index >= 0 && index < d->m_groupCount - 1
- ? d->m_groups[index - 1]
+ ? d->m_groups[index + 1]
: 0;
}
@@ -1865,7 +1865,7 @@ void QQuickVisualDataGroupPrivate::emitChanges(QV8Engine *engine)
{
Q_Q(QQuickVisualDataGroup);
static int idx = signalIndex("changed(QDeclarativeV8Handle,QDeclarativeV8Handle)");
- if (isSignalConnected(idx)) {
+ if (isSignalConnected(idx) && !changeSet.isEmpty()) {
v8::HandleScope handleScope;
v8::Context::Scope contextScope(engine->context());
v8::Local<v8::Array> removed = QQuickVisualDataModelPrivate::buildChangeList(changeSet.removes());
@@ -2372,8 +2372,11 @@ void QQuickVisualPartsModel::updateFilterGroup()
if (!model->m_cacheMetaType)
return;
- if (m_inheritGroup)
- return;
+ if (m_inheritGroup) {
+ if (m_filterGroup == model->m_filterGroup)
+ return;
+ m_filterGroup = model->m_filterGroup;
+ }
QDeclarativeListCompositor::Group previousGroup = m_compositorGroup;
m_compositorGroup = Compositor::Default;