[PATCH 04/16] Make TUI ready for getting spokes from multiple directories

Martin Sivak msivak at redhat.com
Thu Dec 6 15:46:27 UTC 2012


---
 pyanaconda/ui/tui/hubs/__init__.py   |  2 +-
 pyanaconda/ui/tui/spokes/__init__.py | 18 +++++++++++++-----
 2 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/pyanaconda/ui/tui/hubs/__init__.py b/pyanaconda/ui/tui/hubs/__init__.py
index b7dade1..0f505f7 100644
--- a/pyanaconda/ui/tui/hubs/__init__.py
+++ b/pyanaconda/ui/tui/hubs/__init__.py
@@ -52,7 +52,7 @@ class TUIHub(TUIObject, common.Hub):
 
         # look for spokes having category present in self.categories
         for c in self.categories:
-            spokes = collect_spokes(c)
+            spokes = collect_spokes([("pyanaconda.ui.tui.spokes.%s", os.path.join(os.path.dirname(__file__), "spokes"))], c)
 
             # sort them according to their priority
             for s in sorted(spokes, key = lambda s: s.priority):
diff --git a/pyanaconda/ui/tui/spokes/__init__.py b/pyanaconda/ui/tui/spokes/__init__.py
index a51a19e..1abe008 100644
--- a/pyanaconda/ui/tui/spokes/__init__.py
+++ b/pyanaconda/ui/tui/spokes/__init__.py
@@ -81,13 +81,21 @@ class NormalTUISpoke(TUISpoke, NormalSpoke):
 class PersonalizationTUISpoke(TUISpoke, PersonalizationSpoke):
     pass
 
-def collect_spokes(category):
+def collect_spokes(mask_paths, category):
     """Return a list of all spoke subclasses that should appear for a given
        category.
     """
-    return collect("pyanaconda.ui.tui.spokes.%s", os.path.dirname(__file__), lambda obj: hasattr(obj, "category") and obj.category != None and obj.category == category)
-
-def collect_categories():
-    classes = collect("pyanaconda.ui.tui.spokes.%s", os.path.dirname(__file__), lambda obj: hasattr(obj, "category") and obj.category != None and obj.category != "")
+    spokes = []
+    for mask, path in mask_paths:
+        spokes.extend(collect(mask, path, lambda obj: hasattr(obj, "category") and obj.category != None and obj.category == category))
+        
+    return spokes
+        
+def collect_categories(mask_paths):
+    classes = []
+    for mask, path in mask_paths:
+        classes.extend(collect(mask, path, lambda obj: hasattr(obj, "category") and obj.category != None and obj.category != ""))
+        
     categories = set([c.category for c in classes])
     return categories
+
-- 
1.7.11.7



More information about the anaconda-patches mailing list