--- 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): """