diff --git a/apps/opencs/model/world/commanddispatcher.cpp b/apps/opencs/model/world/commanddispatcher.cpp index 2b4c3109f..ce6d1e398 100644 --- a/apps/opencs/model/world/commanddispatcher.cpp +++ b/apps/opencs/model/world/commanddispatcher.cpp @@ -13,14 +13,16 @@ std::vector CSMWorld::CommandDispatcher::getDeletableRecords() cons IdTable& model = dynamic_cast (*mDocument.getData().getTableModel (mId)); + int stateColumnIndex = model.findColumnIndex (Columns::ColumnId_Modification); + for (std::vector::const_iterator iter (mSelection.begin()); iter!=mSelection.end(); ++iter) { int row = model.getModelIndex (*iter, 0).row(); // check record state - RecordBase::State state = - static_cast (model.data (model.index (row, 1)).toInt()); + RecordBase::State state = static_cast ( + model.data (model.index (row, stateColumnIndex)).toInt()); if (state==RecordBase::State_Deleted) continue; @@ -53,14 +55,16 @@ std::vector CSMWorld::CommandDispatcher::getRevertableRecords() con if (model.getFeatures() & IdTable::Feature_ReorderWithinTopic) return result; + int stateColumnIndex = model.findColumnIndex (Columns::ColumnId_Modification); + for (std::vector::const_iterator iter (mSelection.begin()); iter!=mSelection.end(); ++iter) { int row = model.getModelIndex (*iter, 0).row(); // check record state - RecordBase::State state = - static_cast (model.data (model.index (row, 1)).toInt()); + RecordBase::State state = static_cast ( + model.data (model.index (row, stateColumnIndex)).toInt()); if (state==RecordBase::State_BaseOnly) continue;