[meld] Move buffer undo helpers to meldbuffer
- From: Kai Willadsen <kaiw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [meld] Move buffer undo helpers to meldbuffer
- Date: Sat, 5 May 2012 21:20:31 +0000 (UTC)
commit 58815911389517740786c95d8ab986f826fa60b0
Author: Kai Willadsen <kai willadsen gmail com>
Date: Wed Sep 28 13:04:49 2011 +1000
Move buffer undo helpers to meldbuffer
meld/filediff.py | 33 ++-------------------------------
meld/meldbuffer.py | 27 +++++++++++++++++++++++++++
2 files changed, 29 insertions(+), 31 deletions(-)
---
diff --git a/meld/filediff.py b/meld/filediff.py
index a6c910d..b68f301 100644
--- a/meld/filediff.py
+++ b/meld/filediff.py
@@ -757,7 +757,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
def on_text_insert_text(self, buf, it, text, textlen):
text = unicode(text, 'utf8')
self.undosequence.add_action(
- BufferInsertionAction(buf, it.get_offset(), text))
+ meldbuffer.BufferInsertionAction(buf, it.get_offset(), text))
buf.create_mark("insertion-start", it, True)
def on_text_delete_range(self, buf, it0, it1):
@@ -765,7 +765,7 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
assert self.deleted_lines_pending == -1
self.deleted_lines_pending = it1.get_line() - it0.get_line()
self.undosequence.add_action(
- BufferDeletionAction(buf, it0.get_offset(), text))
+ meldbuffer.BufferDeletionAction(buf, it0.get_offset(), text))
def on_undo_checkpointed(self, undosequence, buf, checkpointed):
self.set_buffer_modified(buf, not checkpointed)
@@ -1620,32 +1620,3 @@ class FileDiff(melddoc.MeldDoc, gnomeglade.Component):
anim = TextviewLineAnimation(mark0, mark1, rgba0, rgba1, 0.5)
self.animating_chunks[src].append(anim)
-
-
-
-class BufferAction(object):
- """A helper to undo/redo text insertion/deletion into/from a text buffer"""
-
- def __init__(self, buf, offset, text):
- self.buffer = buf
- self.offset = offset
- self.text = text
-
- def delete(self):
- start = self.buffer.get_iter_at_offset(self.offset)
- end = self.buffer.get_iter_at_offset(self.offset + len(self.text))
- self.buffer.delete(start, end)
-
- def insert(self):
- start = self.buffer.get_iter_at_offset(self.offset)
- self.buffer.insert(start, self.text)
-
-
-class BufferInsertionAction(BufferAction):
- undo = BufferAction.delete
- redo = BufferAction.insert
-
-
-class BufferDeletionAction(BufferAction):
- undo = BufferAction.insert
- redo = BufferAction.delete
diff --git a/meld/meldbuffer.py b/meld/meldbuffer.py
index fb1a35d..3e19bfa 100644
--- a/meld/meldbuffer.py
+++ b/meld/meldbuffer.py
@@ -138,3 +138,30 @@ class BufferLines(object):
def __len__(self):
return self.buf.get_line_count()
+
+class BufferAction(object):
+ """A helper to undo/redo text insertion/deletion into/from a text buffer"""
+
+ def __init__(self, buf, offset, text):
+ self.buffer = buf
+ self.offset = offset
+ self.text = text
+
+ def delete(self):
+ start = self.buffer.get_iter_at_offset(self.offset)
+ end = self.buffer.get_iter_at_offset(self.offset + len(self.text))
+ self.buffer.delete(start, end)
+
+ def insert(self):
+ start = self.buffer.get_iter_at_offset(self.offset)
+ self.buffer.insert(start, self.text)
+
+
+class BufferInsertionAction(BufferAction):
+ undo = BufferAction.delete
+ redo = BufferAction.insert
+
+
+class BufferDeletionAction(BufferAction):
+ undo = BufferAction.insert
+ redo = BufferAction.delete
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]