]> SALOME platform Git repositories - modules/shaper.git/commitdiff
Salome HOME
Issue #2324: Update object browser after hide all on Linux
authorvsv <vsv@opencascade.com>
Wed, 6 Dec 2017 14:18:44 +0000 (17:18 +0300)
committervsv <vsv@opencascade.com>
Wed, 6 Dec 2017 14:18:44 +0000 (17:18 +0300)
src/XGUI/XGUI_ObjectsBrowser.cpp
src/XGUI/XGUI_ObjectsBrowser.h
src/XGUI/XGUI_Workshop.cpp

index 3b09d6ab7cb75b5b1154bd8a760d71119c3eeda4..76a63127ad85eb93f23419198fe1f3e773943b2e 100644 (file)
@@ -621,3 +621,14 @@ void XGUI_ObjectsBrowser::setStateForDoc(DocumentPtr theDoc, const std::list<boo
     myTreeView->setExpanded(aIdx, (*aIt));
   }
 }
+
+void XGUI_ObjectsBrowser::updateAllIndexes(int theColumn, const QModelIndex& theParent)
+{
+  const QAbstractItemModel* aModel = theParent.model();
+  int aNb = aModel->rowCount();
+  for (int i = 0; i < aNb; i++) {
+    QModelIndex aIdx = theParent.child(i, theColumn);
+    myTreeView->update(aIdx);
+    updateAllIndexes(theColumn, aIdx);
+  }
+}
index fd522c61a8dd253aaafc940fec2aadac2b942018..372d4bb76402395ec1a7a286abace45cf66a999a 100644 (file)
@@ -206,6 +206,10 @@ Q_OBJECT
 
   void onSelectionChanged();
 
+  /// Updates all items of object browser
+  /// \param theColumn - column of items
+  /// \param theParent - a parent item (by default from root)
+  void updateAllIndexes(int theColumn = 0, const QModelIndex& theParent = QModelIndex());
 
 public slots:
   //! Called on Edit command request
index de866856ddeaec1e17c6b98c9961a8f6661b6585..91d8757f272822c02d17db2f199c9b835bc4b94c 100755 (executable)
@@ -1474,12 +1474,7 @@ void XGUI_Workshop::onContextMenuCommand(const QString& theId, bool isChecked)
     updateCommandStatus();
 #ifndef WIN32
   // Necessary for update icons in ObjectBrowser on Linux
-  QModelIndexList aIndexes = mySelector->selection()->selectedIndexes();
-  foreach (QModelIndex aIdx, aIndexes) {
-    if (aIdx.column() == 0) {
-      myObjectBrowser->treeView()->update(aIdx);
-    }
-  }
+  myObjectBrowser->updateAllIndexes();
 #endif
   } else if (theId == "SELECT_VERTEX_CMD") {
     setViewerSelectionMode(TopAbs_VERTEX);