From f1f5c2bed1a9234c9b842be9f6ff36d5ec8bc930 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sat, 10 Oct 2015 18:51:03 -0700 Subject: [PATCH] Change dirty state after count is updated --- src/QmlControls/QmlObjectListModel.cc | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/QmlControls/QmlObjectListModel.cc b/src/QmlControls/QmlObjectListModel.cc index b9f1da053..98421f0b1 100644 --- a/src/QmlControls/QmlObjectListModel.cc +++ b/src/QmlControls/QmlObjectListModel.cc @@ -149,20 +149,18 @@ void QmlObjectListModel::clear(void) void QmlObjectListModel::removeAt(int i) { - setDirty(true); - // Look for a dirtyChanged signal on the object if (_objectList[i]->metaObject()->indexOfSignal(QMetaObject::normalizedSignature("dirtyChanged(bool)")) != -1) { QObject::disconnect(_objectList[i], SIGNAL(dirtyChanged(bool)), this, SLOT(_childDirtyChanged(bool))); } removeRows(i, 1); + + setDirty(true); } void QmlObjectListModel::insert(int i, QObject* object) { - setDirty(true); - if (i < 0 || i > _objectList.count()) { qWarning() << "Invalid index index:count" << i << _objectList.count(); } @@ -176,6 +174,8 @@ void QmlObjectListModel::insert(int i, QObject* object) _objectList.insert(i, object); insertRows(i, 1); + + setDirty(true); } void QmlObjectListModel::append(QObject* object) @@ -212,5 +212,7 @@ void QmlObjectListModel::setDirty(bool dirty) void QmlObjectListModel::_childDirtyChanged(bool dirty) { _dirty |= dirty; + // We want to emit dirtyChanged even if the actual value of _dirty didn't change. It can be a useful + // signal to know when a child has changed dirty state emit dirtyChanged(_dirty); } -- 2.22.0