--- a/eric7/HexEdit/HexEditMainWindow.py Mon Jun 20 13:25:14 2022 +0200 +++ b/eric7/HexEdit/HexEditMainWindow.py Mon Jun 20 19:47:39 2022 +0200 @@ -12,7 +12,7 @@ import pathlib from PyQt6.QtCore import ( - pyqtSignal, pyqtSlot, QFile, QSize, QCoreApplication, QLocale, QIODevice + pyqtSignal, pyqtSlot, QSize, QCoreApplication, QLocale ) from PyQt6.QtGui import QKeySequence, QAction from PyQt6.QtWidgets import ( @@ -984,24 +984,23 @@ @param fileName name of the binary file to load @type str """ - file = QFile(fileName) - if not file.exists(): + if not os.path.exists(fileName): EricMessageBox.warning( self, self.tr("eric Hex Editor"), self.tr("The file '{0}' does not exist.") .format(fileName)) return - if not file.open(QIODevice.OpenModeFlag.ReadOnly): + try: + with open(fileName, "rb") as f: + data = f.read() + except OSError as err: EricMessageBox.warning( self, self.tr("eric Hex Editor"), - self.tr("Cannot read file '{0}:\n{1}.") - .format(fileName, file.errorString())) + self.tr("<p>Cannot read file <b>{0}</b>.</p><p>Reason:{1}</p>") + .format(fileName, str(err))) return - data = file.readAll() - file.close() - self.__lastOpenPath = os.path.dirname(fileName) self.__editor.setData(data) self.__setCurrentFile(fileName) @@ -1105,28 +1104,16 @@ @return flag indicating success @rtype bool """ - file = QFile(fileName) - if not file.open(QIODevice.OpenModeFlag.WriteOnly): + try: + with open(fileName, "wb") as f: + f.write(self.__editor.data()) + except OSError as err: EricMessageBox.warning( self, self.tr("eric Hex Editor"), - self.tr("Cannot write file '{0}:\n{1}.") - .format(fileName, file.errorString())) - + self.tr("<p>Cannot write file <b>{0}</b>.</p>" + "<p>Reason:{1}</p>") + .format(fileName, str(err))) self.__checkActions() - - return False - - res = file.write(self.__editor.data()) != -1 - file.close() - - if not res: - EricMessageBox.warning( - self, self.tr("eric Hex Editor"), - self.tr("Cannot write file '{0}:\n{1}.") - .format(fileName, file.errorString())) - - self.__checkActions() - return False self.__editor.setModified(False, setCleanState=True)