[kupfer] data: Decorate inserted objects



commit 75a7ae713e7e4fb2cc02531eb92ddad8bc15b991
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date:   Wed Jan 6 02:03:16 2010 +0100

    data: Decorate inserted objects
    
    This makes sure we unite the way objects are "inserted" (by summoning,
    for example Ctrl+T, or by composition by Ctrl+Return): we always
    "decorate" the objects with content first if possible.

 kupfer/data.py |   12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)
---
diff --git a/kupfer/data.py b/kupfer/data.py
index 4ca9a89..d95bd43 100644
--- a/kupfer/data.py
+++ b/kupfer/data.py
@@ -1056,11 +1056,17 @@ class DataController (gobject.GObject, pretty.OutputMixin):
 		if res not in commandexec.RESULTS_SYNC:
 			self.emit("launched-action")
 
+	def _insert_object(self, pane, obj):
+		"Insert @obj in @pane: prepare the object, then emit pane-reset"
+		sc = GetSourceController()
+		sc.decorate_object(obj)
+		self.emit("pane-reset", pane, search.wrap_rankable(obj))
+
 	def _command_execution_result(self, ctx, result_type, ret):
 		if result_type == commandexec.RESULT_SOURCE:
 			self.source_pane.push_source(ret)
 		elif result_type == commandexec.RESULT_OBJECT:
-			self.emit("pane-reset", SourcePane, search.wrap_rankable(ret))
+			self._insert_object(SourcePane, ret)
 		else:
 			return
 		self.emit("command-result", result_type)
@@ -1071,7 +1077,7 @@ class DataController (gobject.GObject, pretty.OutputMixin):
 		qf = qfurl.qfurl(url=url)
 		found = qf.resolve_in_catalog(sc.sources)
 		if found and not found == self.source_pane.get_selection():
-			self.emit("pane-reset", SourcePane, search.wrap_rankable(found))
+			self._insert_object(SourcePane, found)
 
 	def compose_selection(self):
 		leaf = self.source_pane.get_selection()
@@ -1085,7 +1091,7 @@ class DataController (gobject.GObject, pretty.OutputMixin):
 		else:
 			iobj = None
 		obj = objects.ComposedLeaf(leaf, action, iobj)
-		self.emit("pane-reset", SourcePane, search.wrap_rankable(obj))
+		self._insert_object(SourcePane, obj)
 
 # pane cleared or set with new item
 # pane, item



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]