conduit r1888 - in trunk: . conduit/dataproviders conduit/gtkui



Author: jstowers
Date: Sat Feb 21 12:00:53 2009
New Revision: 1888
URL: http://svn.gnome.org/viewvc/conduit?rev=1888&view=rev

Log:
2009-02-22  John Stowers  <john stowers gmail com>

	* conduit/dataproviders/DataProvider.py:
	Remove hard dependency on Gtk by changing
	get_config_container to accept the class used to
	construct the container, along with the icon and name
	* conduit/gtkui/Canvas.py: Update to reflect
	API changes above.



Modified:
   trunk/ChangeLog
   trunk/conduit/dataproviders/DataProvider.py
   trunk/conduit/gtkui/Canvas.py

Modified: trunk/conduit/dataproviders/DataProvider.py
==============================================================================
--- trunk/conduit/dataproviders/DataProvider.py	(original)
+++ trunk/conduit/dataproviders/DataProvider.py	Sat Feb 21 12:00:53 2009
@@ -170,9 +170,15 @@
         else:
             return False
 
-    def get_config_container(self, configurator):
+    def get_config_container(self, configContainerKlass, name, icon, configurator):
         """
         Retrieves the configuration container
+        @param configContainerKlass: The class used to instantiate the graphical
+        configuration widget.
+        @param name: The name of the dataprovider being configured. Typically
+        used in the graphical config widget
+        @param icon: The icon of the dataprovider being configured. Typically
+        used in the graphical config widget
         @param configurator: The configurator object
         """
         # If the dataprovider is using the old system, returns None (a message
@@ -180,21 +186,20 @@
         if hasattr(self, "configure"):
             return None
         if not self.config_container:
-            #FIXME: GtkUI is hard-coded because we dont have another interface
-            # yet, but we could make it more modular (we already import it here
-            # not to depend on it on initialization)
-            import conduit.gtkui.ConfigContainer as ConfigContainer
-            self.config_container = ConfigContainer.ConfigContainer(self, configurator)
+            self.config_container = configContainerKlass(self, configurator)
+            self.config_container.name = name
+            self.config_container.icon = icon
             self.config_container.connect('apply', self.config_apply)
             self.config_container.connect('cancel', self.config_cancel)
             self.config_container.connect('show', self.config_show)
             self.config_container.connect('hide', self.config_hide)
             self.config_setup(self.config_container)
-            #FIXME: This is definetely just for debugging (it prints everything
+            # This is definetely just for debugging (it prints everything
             # that is changed in the configuration dialog)
-            #def print_item(config, item):
-            #    log.debug("%s: %s = %s" % (item.title, item.config_name, item.get_value()))
-            #self.config_container.connect("item-changed", print_item)
+            #self.config_container.connect(
+            #        "item-changed", 
+            #        lambda c, i: log.debug("%s: %s = %s" % (i.title, i.config_name, i.get_value()))
+            #)
         return self.config_container
     
     def config_setup(self, config_container):

Modified: trunk/conduit/gtkui/Canvas.py
==============================================================================
--- trunk/conduit/gtkui/Canvas.py	(original)
+++ trunk/conduit/gtkui/Canvas.py	Sat Feb 21 12:00:53 2009
@@ -23,6 +23,7 @@
 import conduit.gtkui.Util as GtkUtil
 import conduit.dataproviders.DataProvider as DataProvider
 import conduit.gtkui.WindowConfigurator as WindowConfigurator
+import conduit.gtkui.ConfigContainer as ConfigContainer
 
 log.info("Module Information: %s" % Utils.get_module_information(goocanvas, "pygoocanvas_version"))
 
@@ -361,14 +362,16 @@
             return 
         
         dps = []
-        for dp in selectedItem.model.get_all_dataproviders():
-            if not dp.module: 
+        for dpw in selectedItem.model.get_all_dataproviders():
+            if not dpw.module: 
                 continue
-            container = dp.module.get_config_container(self.configurator)
+            container = dpw.module.get_config_container(
+                                configContainerKlass=ConfigContainer.ConfigContainer,
+                                name=dpw.get_name(),
+                                icon=dpw.get_icon(),
+                                configurator=self.configurator
+            )
             if container:
-                #FIXME: Should be moved inside the container
-                container.icon = dp.get_icon()
-                container.name = dp.get_name()
                 dps.append(container)
         if dps:
             self.configurator.set_containers(dps)
@@ -661,11 +664,18 @@
             log.critical("%s using old configuration system" % dpw.get_name())
             dp.configure(self.parentWindow)
         else:
-            config_container = dp.get_config_container(self.configurator)
+            config_container = dp.get_config_container(
+                                configContainerKlass=ConfigContainer.ConfigContainer,
+                                name=dpw.get_name(),
+                                icon=dpw.get_icon(),
+                                configurator=self.configurator
+            )
             self.configurator.run(config_container)
+
         self._check_if_dataprovider_needs_configuration(
                 conduitCanvasItem.model,
-                dpw)
+                dpw
+        )
         self.selectedDataproviderItem.update_appearance()
 
     def on_refresh_dataprovider_clicked(self, widget):



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