Salome HOME
#1107 Tab key does not change focus to Apply in circle sketch feature.
[modules/shaper.git] / src / XGUI / XGUI_ObjectsBrowser.cpp
index 0d9750e0804022017534d738fe6bd1a19879ecfb..7eb50de3409ce79f2c8a48199da60345c0a26c93 100644 (file)
@@ -444,10 +444,33 @@ void XGUI_ObjectsBrowser::onEditItem()
   }
 }
 
+//***************************************************
+QModelIndexList XGUI_ObjectsBrowser::expandedItems(const QModelIndex& theParent) const
+{
+  QModelIndexList aIndexes;
+  QModelIndex aIndex;
+  for (int i = 0; i < myDocModel->rowCount(); i++) {
+    aIndex = myDocModel->index(i, 0, theParent);
+    if (myDocModel->hasChildren(aIndex)) {
+      if (myTreeView->isExpanded(aIndex)) {
+        aIndexes.append(aIndex);
+        QModelIndexList aSubIndexes = expandedItems(aIndex);
+        if (!aSubIndexes.isEmpty())
+          aIndexes.append(aSubIndexes);
+      }
+    }
+  }
+  return aIndexes;
+}
+
 //***************************************************
 void XGUI_ObjectsBrowser::rebuildDataTree()
 {
+  QModelIndexList aIndexList = expandedItems();
   myDocModel->rebuildDataTree();
+  foreach(QModelIndex aIndex, aIndexList) {
+    myTreeView->setExpanded(aIndex, true);
+  }
   update();
 }