|
|
@ -23,6 +23,7 @@ QmlObjectListModel::QmlObjectListModel(QObject* parent) |
|
|
|
: QAbstractListModel (parent) |
|
|
|
: QAbstractListModel (parent) |
|
|
|
, _dirty (false) |
|
|
|
, _dirty (false) |
|
|
|
, _skipDirtyFirstItem (false) |
|
|
|
, _skipDirtyFirstItem (false) |
|
|
|
|
|
|
|
, _externalBeginResetModel (false) |
|
|
|
{ |
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
@ -142,8 +143,13 @@ const QObject* QmlObjectListModel::operator[](int index) const |
|
|
|
|
|
|
|
|
|
|
|
void QmlObjectListModel::clear() |
|
|
|
void QmlObjectListModel::clear() |
|
|
|
{ |
|
|
|
{ |
|
|
|
while (rowCount()) { |
|
|
|
if (!_externalBeginResetModel) { |
|
|
|
removeAt(0); |
|
|
|
beginResetModel(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
_objectList.clear(); |
|
|
|
|
|
|
|
if (!_externalBeginResetModel) { |
|
|
|
|
|
|
|
endResetModel(); |
|
|
|
|
|
|
|
emit countChanged(count()); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -221,10 +227,14 @@ void QmlObjectListModel::append(QList<QObject*> objects) |
|
|
|
QObjectList QmlObjectListModel::swapObjectList(const QObjectList& newlist) |
|
|
|
QObjectList QmlObjectListModel::swapObjectList(const QObjectList& newlist) |
|
|
|
{ |
|
|
|
{ |
|
|
|
QObjectList oldlist(_objectList); |
|
|
|
QObjectList oldlist(_objectList); |
|
|
|
|
|
|
|
if (!_externalBeginResetModel) { |
|
|
|
beginResetModel(); |
|
|
|
beginResetModel(); |
|
|
|
|
|
|
|
} |
|
|
|
_objectList = newlist; |
|
|
|
_objectList = newlist; |
|
|
|
|
|
|
|
if (!_externalBeginResetModel) { |
|
|
|
endResetModel(); |
|
|
|
endResetModel(); |
|
|
|
emit countChanged(count()); |
|
|
|
emit countChanged(count()); |
|
|
|
|
|
|
|
} |
|
|
|
return oldlist; |
|
|
|
return oldlist; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -274,3 +284,21 @@ void QmlObjectListModel::clearAndDeleteContents() |
|
|
|
clear(); |
|
|
|
clear(); |
|
|
|
endResetModel(); |
|
|
|
endResetModel(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void QmlObjectListModel::beginReset(void) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (_externalBeginResetModel) { |
|
|
|
|
|
|
|
qWarning() << "QmlObjectListModel::beginReset already set"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
_externalBeginResetModel = true; |
|
|
|
|
|
|
|
beginResetModel(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void QmlObjectListModel::endReset(void) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (!_externalBeginResetModel) { |
|
|
|
|
|
|
|
qWarning() << "QmlObjectListModel::endReset begin not set"; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
_externalBeginResetModel = false; |
|
|
|
|
|
|
|
endResetModel(); |
|
|
|
|
|
|
|
} |
|
|
|