[kupfer: 19/38] commatrick: Enable the "comma trick" even for the third pane
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 19/38] commatrick: Enable the "comma trick" even for the third pane
- Date: Sat, 16 Jan 2010 17:13:23 +0000 (UTC)
commit 1d351541a48a43121f556580ecfc4ebfc217ccc9
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Fri Jan 15 17:53:41 2010 +0100
commatrick: Enable the "comma trick" even for the third pane
kupfer/core/data.py | 41 ++++++++++++++++++++++++++---------------
1 files changed, 26 insertions(+), 15 deletions(-)
---
diff --git a/kupfer/core/data.py b/kupfer/core/data.py
index 509ca8d..1dd89b9 100644
--- a/kupfer/core/data.py
+++ b/kupfer/core/data.py
@@ -644,6 +644,7 @@ class DataController (gobject.GObject, pretty.OutputMixin):
elif pane is ActionPane:
assert not item or isinstance(item, base.Action), \
"Selection in Source pane is not an Action!"
+ self.object_stack_clear(ObjectPane)
if item and item.requires_object():
newmode = SourceActionObjectMode
else:
@@ -782,26 +783,35 @@ class DataController (gobject.GObject, pretty.OutputMixin):
iobjects = None
return (objects, action, iobjects)
+ def _has_object_stack(self, pane):
+ return pane in (SourcePane, ObjectPane)
+
def object_stack_push(self, pane, object_):
"""
Push @object_ onto the stack
"""
- if pane == SourcePane:
- self.source_pane.object_stack_push(object_)
- self.emit("object-stack-changed", SourcePane)
- return True
+ if not self._has_object_stack(pane):
+ return
+ panectl = self._panectl_table[pane]
+ panectl.object_stack_push(object_)
+ self.emit("object-stack-changed", pane)
+ return True
def object_stack_pop(self, pane):
- if pane == SourcePane:
- obj = self.source_pane.object_stack_pop()
- self._insert_object(SourcePane, obj)
- self.emit("object-stack-changed", SourcePane)
- return True
+ if not self._has_object_stack(pane):
+ return
+ panectl = self._panectl_table[pane]
+ obj = panectl.object_stack_pop()
+ self._insert_object(pane, obj)
+ self.emit("object-stack-changed", pane)
+ return True
def object_stack_clear(self, pane):
- if pane == SourcePane:
- self.source_pane.object_stack[:] = []
- self.emit("object-stack-changed", SourcePane)
+ if not self._has_object_stack(pane):
+ return
+ panectl = self._panectl_table[pane]
+ panectl.object_stack[:] = []
+ self.emit("object-stack-changed", pane)
def object_stack_clear_all(self):
"""
@@ -811,9 +821,10 @@ class DataController (gobject.GObject, pretty.OutputMixin):
self.object_stack_clear(pane)
def get_object_stack(self, pane):
- if pane == SourcePane:
- return self.source_pane.object_stack
- return ()
+ if not self._has_object_stack(pane):
+ return ()
+ panectl = self._panectl_table[pane]
+ return panectl.object_stack
# pane cleared or set with new item
# pane, item
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]