[orca/new-settings] Some extra tweaks while debugging.



commit 70cdd62fb81c564bf034cfdbc474cda0a8364510
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date:   Sat Jul 24 15:44:53 2010 -0400

    Some extra tweaks while debugging.

 src/orca/backends/gconf_backend.py  |   23 ++++++++++++++++++++---
 src/orca/orca_gui_prefs.py          |   23 ++++++++++++++++++-----
 src/orca/settings_manager.py        |    1 +
 src/orca/speechdispatcherfactory.py |    5 +++++
 4 files changed, 44 insertions(+), 8 deletions(-)
---
diff --git a/src/orca/backends/gconf_backend.py b/src/orca/backends/gconf_backend.py
index 63fa9d8..46d373d 100644
--- a/src/orca/backends/gconf_backend.py
+++ b/src/orca/backends/gconf_backend.py
@@ -931,7 +931,11 @@ class OrcaPrefs():
         # as a result of this call.
         #
 
-        if not 'activeProfile' in self.prefsDict: self.prefsDict['activeProfile']='default'
+        # JD -> JH: Another sanity check: self.prefsDict['activeProfile']
+        # might exist with a value of None.
+        #
+        if not self.prefsDict.get('activeProfile'):
+            self.prefsDict['activeProfile'] = 'default'
 
         if self.prefsDict:
                 self._client.set_string('/apps/gnome-orca/activeProfile',self.prefsDict['activeProfile'])
@@ -1030,7 +1034,11 @@ class OrcaPrefs():
         # Load settings in userCustomizableSettings
         #
         for key in settings.userCustomizableSettings:
-            if key != 'voices' and key != 'speechServerFactory':
+            # JD -> JH: In OpenSolaris I was getting tracebacks due to some
+            # problem with the speechServerInfo. I haven't added handling 
+            # below. Just getting things working in the environment for now.
+            #
+            if key not in ['voices', 'speechServerFactory']:
                 #value = self._getValueForKey(self.settingsDict, key)
                 value = self.settingsDict[key]
                 if value != None:
@@ -1043,7 +1051,16 @@ class OrcaPrefs():
 
         # Load orca.settings.speechServerFactory and orca.settings.voices
         #
-        ssfLoad = "orca.settings.speechServerFactory = %s" % self.settingsDict['speechServerFactory']
+        factory = self.settingsDict.get('speechServerFactory')
+
+        # JD -> JH: In OpenSolaris I was getting tracebacks due to factory
+        # being None. I need to investigate further. I might have just
+        # borked something while testing. :-/ This is a just in case....
+        #
+        if not factory:
+            factory = settings.speechServerFactory
+
+        ssfLoad = "orca.settings.speechServerFactory = %s" % factory
         print 'speechServerFactory = ', ssfLoad
         exec(ssfLoad)
 
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index de5ebbf..508c617 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -850,6 +850,18 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
         box item.
         """
 
+        print "_setSpeechSystemsChoice, systemName is: %s" % systemName
+        # JD -> JH: We aren't expecting this string in quotes, yet we
+        # seem to be getting it that way from the gconf backend. That
+        # is causing the 'endswith(systemName)' test to fail. That in
+        # turn is resulting in our failing to find a match. I'm not
+        # suggesting this hack is the solution; I'm merely trying to
+        # make your hang go away. :-) If you comment this line, you
+        # should see the hang and the debug output -- assuming your
+        # active speech factory is speechdispatcherfactory.
+        #
+        systemName = systemName.strip("'")
+
         if len(self.speechSystemsChoices) == 0:
             self.speechSystemsChoice = None
             return
@@ -2166,11 +2178,12 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
             for profile in availableProfiles:
                 iterChilds.update({profile: self.profilesComboModel.append([profile])})
 
-        if 'activeProfile' in prefs:
-            activeProfile = prefs['activeProfile']
-        else: 
-            activeProfile = 'default'
-
+        # JD -> JH: It seems that 'activeProfile' is in prefs at this point
+        # but initially prefs['activeProfile'] == None, so it wasn't getting
+        # set to 'default'. That causes the symptoms Jose asked about on the
+        # list.
+        #
+        activeProfile = prefs.get('activeProfile') or 'default'
         activeProfileItem = int(self.profilesComboModel.get_string_from_iter(iterChilds[activeProfile]))
 
         # If not classic backend, show active profile
diff --git a/src/orca/settings_manager.py b/src/orca/settings_manager.py
index 2c45466..8e594c4 100644
--- a/src/orca/settings_manager.py
+++ b/src/orca/settings_manager.py
@@ -45,6 +45,7 @@ class SettingsManager(Singleton):
     # At the moment, DEFAULT_BACKEND can be established here
     # Possible values are: classic and gconf
     DEFAULT_BACKEND = 'gconf_backend'
+    #DEFAULT_BACKEND = 'classic'
 
     def __init__(self, backend = None):
         """Initialize a SettingsManager Object.
diff --git a/src/orca/speechdispatcherfactory.py b/src/orca/speechdispatcherfactory.py
index 3461a0d..d9293dd 100644
--- a/src/orca/speechdispatcherfactory.py
+++ b/src/orca/speechdispatcherfactory.py
@@ -122,8 +122,13 @@ class SpeechServer(speechserver.SpeechServer):
     getSpeechServer = staticmethod(getSpeechServer)
 
     def shutdownActiveServers():
+        print "speechdispatcherfactory.shutdownActiveServers"
+        if not SpeechServer._active_servers:
+            print "    HANG LIKELY: NO ACTIVE SERVERS TO SHUTDOWN"
         for server in SpeechServer._active_servers.values():
+            print "    server is", server
             server.shutdown()
+        print "shutdownActiveServers Completed"
     shutdownActiveServers = staticmethod(shutdownActiveServers)
 
     # *** Instance methods ***



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