eric6/QScintilla/MiniEditor.py

changeset 7771
787a6b3f8c9f
parent 7763
32d9af1cea79
child 7775
4a1db75550bd
--- a/eric6/QScintilla/MiniEditor.py	Fri Oct 09 17:19:29 2020 +0200
+++ b/eric6/QScintilla/MiniEditor.py	Sat Oct 10 12:20:51 2020 +0200
@@ -15,7 +15,7 @@
     QSignalMapper, QPoint, QTimer, QFileInfo, pyqtSignal, QSize, QRegExp, Qt,
     QCoreApplication
 )
-from PyQt5.QtGui import QCursor, QKeySequence, QPalette, QFont, QPixmap
+from PyQt5.QtGui import QKeySequence, QPalette, QFont, QPixmap
 from PyQt5.QtWidgets import (
     QWidget, QWhatsThis, QActionGroup, QDialog, QInputDialog, QApplication,
     QMenu, QVBoxLayout, QHBoxLayout, QLabel
@@ -28,6 +28,7 @@
 from E5Gui.E5MainWindow import E5MainWindow
 from E5Gui.E5ClickableLabel import E5ClickableLabel
 from E5Gui.E5ZoomWidget import E5ZoomWidget
+from E5Gui.E5OverrideCursor import E5OverrideCursor
 
 from .QsciScintillaCompat import QsciScintillaCompat
 
@@ -2519,48 +2520,45 @@
         @param fileName name of the file to load (string)
         @param filetype type of the source file (string)
         """
-        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))
-        
         self.__loadEditorConfig(fileName=fileName)
         
         try:
-            encoding = self.__getEditorConfig("DefaultEncoding",
-                                              nodefault=True)
-            if encoding:
-                txt, self.encoding = Utilities.readEncodedFileWithEncoding(
-                    fileName, encoding)
-            else:
-                txt, self.encoding = Utilities.readEncodedFile(fileName)
+            with E5OverrideCursor():
+                encoding = self.__getEditorConfig("DefaultEncoding",
+                                                  nodefault=True)
+                if encoding:
+                    txt, self.encoding = Utilities.readEncodedFileWithEncoding(
+                        fileName, encoding)
+                else:
+                    txt, self.encoding = Utilities.readEncodedFile(fileName)
         except (UnicodeDecodeError, IOError) as why:
-            QApplication.restoreOverrideCursor()
             E5MessageBox.critical(
                 self, self.tr('Open File'),
                 self.tr('<p>The file <b>{0}</b> could not be opened.</p>'
                         '<p>Reason: {1}</p>')
                 .format(fileName, str(why)))
-            QApplication.restoreOverrideCursor()
             return
         
-        self.__textEdit.setText(txt)
-        QApplication.restoreOverrideCursor()
-        
-        if filetype is None:
-            self.filetype = ""
-        else:
-            self.filetype = filetype
-        self.__setCurrentFile(fileName)
-        
-        self.__textEdit.setModified(False)
-        self.setWindowModified(False)
-        
-        self.__convertTabs()
-        
-        eolMode = self.__getEditorConfig("EOLMode", nodefault=True)
-        if eolMode is None:
-            fileEol = self.__textEdit.detectEolString(txt)
-            self.__textEdit.setEolModeByEolString(fileEol)
-        else:
-            self.__textEdit.convertEols(eolMode)
+        with E5OverrideCursor():
+            self.__textEdit.setText(txt)
+            
+            if filetype is None:
+                self.filetype = ""
+            else:
+                self.filetype = filetype
+            self.__setCurrentFile(fileName)
+            
+            self.__textEdit.setModified(False)
+            self.setWindowModified(False)
+            
+            self.__convertTabs()
+            
+            eolMode = self.__getEditorConfig("EOLMode", nodefault=True)
+            if eolMode is None:
+                fileEol = self.__textEdit.detectEolString(txt)
+                self.__textEdit.setEolModeByEolString(fileEol)
+            else:
+                self.__textEdit.convertEols(eolMode)
         
         self.__statusBar.showMessage(self.tr("File loaded"), 2000)
     
@@ -2612,8 +2610,6 @@
         @return flag indicating success
         @rtype bool
         """
-        QApplication.setOverrideCursor(Qt.WaitCursor)
-        
         config = self.__loadEditorConfigObject(fileName)
         
         eol = self.__getEditorConfig("EOLMode", nodefault=True, config=config)
@@ -2636,13 +2632,13 @@
         
         # now write text to the file
         try:
-            editorConfigEncoding = self.__getEditorConfig(
-                "DefaultEncoding", nodefault=True, config=config)
-            self.encoding = Utilities.writeEncodedFile(
-                fileName, txt, self.encoding,
-                forcedEncoding=editorConfigEncoding)
+            with E5OverrideCursor():
+                editorConfigEncoding = self.__getEditorConfig(
+                    "DefaultEncoding", nodefault=True, config=config)
+                self.encoding = Utilities.writeEncodedFile(
+                    fileName, txt, self.encoding,
+                    forcedEncoding=editorConfigEncoding)
         except (IOError, Utilities.CodingError, UnicodeError) as why:
-            QApplication.restoreOverrideCursor()
             E5MessageBox.critical(
                 self, self.tr('Save File'),
                 self.tr('<p>The file <b>{0}</b> could not be saved.<br/>'
@@ -2650,7 +2646,6 @@
                 .format(fileName, str(why)))
             return False
         
-        QApplication.restoreOverrideCursor()
         self.__statusBar.showMessage(self.tr("File saved"), 2000)
         
         return True

eric ide

mercurial