src/eric7/Project/ProjectBaseBrowser.py

branch
eric7
changeset 9606
ccf055891890
parent 9576
be9f8e7e42e0
child 9653
e67609152c5e
--- a/src/eric7/Project/ProjectBaseBrowser.py	Sun Dec 11 10:32:57 2022 +0100
+++ b/src/eric7/Project/ProjectBaseBrowser.py	Sun Dec 11 11:02:20 2022 +0100
@@ -422,6 +422,29 @@
             self.layoutDisplay()
         self._connectExpandedCollapsed()
 
+    def _collapseAllFiles(self):
+        """
+        Protected slot to handle the 'Collapse all files' menu action.
+        """
+        self._disconnectExpandedCollapsed()
+        with EricOverrideCursor():
+            # step 1: find last valid index
+            vindex = QModelIndex()
+            index = self.model().index(0, 0)
+            while index.isValid():
+                vindex = index
+                index = self.indexBelow(index)
+
+            # step 2: go up collapsing all directory items
+            index = vindex
+            while index.isValid():
+                itm = self.model().item(index)
+                if isinstance(itm, ProjectBrowserFileItem) and self.isExpanded(index):
+                    self.collapse(index)
+                index = self.indexAbove(index)
+            self.layoutDisplay()
+        self._connectExpandedCollapsed()
+
     def _showContextMenu(self, menu):
         """
         Protected slot called before the context menu is shown.

eric ide

mercurial