]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
Fix for model indexing
authorapl <apl@opencascade.com>
Thu, 12 Apr 2012 15:46:27 +0000 (15:46 +0000)
committerapl <apl@opencascade.com>
Thu, 12 Apr 2012 15:46:27 +0000 (15:46 +0000)
src/SUIT/SUIT_TreeModel.cxx
src/SUIT/SUIT_TreeModel.h

index 8893581a23935a7483781bc8079669c5c2300fbd..3bab26044cb10e200fadde4884c660bc17e3477d 100755 (executable)
@@ -334,7 +334,7 @@ void SUIT_TreeModel::TreeSync::updateItem( const ObjPtr& obj, const ItemPtr& ite
   if( obj )
     obj->update();
   if ( item && needUpdate( item ) ) 
-    myModel->updateItem( item );
+    myModel->updateItem( item, false );
 }
 
 /*!
@@ -1396,7 +1396,7 @@ void SUIT_TreeModel::updateTreeModel(SUIT_DataObject* obj,TreeItem* item)
         {
           //obj and item are synchronised : go to next ones
           updateTreeModel(sobj,sitem);
-          if(sobj->modified()) updateItem(sitem);
+          if(sobj->modified()) updateItem(sitem, true);
           if( sobj ) sobj->update();
           kobj++;
           kitem++;
@@ -1598,8 +1598,9 @@ SUIT_TreeModel::TreeItem* SUIT_TreeModel::createItemAtPos( SUIT_DataObject* obj,
 /*!
   \brief Update tree item.
   \param item tree item to be updated
+  \param emitLayoutChanged if signal about changed layout should be emitted
 */
-void SUIT_TreeModel::updateItem( SUIT_TreeModel::TreeItem* item )
+void SUIT_TreeModel::updateItem( SUIT_TreeModel::TreeItem* item, bool emitLayoutChanged )
 {
   if ( !item )
     return;
@@ -1614,7 +1615,8 @@ void SUIT_TreeModel::updateItem( SUIT_TreeModel::TreeItem* item )
   QModelIndex lastIdx  = index( obj, columnCount() - 1 );
   emit dataChanged( firstIdx, lastIdx );
   obj->setModified(false);
-  emit layoutChanged();
+  if ( emitLayoutChanged )
+    emit layoutChanged();
 }
 
 /*!
index 8a259da3b3ddd3a74ff37acd3c37c372fecdea3f..d8dd51a529be2da89e7b9ca1c59566b054cae0e0 100755 (executable)
@@ -203,7 +203,7 @@ private:
 
   TreeItem*              createItem( SUIT_DataObject*, TreeItem* = 0, TreeItem* = 0 );
   TreeItem*              createItemAtPos( SUIT_DataObject*, TreeItem* = 0, int pos=0 );
-  void                   updateItem( TreeItem* );
+  void                   updateItem( TreeItem*, bool emitLayoutChanged );
   void                   removeItem( TreeItem* );
 
 private slots: