[orca/orca-gnome3: 10/87] Trying to enable/disable chat plugin features



commit 106e08fc31271baf5a795d2e02783e36e075987a
Author: José Ignacio �lvarez Ruiz <jialvarez emergya es>
Date:   Sun Feb 20 22:49:13 2011 +0100

    Trying to enable/disable chat plugin features

 src/orca/baseplugins/Makefile.am |    3 ++-
 src/orca/script_manager.py       |   20 ++++++++++++++++++++
 src/orca/settings_manager.py     |    7 +++++++
 3 files changed, 29 insertions(+), 1 deletions(-)
---
diff --git a/src/orca/baseplugins/Makefile.am b/src/orca/baseplugins/Makefile.am
index 6a633f4..53a77a9 100644
--- a/src/orca/baseplugins/Makefile.am
+++ b/src/orca/baseplugins/Makefile.am
@@ -1,7 +1,8 @@
 orca_pathdir=$(pyexecdir)
 
 orca_python_PYTHON = \
-        test.py
+        test.py \
+		chat.py
 
 orca_pythondir=$(pyexecdir)/orca/baseplugins
 
diff --git a/src/orca/script_manager.py b/src/orca/script_manager.py
index 933a865..7ec8061 100644
--- a/src/orca/script_manager.py
+++ b/src/orca/script_manager.py
@@ -27,6 +27,7 @@ __license__   = "LGPL"
 import debug
 import orca
 import orca_state
+from chat import Chat
 
 from scripts import apps, toolkits
 
@@ -126,6 +127,8 @@ class ScriptManager:
         if not (app and name):
             return None
 
+	    appScript = self.scripts.get(app, self.getDefaultScript())
+
         script = None
         for package in self._scriptPackages:
             moduleName = '.'.join((package, name))
@@ -150,6 +153,20 @@ class ScriptManager:
                 debug.println(
                     debug.LEVEL_SEVERE, "Could not load %s.py" % moduleName)
 
+            try:
+   	            isChat = script.getChat()
+            except:
+                debug.println(
+                    debug.LEVEL_FINE, "This not a chat plugin")
+            else:
+                print "isChat: " + str(isChat)
+                print "plugin state: " + str(_settingsManager.getPluginState('chat'))
+                if isChat and not _settingsManager.getPluginState('chat'):
+            	    script = None
+                    return None
+
+    	print script
+
         return script
 
     def _createScript(self, app, obj=None):
@@ -157,11 +174,13 @@ class ScriptManager:
 
         objToolkit = self._toolkitForObject(obj)
         script = self._newNamedScript(app, objToolkit)
+
         if script:
             return script
 
         moduleName = self.getModuleName(app)
         script = self._newNamedScript(app, moduleName)
+
         if script:
             return script
 
@@ -211,6 +230,7 @@ class ScriptManager:
                 # Only defer to the toolkit script for this object if the
                 # app script is based on a different toolkit.
                 appScript = self.scripts.get(app, self.getDefaultScript())
+		
                 if issubclass(appScript.__class__, script.__class__):
                     script = appScript
                 return script
diff --git a/src/orca/settings_manager.py b/src/orca/settings_manager.py
index 7c2e8a2..0a5539d 100644
--- a/src/orca/settings_manager.py
+++ b/src/orca/settings_manager.py
@@ -317,6 +317,13 @@ class SettingsManager(object):
         except:
             return False
 
+    def getPluginState(self, plugin_name):
+        try:
+            return gconfClient.get_bool(
+                "/apps/orca/plugins/"+str(plugin_name)+"/enable")
+        except:
+            return False
+
     def setStartingProfile(self, profile=None):
         if profile is None:
             profile = settings.profile



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