diff options
author | Andrew den Exter <andrew.den-exter@nokia.com> | 2011-11-08 17:29:38 +1000 |
---|---|---|
committer | Qt by Nokia <qt-info@nokia.com> | 2011-11-09 08:23:57 +0100 |
commit | 89eea1765625c59a4362e600e4e0f99f261706bc (patch) | |
tree | 393756e52a1163f0c5c1ffb3cb7ab7e0b7554494 /src/declarative/items/qquickvisualdatamodel.cpp | |
parent | cd633df026733f420b5b63ea8b6a4ab943408db9 (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.cpp | 11 |
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; |