[pitivi] undo: Use is_in_transaction to simplify signals
- From: Alexandru Băluț <alexbalut src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] undo: Use is_in_transaction to simplify signals
- Date: Sat, 16 Apr 2016 14:23:56 +0000 (UTC)
commit ecd0ad021ad714fc17e2e18dcf8d181f2d394711
Author: Alexandru Băluț <alexandru balut gmail com>
Date: Sun Apr 3 05:23:57 2016 +0200
undo: Use is_in_transaction to simplify signals
The passed "nested" value was used in a single place actually.
It's more clear to query directly the action log.
Differential Revision: https://phabricator.freedesktop.org/D857
pitivi/application.py | 4 +-
pitivi/undo/undo.py | 26 ++++++++-----------
tests/test_undo.py | 56 +++++++++++++++++++++---------------------
tests/test_undo_timeline.py | 2 +-
4 files changed, 42 insertions(+), 46 deletions(-)
---
diff --git a/pitivi/application.py b/pitivi/application.py
index eb9a699..511569c 100644
--- a/pitivi/application.py
+++ b/pitivi/application.py
@@ -352,8 +352,8 @@ class Pitivi(Gtk.Application, Loggable):
def _redoCb(self, unused_action, unused_param):
self.action_log.redo()
- def _actionLogCommit(self, action_log, unused_stack, nested):
- if nested:
+ def _actionLogCommit(self, action_log, unused_stack):
+ if action_log.is_in_transaction():
return
self._syncDoUndo(action_log)
diff --git a/pitivi/undo/undo.py b/pitivi/undo/undo.py
index 824073b..5d31321 100644
--- a/pitivi/undo/undo.py
+++ b/pitivi/undo/undo.py
@@ -143,10 +143,10 @@ class UndoableActionLog(GObject.Object, Loggable):
only one instance of it in Pitivi: application.py's "action_log" property.
"""
__gsignals__ = {
- "begin": (GObject.SIGNAL_RUN_LAST, None, (object, bool)),
+ "begin": (GObject.SIGNAL_RUN_LAST, None, (object,)),
"push": (GObject.SIGNAL_RUN_LAST, None, (object, object)),
- "rollback": (GObject.SIGNAL_RUN_LAST, None, (object, bool)),
- "commit": (GObject.SIGNAL_RUN_LAST, None, (object, bool)),
+ "rollback": (GObject.SIGNAL_RUN_LAST, None, (object,)),
+ "commit": (GObject.SIGNAL_RUN_LAST, None, (object,)),
"undo": (GObject.SIGNAL_RUN_LAST, None, (object,)),
"redo": (GObject.SIGNAL_RUN_LAST, None, (object,)),
"cleaned": (GObject.SIGNAL_RUN_LAST, None, ()),
@@ -167,17 +167,15 @@ class UndoableActionLog(GObject.Object, Loggable):
self._checkpoint = self._takeSnapshot()
def begin(self, action_group_name, finalizing_action=None):
- self.debug("Beginning %s", action_group_name)
if self.running:
self.debug("Abort because already running")
return
stack = UndoableActionStack(action_group_name, finalizing_action)
- nested = self._stackIsNested(stack)
self.stacks.append(stack)
self.debug("begin action group %s, nested %s",
- stack.action_group_name, nested)
- self.emit("begin", stack, nested)
+ stack.action_group_name, len(self.stacks))
+ self.emit("begin", stack)
def push(self, action):
self.debug("Pushing %s", action)
@@ -213,10 +211,9 @@ class UndoableActionLog(GObject.Object, Loggable):
stack = self._getTopmostStack(pop=True)
if stack is None:
return
- nested = self._stackIsNested(stack)
self.debug("rollback action group %s, nested %s",
- stack.action_group_name, nested)
- self.emit("rollback", stack, nested)
+ stack.action_group_name, len(self.stacks))
+ self.emit("rollback", stack)
stack.undo()
def commit(self):
@@ -228,7 +225,6 @@ class UndoableActionLog(GObject.Object, Loggable):
stack = self._getTopmostStack(pop=True)
if stack is None:
return
- nested = self._stackIsNested(stack)
if not self.stacks:
self.undo_stacks.append(stack)
else:
@@ -238,8 +234,8 @@ class UndoableActionLog(GObject.Object, Loggable):
self.redo_stacks = []
self.debug("commit action group %s nested %s",
- stack.action_group_name, nested)
- self.emit("commit", stack, nested)
+ stack.action_group_name, len(self.stacks))
+ self.emit("commit", stack)
def undo(self):
if self.stacks or not self.undo_stacks:
@@ -300,8 +296,8 @@ class UndoableActionLog(GObject.Object, Loggable):
return stack
- def _stackIsNested(self, unused_stack):
- return bool(len(self.stacks))
+ def is_in_transaction(self):
+ return bool(self.stacks)
class PropertyChangeTracker(GObject.Object):
diff --git a/tests/test_undo.py b/tests/test_undo.py
index 8b40234..c5d6061 100644
--- a/tests/test_undo.py
+++ b/tests/test_undo.py
@@ -225,16 +225,16 @@ class TestUndoableActionLog(TestCase):
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.begin("meh")
self.assertEqual(len(self.signals), 1)
- name, (stack, nested) = self.signals[0]
+ name, (stack,) = self.signals[0]
self.assertEqual(name, "begin")
- self.assertFalse(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.assertEqual(self.log.undo_stacks, [])
self.log.commit()
self.assertEqual(len(self.signals), 2)
- name, (stack, nested) = self.signals[1]
+ name, (stack,) = self.signals[1]
self.assertEqual(name, "commit")
- self.assertFalse(nested)
+ self.assertFalse(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 1)
self.assertEqual(len(self.log.redo_stacks), 0)
@@ -246,33 +246,33 @@ class TestUndoableActionLog(TestCase):
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.begin("meh")
self.assertEqual(len(self.signals), 1)
- name, (stack, nested) = self.signals[0]
+ name, (stack,) = self.signals[0]
self.assertEqual(name, "begin")
- self.assertFalse(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 0)
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.begin("nested")
self.assertEqual(len(self.signals), 2)
- name, (stack, nested) = self.signals[1]
+ name, (stack,) = self.signals[1]
self.assertEqual(name, "begin")
- self.assertTrue(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.assertEqual(self.log.undo_stacks, [])
self.log.commit()
self.assertEqual(len(self.signals), 3)
- name, (stack, nested) = self.signals[2]
+ name, (stack,) = self.signals[2]
self.assertEqual(name, "commit")
- self.assertTrue(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 0)
self.assertEqual(len(self.log.redo_stacks), 0)
self.assertEqual(self.log.undo_stacks, [])
self.log.commit()
self.assertEqual(len(self.signals), 4)
- name, (stack, nested) = self.signals[3]
+ name, (stack,) = self.signals[3]
self.assertEqual(name, "commit")
- self.assertFalse(nested)
+ self.assertFalse(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 1)
self.assertEqual(len(self.log.redo_stacks), 0)
@@ -284,15 +284,15 @@ class TestUndoableActionLog(TestCase):
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.begin("meh")
self.assertEqual(len(self.signals), 1)
- name, (stack, nested) = self.signals[0]
+ name, (stack,) = self.signals[0]
self.assertEqual(name, "begin")
- self.assertFalse(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.log.rollback()
self.assertEqual(len(self.signals), 2)
- name, (stack, nested) = self.signals[1]
+ name, (stack,) = self.signals[1]
self.assertEqual(name, "rollback")
- self.assertFalse(nested)
+ self.assertFalse(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 0)
self.assertEqual(len(self.log.redo_stacks), 0)
@@ -304,31 +304,31 @@ class TestUndoableActionLog(TestCase):
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.begin("meh")
self.assertEqual(len(self.signals), 1)
- name, (stack, nested) = self.signals[0]
+ name, (stack,) = self.signals[0]
self.assertEqual(name, "begin")
- self.assertFalse(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 0)
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.begin("nested")
self.assertEqual(len(self.signals), 2)
- name, (stack, nested) = self.signals[1]
+ name, (stack,) = self.signals[1]
self.assertEqual(name, "begin")
- self.assertTrue(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.log.rollback()
self.assertEqual(len(self.signals), 3)
- name, (stack, nested) = self.signals[2]
+ name, (stack,) = self.signals[2]
self.assertEqual(name, "rollback")
- self.assertTrue(nested)
+ self.assertTrue(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 0)
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.rollback()
self.assertEqual(len(self.signals), 4)
- name, (stack, nested) = self.signals[3]
+ name, (stack,) = self.signals[3]
self.assertEqual(name, "rollback")
- self.assertFalse(nested)
+ self.assertFalse(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 0)
self.assertEqual(len(self.log.redo_stacks), 0)
@@ -339,9 +339,9 @@ class TestUndoableActionLog(TestCase):
# begin
self.log.begin("meh")
self.assertEqual(len(self.signals), 1)
- name, (stack, nested) = self.signals[0]
+ name, (stack,) = self.signals[0]
self.assertEqual(name, "begin")
- self.assertFalse(nested)
+ self.assertTrue(self.log.is_in_transaction())
# push two actions
action1 = DummyUndoableAction()
@@ -363,9 +363,9 @@ class TestUndoableActionLog(TestCase):
self.assertEqual(len(self.log.redo_stacks), 0)
self.log.commit()
self.assertEqual(len(self.signals), 4)
- name, (stack, nested) = self.signals[3]
+ name, (stack,) = self.signals[3]
self.assertEqual(name, "commit")
- self.assertFalse(nested)
+ self.assertFalse(self.log.is_in_transaction())
self.assertEqual(len(self.log.undo_stacks), 1)
self.assertEqual(len(self.log.redo_stacks), 0)
diff --git a/tests/test_undo_timeline.py b/tests/test_undo_timeline.py
index 832773d..7f0d971 100644
--- a/tests/test_undo_timeline.py
+++ b/tests/test_undo_timeline.py
@@ -121,7 +121,7 @@ class TestTimelineUndo(TestCase):
yield clip
@staticmethod
- def commitCb(action_log, stack, nested, stacks):
+ def commitCb(action_log, stack, stacks):
stacks.append(stack)
def testAddClip(self):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]