From 78a579991134f9c8f955484a87c0dea615012a4e Mon Sep 17 00:00:00 2001 From: Alexander Stillich Date: Mon, 9 Jul 2018 16:05:06 +0200 Subject: [PATCH] Issue a single dataChanged() when the modified column changes --- apps/opencs/model/world/idtable.cpp | 17 ++++++----------- 1 file changed, 6 insertions(+), 11 deletions(-) diff --git a/apps/opencs/model/world/idtable.cpp b/apps/opencs/model/world/idtable.cpp index 0a2052fd8..cb48fc85f 100644 --- a/apps/opencs/model/world/idtable.cpp +++ b/apps/opencs/model/world/idtable.cpp @@ -84,7 +84,6 @@ bool CSMWorld::IdTable::setData (const QModelIndex &index, const QVariant &value if (mIdCollection->getColumn (index.column()).isEditable() && role==Qt::EditRole) { mIdCollection->setData (index.row(), index.column(), value); - emit dataChanged(index, index); int stateColumn = searchColumnIndex(Columns::ColumnId_Modification); if (stateColumn != -1) @@ -94,23 +93,19 @@ bool CSMWorld::IdTable::setData (const QModelIndex &index, const QVariant &value // modifying the state column can modify other values. we need to tell // views that the whole row has changed. - int count = columnCount(index.parent()); - for (int i=0; iindex(index.row(), i); - emit dataChanged(columnIndex, columnIndex); - } - } + emit dataChanged(this->index(index.row(), 0), + this->index(index.row(), columnCount(index.parent()))); } else { + emit dataChanged(index, index); + // Modifying a value can also change the Modified status of a record. QModelIndex stateIndex = this->index(index.row(), stateColumn); emit dataChanged(stateIndex, stateIndex); } - } + } else + emit dataChanged(index, index); return true; }