--- a/src/eric7/QScintilla/Editor.py Mon Apr 08 14:55:48 2024 +0200 +++ b/src/eric7/QScintilla/Editor.py Mon Apr 08 15:48:01 2024 +0200 @@ -1042,6 +1042,9 @@ self.menu.addSeparator() self.reopenEncodingMenu = self.__initContextMenuReopenWithEncoding() self.menuActs["Reopen"] = self.menu.addMenu(self.reopenEncodingMenu) + self.menuActs["Reload"] = self.menu.addAction( + EricPixmapCache.getIcon("reload"), self.tr("Reload"), self.reload + ) self.menuActs["Save"] = self.menu.addAction( EricPixmapCache.getIcon("fileSave"), self.tr("Save"), self.__contextSave ) @@ -6331,6 +6334,7 @@ self.menuActs["Reopen"].setEnabled( not self.isModified() and bool(self.fileName) ) + self.menuActs["Reload"].setEnabled(bool(self.fileName)) self.menuActs["Save"].setEnabled(self.isModified()) self.menuActs["Undo"].setEnabled(self.isUndoAvailable()) self.menuActs["Redo"].setEnabled(self.isRedoAvailable()) @@ -8327,6 +8331,27 @@ self.refreshed.emit() + @pyqtSlot() + def reload(self): + """ + Public slot to reload the editor contents checking its modification state first. + """ + if self.isModified(): + ok = EricMessageBox.yesNo( + self, + self.tr("Reload File"), + self.tr( + "<p>The editor contains unsaved modifications.</p>" + "<p><b>Warning:</b> You will lose your changes upon reloading" + " it.</p><p>Shall the editor really be reloaded?</p>" + ), + icon=EricMessageBox.Warning, + ) + else: + ok = True + if ok: + self.refresh() + def setMonospaced(self, on): """ Public method to set/reset a monospaced font.