eric6/QScintilla/Editor.py

changeset 7771
787a6b3f8c9f
parent 7759
51aa6c6b66f7
child 7775
4a1db75550bd
--- a/eric6/QScintilla/Editor.py	Fri Oct 09 17:19:29 2020 +0200
+++ b/eric6/QScintilla/Editor.py	Sat Oct 10 12:20:51 2020 +0200
@@ -16,7 +16,7 @@
     QDir, QTimer, QModelIndex, QFileInfo, pyqtSignal, pyqtSlot,
     QCryptographicHash, QEvent, QDateTime, QRegExp, Qt, QPoint
 )
-from PyQt5.QtGui import QCursor, QPalette, QFont, QPixmap, QPainter
+from PyQt5.QtGui import QPalette, QFont, QPixmap, QPainter
 from PyQt5.QtWidgets import (
     QLineEdit, QActionGroup, QDialog, QInputDialog, QApplication, QMenu
 )
@@ -25,6 +25,8 @@
 
 from E5Gui.E5Application import e5App
 from E5Gui import E5FileDialog, E5MessageBox
+from E5Gui.E5OverrideCursor import E5OverrideCursor
+
 from E5Utilities.E5Cache import E5Cache
 
 from .QsciScintillaCompat import QsciScintillaCompat
@@ -3077,56 +3079,52 @@
         @keyparam encoding encoding to be used to read the file (string)
             (Note: this parameter overrides encoding detection)
         """
-        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
-        
         self.__loadEditorConfig(fileName=fn)
         
         try:
-            if createIt and not os.path.exists(fn):
-                f = open(fn, "w")
-                f.close()
-            if encoding == "":
-                encoding = self.__getEditorConfig("DefaultEncoding",
-                                                  nodefault=True)
-            if encoding:
-                txt, self.encoding = Utilities.readEncodedFileWithEncoding(
-                    fn, encoding)
-            else:
-                txt, self.encoding = Utilities.readEncodedFile(fn)
+            with E5OverrideCursor():
+                if createIt and not os.path.exists(fn):
+                    f = open(fn, "w")
+                    f.close()
+                if encoding == "":
+                    encoding = self.__getEditorConfig("DefaultEncoding",
+                                                      nodefault=True)
+                if encoding:
+                    txt, self.encoding = Utilities.readEncodedFileWithEncoding(
+                        fn, encoding)
+                else:
+                    txt, self.encoding = Utilities.readEncodedFile(fn)
         except (UnicodeDecodeError, IOError) as why:
-            QApplication.restoreOverrideCursor()
             E5MessageBox.critical(
                 self.vm,
                 self.tr('Open File'),
                 self.tr('<p>The file <b>{0}</b> could not be opened.</p>'
                         '<p>Reason: {1}</p>')
                     .format(fn, str(why)))
-            QApplication.restoreOverrideCursor()
             raise
         
-        modified = False
-        
-        self.setText(txt)
-        
-        # get eric specific flags
-        self.__processFlags()
-        
-        # perform automatic EOL conversion
-        if (
-            self.__getEditorConfig("EOLMode", nodefault=True) or
-            Preferences.getEditor("AutomaticEOLConversion")
-        ):
-            self.convertEols(self.eolMode())
-        else:
-            fileEol = self.detectEolString(txt)
-            self.setEolModeByEolString(fileEol)
-        
-        self.extractTasks()
-        
-        QApplication.restoreOverrideCursor()
-        
-        self.setModified(modified)
-        self.lastModified = QFileInfo(self.fileName).lastModified()
+        with E5OverrideCursor():
+            modified = False
+            
+            self.setText(txt)
+            
+            # get eric specific flags
+            self.__processFlags()
+            
+            # perform automatic EOL conversion
+            if (
+                self.__getEditorConfig("EOLMode", nodefault=True) or
+                Preferences.getEditor("AutomaticEOLConversion")
+            ):
+                self.convertEols(self.eolMode())
+            else:
+                fileEol = self.detectEolString(txt)
+                self.setEolModeByEolString(fileEol)
+            
+            self.extractTasks()
+            
+            self.setModified(modified)
+            self.lastModified = QFileInfo(self.fileName).lastModified()
     
     def __convertTabs(self):
         """

eric ide

mercurial