[kupfer] Post Rescanned sources as command results



commit 393ea89a4c812bbb483bbb7a9268205c12a71026
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date:   Tue Apr 6 20:58:05 2010 +0200

    Post Rescanned sources as command results

 kupfer/plugin/core/__init__.py |   12 ++++++++++--
 1 files changed, 10 insertions(+), 2 deletions(-)
---
diff --git a/kupfer/plugin/core/__init__.py b/kupfer/plugin/core/__init__.py
index 8db508f..e953b06 100644
--- a/kupfer/plugin/core/__init__.py
+++ b/kupfer/plugin/core/__init__.py
@@ -18,6 +18,7 @@ from kupfer.objects import Leaf, Action, Source
 from kupfer.obj.sources import MultiSource
 from kupfer import objects
 from kupfer.obj.base import InvalidLeafError
+from kupfer import commandexec
 from kupfer import interface
 from kupfer import pretty
 from kupfer import task
@@ -102,13 +103,19 @@ class CopyToClipboard (Action):
 
 
 class RescanActionTask(task.ThreadTask):
-	def __init__(self, source):
+	def __init__(self, source, async_token, retval):
 		task.ThreadTask.__init__(self)
 		self.source = source
+		self.async_token = async_token
+		self.retval = retval
 
 	def thread_do(self):
 		self.source.get_leaves(force_update=True)
 
+	def thread_finish(self):
+		ctx = commandexec.DefaultActionExecutionContext()
+		ctx.register_late_result(self.async_token, self.retval)
+
 
 class Rescan (Action):
 	"""A source action: Rescan a source!  """
@@ -120,7 +127,8 @@ class Rescan (Action):
 		if not leaf.has_content():
 			raise InvalidLeafError("Must have content")
 		source = leaf.content_source()
-		return RescanActionTask(source)
+		ctx = commandexec.DefaultActionExecutionContext()
+		return RescanActionTask(source, ctx.get_async_token(), leaf)
 
 	def is_async(self):
 		return True



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