[kupfer: 2/31] data: Add SourceController.get_canonical_source
- From: Ulrik Sverdrup <usverdrup src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [kupfer: 2/31] data: Add SourceController.get_canonical_source
- Date: Thu, 31 Dec 2009 12:54:37 +0000 (UTC)
commit 203a5d3c9d06d6e6081eca1b767cf504d6dfdc24
Author: Ulrik Sverdrup <ulrik sverdrup gmail com>
Date: Wed Dec 30 03:14:00 2009 +0100
data: Add SourceController.get_canonical_source
kupfer/data.py | 16 +++++++++++-----
1 files changed, 11 insertions(+), 5 deletions(-)
---
diff --git a/kupfer/data.py b/kupfer/data.py
index c8e93fc..73e61b3 100644
--- a/kupfer/data.py
+++ b/kupfer/data.py
@@ -376,6 +376,15 @@ class SourceController (pretty.OutputMixin):
firstlevel.add(s)
return objects.MultiSource(firstlevel)
+ def get_canonical_source(self, source):
+ "Return the canonical instance for @source"
+ # check if we already have source, then return that
+ if source in self:
+ return self[source]
+ else:
+ source.initialize()
+ return source
+
def get_contents_for_leaf(self, leaf, types=None):
"""Iterator of content sources for @leaf,
providing @types (or None for all)"""
@@ -387,8 +396,7 @@ class SourceController (pretty.OutputMixin):
if dsrc:
if types and not self.good_source_for_types(dsrc, types):
continue
- # check if we already have source, then return that
- yield self[dsrc] if (dsrc in self) else dsrc
+ yield self.get_canonical_source(dsrc)
def get_actions_for_leaf(self, leaf):
for typ in self.action_decorators:
@@ -513,9 +521,7 @@ class LeafPane (Pane, pretty.OutputMixin):
if it is already loaded we get it from there, else
returns @src"""
sc = GetSourceController()
- if src in sc:
- return sc[src]
- return src
+ return sc.get_canonical_source(src)
def get_source(self):
return self.source
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]