Fix a bug when @reload-ing while in EvEditor

This commit is contained in:
Vincent Le Goff 2017-02-04 17:23:33 -08:00 committed by Griatch
parent 223cf647ec
commit 66424c62ed

View file

@ -319,6 +319,7 @@ def _load_editor(caller):
""" """
saved_options = caller.attributes.get("_eveditor_saved") saved_options = caller.attributes.get("_eveditor_saved")
saved_buffer, saved_undo = caller.attributes.get("_eveditor_buffer_temp", (None, None)) saved_buffer, saved_undo = caller.attributes.get("_eveditor_buffer_temp", (None, None))
unsaved = caller.attributes.get("_eveditor_unsaved", False)
if saved_options: if saved_options:
eveditor = EvEditor(caller, **saved_options[0]) eveditor = EvEditor(caller, **saved_options[0])
if saved_buffer: if saved_buffer:
@ -327,6 +328,7 @@ def _load_editor(caller):
setattr(eveditor, "_buffer", saved_buffer) setattr(eveditor, "_buffer", saved_buffer)
setattr(eveditor, "_undo_buffer", saved_undo) setattr(eveditor, "_undo_buffer", saved_undo)
setattr(eveditor, "_undo_pos", len(saved_undo) - 1) setattr(eveditor, "_undo_pos", len(saved_undo) - 1)
setattr(eveditor, "_unsaved", unsaved)
for key, value in saved_options[1].iteritems(): for key, value in saved_options[1].iteritems():
setattr(eveditor, key, value) setattr(eveditor, key, value)
else: else:
@ -680,6 +682,7 @@ class EvEditor(object):
{"_pristine_buffer": self._pristine_buffer, {"_pristine_buffer": self._pristine_buffer,
"_sep": self._sep})) "_sep": self._sep}))
caller.attributes.add("_eveditor_buffer_temp", (self._buffer, self._undo_buffer)) caller.attributes.add("_eveditor_buffer_temp", (self._buffer, self._undo_buffer))
caller.attributes.add("_eveditor_unsaved", False)
except Exception, err: except Exception, err:
caller.msg(_ERROR_PERSISTENT_SAVING.format(error=err)) caller.msg(_ERROR_PERSISTENT_SAVING.format(error=err))
logger.log_trace(_TRACE_PERSISTENT_SAVING) logger.log_trace(_TRACE_PERSISTENT_SAVING)
@ -731,6 +734,7 @@ class EvEditor(object):
self._unsaved = True self._unsaved = True
if self._persistent: if self._persistent:
self._caller.attributes.add("_eveditor_buffer_temp", (self._buffer, self._undo_buffer)) self._caller.attributes.add("_eveditor_buffer_temp", (self._buffer, self._undo_buffer))
self._caller.attributes.add("_eveditor_unsaved", True)
def quit(self): def quit(self):
""" """
@ -744,6 +748,7 @@ class EvEditor(object):
self._caller.nattributes.remove("_eveditor") self._caller.nattributes.remove("_eveditor")
self._caller.attributes.remove("_eveditor_buffer_temp") self._caller.attributes.remove("_eveditor_buffer_temp")
self._caller.attributes.remove("_eveditor_saved") self._caller.attributes.remove("_eveditor_saved")
self._caller.attributes.remove("_eveditor_unsaved")
self._caller.cmdset.remove(EvEditorCmdSet) self._caller.cmdset.remove(EvEditorCmdSet)
def save_buffer(self): def save_buffer(self):