diff -r 49f3377aebf1 -r 787a6b3f8c9f eric6/Project/ProjectBaseBrowser.py --- a/eric6/Project/ProjectBaseBrowser.py Fri Oct 09 17:19:29 2020 +0200 +++ b/eric6/Project/ProjectBaseBrowser.py Sat Oct 10 12:20:51 2020 +0200 @@ -14,13 +14,13 @@ QModelIndex, pyqtSignal, Qt, QCoreApplication, QItemSelectionModel, QItemSelection, QElapsedTimer ) -from PyQt5.QtGui import QCursor from PyQt5.QtWidgets import ( QTreeView, QApplication, QMenu, QDialog, QAbstractItemView ) from E5Gui.E5Application import e5App from E5Gui import E5MessageBox +from E5Gui.E5OverrideCursor import E5OverrideCursor from UI.Browser import Browser from UI.BrowserModel import BrowserDirectoryItem, BrowserFileItem @@ -366,54 +366,50 @@ Protected slot to handle the 'Expand all directories' menu action. """ self._disconnectExpandedCollapsed() - QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) - QApplication.processEvents() - index = self.model().index(0, 0) - while index.isValid(): - itm = self.model().item(index) - if ( - isinstance( - itm, - (ProjectBrowserSimpleDirectoryItem, - ProjectBrowserDirectoryItem)) and - not self.isExpanded(index) - ): - self.expand(index) - index = self.indexBelow(index) - self.layoutDisplay() + with E5OverrideCursor(): + index = self.model().index(0, 0) + while index.isValid(): + itm = self.model().item(index) + if ( + isinstance( + itm, + (ProjectBrowserSimpleDirectoryItem, + ProjectBrowserDirectoryItem)) and + not self.isExpanded(index) + ): + self.expand(index) + index = self.indexBelow(index) + self.layoutDisplay() self._connectExpandedCollapsed() - QApplication.restoreOverrideCursor() def _collapseAllDirs(self): """ Protected slot to handle the 'Collapse all directories' menu action. """ self._disconnectExpandedCollapsed() - QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) - QApplication.processEvents() - # 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, - (ProjectBrowserSimpleDirectoryItem, - ProjectBrowserDirectoryItem)) and - self.isExpanded(index) - ): - self.collapse(index) - index = self.indexAbove(index) - self.layoutDisplay() + with E5OverrideCursor(): + # 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, + (ProjectBrowserSimpleDirectoryItem, + ProjectBrowserDirectoryItem)) and + self.isExpanded(index) + ): + self.collapse(index) + index = self.indexAbove(index) + self.layoutDisplay() self._connectExpandedCollapsed() - QApplication.restoreOverrideCursor() def _showContextMenu(self, menu): """ @@ -506,41 +502,37 @@ # expand all directories in order to iterate over all entries self._expandAllDirs() - QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) - QApplication.processEvents() self.selectionModel().clear() - QApplication.processEvents() - # now iterate over all entries - startIndex = None - endIndex = None - selectedEntries = 0 - index = self.model().index(0, 0) - while index.isValid(): - itm = self.model().item(index) - if ( - self.wantedItem(itm, filterList) and - compareString == itm.data(1) - ): + with E5OverrideCursor(): + # now iterate over all entries + startIndex = None + endIndex = None + selectedEntries = 0 + index = self.model().index(0, 0) + while index.isValid(): + itm = self.model().item(index) if ( - startIndex is not None and - startIndex.parent() != index.parent() + self.wantedItem(itm, filterList) and + compareString == itm.data(1) ): - self._setItemRangeSelected(startIndex, endIndex, True) - startIndex = None - selectedEntries += 1 - if startIndex is None: - startIndex = index - endIndex = index - else: - if startIndex is not None: - self._setItemRangeSelected(startIndex, endIndex, True) - startIndex = None - index = self.indexBelow(index) - if startIndex is not None: - self._setItemRangeSelected(startIndex, endIndex, True) - QApplication.restoreOverrideCursor() - QApplication.processEvents() + if ( + startIndex is not None and + startIndex.parent() != index.parent() + ): + self._setItemRangeSelected(startIndex, endIndex, True) + startIndex = None + selectedEntries += 1 + if startIndex is None: + startIndex = index + endIndex = index + else: + if startIndex is not None: + self._setItemRangeSelected(startIndex, endIndex, True) + startIndex = None + index = self.indexBelow(index) + if startIndex is not None: + self._setItemRangeSelected(startIndex, endIndex, True) if selectedEntries == 0: E5MessageBox.information( @@ -628,8 +620,6 @@ @param name relative name of file item to be repopulated (string) """ - QApplication.setOverrideCursor(QCursor(Qt.WaitCursor)) - QApplication.processEvents() itm = self.currentItem() if itm is not None: self.currentItemName = itm.data(0) @@ -684,8 +674,6 @@ self._selectSingleItem(index) self.expandedNames = [] self.currentItemName = None - QApplication.restoreOverrideCursor() - QApplication.processEvents() self._resort() def currentItem(self):