From 89eea1765625c59a4362e600e4e0f99f261706bc Mon Sep 17 00:00:00 2001 From: Andrew den Exter Date: Tue, 8 Nov 2011 17:29:38 +1000 Subject: 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 --- src/declarative/items/qquickvisualdatamodel.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src/declarative/items/qquickvisualdatamodel.cpp') 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(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 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; -- cgit v1.2.3