eric6/Project/ProjectBaseBrowser.py

changeset 7771
787a6b3f8c9f
parent 7759
51aa6c6b66f7
child 7780
41420f82c0ac
--- 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):

eric ide

mercurial