--- 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.