From: vsv Date: Mon, 2 Sep 2019 13:55:47 +0000 (+0300) Subject: Issue #2986: Update tree after rows insert X-Git-Tag: VEDF2019Lot4~15 X-Git-Url: http://git.salome-platform.org/gitweb/?a=commitdiff_plain;h=fe6597f7936103ae0728435ea841edbbcdee70ed;p=modules%2Fshaper.git Issue #2986: Update tree after rows insert --- diff --git a/src/XGUI/XGUI_DataModel.cpp b/src/XGUI/XGUI_DataModel.cpp index 1675b4183..d624d14ad 100644 --- a/src/XGUI/XGUI_DataModel.cpp +++ b/src/XGUI/XGUI_DataModel.cpp @@ -85,7 +85,6 @@ void XGUI_DataModel::processEvent(const std::shared_ptr& theMess QModelIndex aParentIndex1, aParentIndex2; ObjectPtr aObj; bool aRebuildAll = false; - bool isInserted = false; foreach(ModuleBase_ITreeNode* aNode, aNodes) { aObj = aNode->object(); @@ -100,13 +99,10 @@ void XGUI_DataModel::processEvent(const std::shared_ptr& theMess aParentIndex2 = getParentIndex(aNode, 2); insertRows(aRow, 1, aParentIndex1); dataChanged(aParentIndex1, aParentIndex2); - isInserted = true; } } if (aRebuildAll) rebuildDataTree(); - else if (isInserted) - endInsertRows(); emit treeRebuilt(); } @@ -223,8 +219,6 @@ void XGUI_DataModel::processEvent(const std::shared_ptr& theMess } if (aCreated.length() == 0) return; - bool isInsert = false; - bool isRemove = false; emit beforeTreeRebuild(); foreach(ObjectPtr aObj, aCreated) { ModuleBase_ITreeNode* aNode = myRoot->subNode(aObj); @@ -238,22 +232,16 @@ void XGUI_DataModel::processEvent(const std::shared_ptr& theMess if (aNewNb > aOldNb) { insertRows(aOldNb - 1, aNewNb - aOldNb, aFirstIdx); - isInsert = true; } else if (aNewNb < aOldNb) { if (aNewNb) removeRows(aNewNb - 1, aOldNb - aNewNb, aFirstIdx); else if (aOldNb) removeRows(0, aOldNb, aFirstIdx); - isRemove = aNewNb || aOldNb; } dataChanged(aFirstIdx, aLastIdx); } } - if (isRemove) - endRemoveRows(); - if (isInsert) - endInsertRows(); emit treeRebuilt(); } } @@ -354,6 +342,7 @@ bool XGUI_DataModel::hasChildren(const QModelIndex& theParent) const bool XGUI_DataModel::insertRows(int theRow, int theCount, const QModelIndex& theParent) { beginInsertRows(theParent, theRow, theRow + theCount - 1); + endInsertRows(); return true; } @@ -361,6 +350,7 @@ bool XGUI_DataModel::insertRows(int theRow, int theCount, const QModelIndex& the bool XGUI_DataModel::removeRows(int theRow, int theCount, const QModelIndex& theParent) { beginRemoveRows(theParent, theRow, theRow + theCount - 1); + endRemoveRows(); return true; }