From c00fb11482ec7c103f05eb9ac8a210242064024a Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Sun, 19 Apr 2009 01:09:45 -0400 Subject: Add how the model changed in signals and slots for notification of changes --- sigmodr/tree/SigmodrTreeModel.cpp | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'sigmodr/tree/SigmodrTreeModel.cpp') diff --git a/sigmodr/tree/SigmodrTreeModel.cpp b/sigmodr/tree/SigmodrTreeModel.cpp index 6dd42fb0..dcfd04f3 100644 --- a/sigmodr/tree/SigmodrTreeModel.cpp +++ b/sigmodr/tree/SigmodrTreeModel.cpp @@ -37,7 +37,7 @@ SigmodrTreeModel::SigmodrTreeModel(QObject* parent) : QAbstractItemModel(parent), m_root(new RootModel) { - connect(m_root, SIGNAL(rowsChanged(QList)), this, SLOT(rowsChanged(QList))); + connect(m_root, SIGNAL(rowsChanged(QList, Sigmodr::Tree::BaseModel::Change)), this, SLOT(rowsChanged(QList, Sigmodr::Tree::BaseModel::Change))); } SigmodrTreeModel::~SigmodrTreeModel() @@ -186,13 +186,22 @@ const Game* SigmodrTreeModel::findGame(const QModelIndex& index) const return qobject_cast(getItem(curIndex)->object()); } -void SigmodrTreeModel::rowsChanged(const QList& rows) +void SigmodrTreeModel::rowsChanged(const QList& rows, const BaseModel::Change change) { QModelIndex curIndex; foreach (int row, rows) curIndex = index(row, 0, curIndex); if (curIndex.isValid()) { + switch (change) + { + case BaseModel::Addition: + insertRow(rows.back(), parent(curIndex)); + break; + case BaseModel::Removal: + removeRow(rows.back(), parent(curIndex)); + break; + } emit(dataChanged(curIndex, curIndex)); emit(dirty(findGame(curIndex), true)); } -- cgit