Skip to content

Commit 8e6684a

Browse files
Fix delete save txt (#2230)
* Back to development version * Fixes #2229
1 parent 3dc9538 commit 8e6684a

File tree

2 files changed

+21
-9
lines changed

2 files changed

+21
-9
lines changed

src/robotide/editor/texteditor.py

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -279,6 +279,9 @@ def format_text(self, text):
279279
def mark_data_dirty(self):
280280
self._data.mark_dirty()
281281

282+
def mark_data_pristine(self):
283+
self._data.unmark_dirty()
284+
282285
def _create_target(self):
283286
data = self._data.data
284287
target_class = type(data)
@@ -313,7 +316,7 @@ def __init__(self, parent, title, data_validator):
313316
'txt number of spaces', 4)
314317
self._create_ui(title)
315318
self._data = None
316-
self._dirty = False
319+
self._dirty = 0 # 0 is False and 1 is True, when changed on this editor
317320
self._position = None
318321
self._showing_list = False
319322
self._tab_open = None
@@ -606,13 +609,14 @@ def write_ident(self):
606609
self._editor.WriteText(spaces)
607610

608611
def reset(self):
609-
self._dirty = False
612+
self._dirty = 0
610613

611614
def save(self, *args):
612615
self.store_position()
613616
if self.dirty and not self._data_validator.validate_and_update(
614617
self._data, self._editor.utf8_text):
615618
return False
619+
self.reset()
616620
self.GetFocus(None)
617621
return True
618622

@@ -621,9 +625,11 @@ def delete(self):
621625
if self._editor.GetSelectionStart() == self._editor.GetSelectionEnd():
622626
self._editor.CharRight()
623627
self._editor.DeleteBack()
628+
self._mark_file_dirty(self._editor.GetModify())
624629

625630
def cut(self):
626631
self._editor.Cut()
632+
self._mark_file_dirty(self._editor.GetModify())
627633

628634
def copy(self):
629635
self._editor.Copy()
@@ -634,17 +640,20 @@ def paste(self):
634640
self._editor.Paste()
635641
elif focus == self._search_field:
636642
self._search_field.Paste()
643+
self._mark_file_dirty(self._editor.GetModify())
637644

638645
def select_all(self):
639646
self._editor.SelectAll()
640647

641648
def undo(self):
642649
self._editor.Undo()
643650
self.store_position()
651+
self._mark_file_dirty(self._editor.GetModify())
644652

645653
def redo(self):
646654
self._editor.Redo()
647655
self.store_position()
656+
self._mark_file_dirty(self._editor.GetModify())
648657

649658
def remove_and_store_state(self):
650659
if self._editor:
@@ -685,9 +694,8 @@ def _revert(self):
685694
def OnEditorKey(self, event):
686695
if not self.is_focused(): # DEBUG was typing text when at Grid Editor
687696
return
688-
keycode = event.GetKeyCode()
689-
if (keycode >= ord(' ')) and not self.dirty and self._editor.GetModify():
690-
self._mark_file_dirty()
697+
# DEBUG keycode = event.GetKeyCode(); if (keycode >= ord(' ')) and
698+
self._mark_file_dirty(self._editor.GetModify())
691699
event.Skip()
692700

693701
def OnKeyDown(self, event):
@@ -828,10 +836,14 @@ def OnSettingsChanged(self, data):
828836
if setting == 'txt number of spaces':
829837
self._tab_size = self._parent._app.settings.get('txt number of spaces', 4)
830838

831-
def _mark_file_dirty(self):
839+
def _mark_file_dirty(self, dirty=True):
832840
if self._data:
833-
self._dirty = True
834-
self._data.mark_data_dirty()
841+
if dirty:
842+
self._data.mark_data_dirty()
843+
self._dirty = 1
844+
elif self._dirty == 1:
845+
self._data.mark_data_pristine()
846+
self._dirty = 0
835847

836848

837849
class RobotDataEditor(stc.StyledTextCtrl):

src/robotide/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,4 +14,4 @@
1414
# limitations under the License.
1515
#
1616
# Automatically generated by `tasks.py`.
17-
VERSION = 'v2.0b1'
17+
VERSION = 'v2.0b1.dev3'

0 commit comments

Comments
 (0)