Author: dmeyer
Date: Sat Feb  3 21:09:11 2007
New Revision: 9152

Modified:
   trunk/ui/src/mainmenu.py
   trunk/ui/src/menu/item.py
   trunk/ui/src/menu/plugin.py
   trunk/ui/src/plugin.py
   trunk/ui/src/plugins/mediamenu.py
   trunk/ui/src/tv/tvmenu.py

Log:
move some plugin logic around

Modified: trunk/ui/src/mainmenu.py
==============================================================================
--- trunk/ui/src/mainmenu.py    (original)
+++ trunk/ui/src/mainmenu.py    Sat Feb  3 21:09:11 2007
@@ -39,14 +39,12 @@
 import os
 
 # freevo imports
-import config
 import gui.theme
 import util
 import plugin
 
 from menu import Item, Action, Menu
 from application.menuw import MenuWidget
-from event import *
 
 
 class MainMenuItem(Item):
@@ -105,7 +103,7 @@
         """
         Item.__init__(self)
         items = []
-        for p in plugin.get('mainmenu'):
+        for p in plugin.MainMenuPlugin.plugins():
             items += p.items(self)
         menu = Menu(_('Freevo Main Menu'), items, type='main')
         menu.autoselect = True

Modified: trunk/ui/src/menu/item.py
==============================================================================
--- trunk/ui/src/menu/item.py   (original)
+++ trunk/ui/src/menu/item.py   Sat Feb  3 21:09:11 2007
@@ -43,8 +43,8 @@
 from kaa.weakref import weakref
 import kaa.beacon
 
-# freevo imports
-from freevo.ui import plugin
+# menu imports
+from plugin import ItemPlugin
 
 # get logging object
 log = logging.getLogger()
@@ -153,9 +153,7 @@
         # get actions defined by the item
         items = self.actions()
         # get actions defined by plugins
-        plugins = plugin.get('item') + plugin.get('item_%s' % self.type)
-        plugins.sort(lambda l, o: cmp(l._plugin_level, o._plugin_level))
-        for p in plugins:
+        for p in ItemPlugin.plugins(self.type):
             for a in p.actions(self):
                 # set item for the action
                 a.item = self
@@ -218,7 +216,7 @@
         Simple eventhandler for an item
         """
         # call eventhandler from plugins
-        for p in plugin.get('item') + plugin.get('item_%s' % self.type):
+        for p in ItemPlugin.plugins(self.type):
             if p.eventhandler(self, event):
                 return True
 

Modified: trunk/ui/src/menu/plugin.py
==============================================================================
--- trunk/ui/src/menu/plugin.py (original)
+++ trunk/ui/src/menu/plugin.py Sat Feb  3 21:09:11 2007
@@ -65,6 +65,20 @@
         return False
 
 
+    def plugins(subtype=''):
+        """
+        Static function to return all ItemPlugins.
+        """
+        plugins = plugin.get('item')[:]
+        if subtype:
+            plugins += plugin.get('item_%s' % subtype)
+        plugins.sort(lambda l, o: cmp(l._plugin_level, o._plugin_level))
+        return plugins
+
+    plugins = staticmethod(plugins)
+
+
+
 class MediaPlugin(plugin.Plugin):
     """
     Plugin class for medias handled in a directory/playlist.

Modified: trunk/ui/src/plugin.py
==============================================================================
--- trunk/ui/src/plugin.py      (original)
+++ trunk/ui/src/plugin.py      Sat Feb  3 21:09:11 2007
@@ -79,6 +79,16 @@
         return []
 
 
+    def plugins(subtype=''):
+        """
+        Static function to return all MainMenuPlugins.
+        """
+        if not subtype:
+            return get('mainmenu')
+        return get('mainmenu_%s' % subtype)
+
+    plugins = staticmethod(plugins)
+
 
 class PluginLoader(object):
     """

Modified: trunk/ui/src/plugins/mediamenu.py
==============================================================================
--- trunk/ui/src/plugins/mediamenu.py   (original)
+++ trunk/ui/src/plugins/mediamenu.py   Sat Feb  3 21:09:11 2007
@@ -43,7 +43,7 @@
 # freevo imports
 import freevo.conf
 
-from freevo.ui import plugin
+from freevo.ui.plugin import MainMenuPlugin
 from freevo.ui.event import EJECT
 from freevo.ui.directory import DirItem
 from freevo.ui.mainmenu import MainMenuItem
@@ -55,7 +55,7 @@
 log = logging.getLogger()
 
 
-class PluginInterface(plugin.MainMenuPlugin):
+class PluginInterface(MainMenuPlugin):
     """
     Plugin to integrate a mediamenu (video/audio/image/games) into
     the Freevo main menu. This plugin is auto-loaded when you activate
@@ -65,7 +65,7 @@
         if items is None:
             self.reason = 'No items defined for %s menu' % type
             return
-        plugin.MainMenuPlugin.__init__(self)
+        MainMenuPlugin.__init__(self)
         self._name = name
         self._type = type
         self._items = items
@@ -181,7 +181,7 @@
                                      type = self.display_type))
         # add all plugin data
         if self.display_type:
-            for p in plugin.get('mainmenu_%s' % self.display_type):
+            for p in MainMenuPlugin.plugins(self.display_type):
                 items += p.items( self )
 
         return items

Modified: trunk/ui/src/tv/tvmenu.py
==============================================================================
--- trunk/ui/src/tv/tvmenu.py   (original)
+++ trunk/ui/src/tv/tvmenu.py   Sat Feb  3 21:09:11 2007
@@ -86,7 +86,7 @@
         # items.append(menu.MenuItem(_('Search Guide'),
         # action=self.show_search))
 
-        plugins_list = plugin.get('mainmenu_tv')
+        plugins_list = plugin.MainMenuPlugin.plugins('tv')
         for p in plugins_list:
             items += p.items(self)
 

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier.
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Freevo-cvslog mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/freevo-cvslog

Reply via email to