[orca] Move speech generation of localized rolenames to the speech generator
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Move speech generation of localized rolenames to the speech generator
- Date: Thu, 23 Feb 2012 18:24:30 +0000 (UTC)
commit 1e66a7c5634db8c68aebf7e05bf9ad089f985f4d
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Thu Feb 23 13:23:56 2012 -0500
Move speech generation of localized rolenames to the speech generator
src/orca/bookmarks.py | 3 +-
src/orca/flat_review.py | 6 ++--
src/orca/rolenames.py | 14 -----------
src/orca/scripts/toolkits/Gecko/bookmarks.py | 3 +-
src/orca/scripts/toolkits/Gecko/script.py | 14 ++++++-----
.../scripts/toolkits/Gecko/speech_generator.py | 13 +++++-----
.../scripts/toolkits/WebKitGtk/speech_generator.py | 11 ++++-----
src/orca/speech_generator.py | 24 +++++++++++++++++--
8 files changed, 45 insertions(+), 43 deletions(-)
---
diff --git a/src/orca/bookmarks.py b/src/orca/bookmarks.py
index 3bdb437..b5929e1 100644
--- a/src/orca/bookmarks.py
+++ b/src/orca/bookmarks.py
@@ -22,7 +22,6 @@
import pickle
import os
-import rolenames
import speech
import settings
import orca_state
@@ -123,7 +122,7 @@ class Bookmarks:
p = cur_obj.parent
while p:
if bookmark_ancestors.count(p) > 0:
- rolename = rolenames.getSpeechForRoleName(p)
+ rolename = p.getLocalizedRoleName()
# Translators: this announces that the bookmark and the current
# object share a common ancestor
#
diff --git a/src/orca/flat_review.py b/src/orca/flat_review.py
index 54a9cf5..acd68d9 100644
--- a/src/orca/flat_review.py
+++ b/src/orca/flat_review.py
@@ -440,11 +440,11 @@ class ValueZone(Zone):
except:
percentValue = 0
+ rolename = self.accessible.getLocalizedRoleName()
if orientation:
- speechValue = orientation + " " + \
- rolenames.getSpeechForRoleName(self.accessible)
+ speechValue = orientation + " " + rolename
else:
- speechValue = rolenames.getSpeechForRoleName(self.accessible)
+ speechValue = rolename
# Translators: this is the percentage value of a slider,
# progress bar or other component that displays a value as
diff --git a/src/orca/rolenames.py b/src/orca/rolenames.py
index e2c8153..1a08161 100644
--- a/src/orca/rolenames.py
+++ b/src/orca/rolenames.py
@@ -1217,20 +1217,6 @@ def getLocalizedRoleName(obj, role=None):
return Atk.role_get_localized_name(atkRole)
-def getSpeechForRoleName(obj, role=None):
- """Returns the localized name of the given Accessible object; the name is
- suitable to be spoken. If a localized name cannot be discovered, this
- will return the string as defined by the at-spi.
-
- Arguments:
- - obj: an Accessible object
-
- Returns a string containing the localized name of the object suitable
- to be spoken.
- """
-
- return getLocalizedRoleName(obj, role)
-
def getShortBrailleForRoleName(obj, role=None):
"""Returns the localized name of the given Accessible object; the name is
a short string suitable for a Braille display. If a localized name cannot
diff --git a/src/orca/scripts/toolkits/Gecko/bookmarks.py b/src/orca/scripts/toolkits/Gecko/bookmarks.py
index 40eb8f8..8c33639 100644
--- a/src/orca/scripts/toolkits/Gecko/bookmarks.py
+++ b/src/orca/scripts/toolkits/Gecko/bookmarks.py
@@ -34,7 +34,6 @@ import urlparse
import orca.speech as speech
import orca.bookmarks as bookmarks
-import orca.rolenames as rolenames
from orca.orca_i18n import _
@@ -127,7 +126,7 @@ class GeckoBookmarks(bookmarks.Bookmarks):
p = cur_obj.parent
while p:
if bookmark_ancestors.count(p) > 0:
- rolename = rolenames.getSpeechForRoleName(p)
+ rolename = p.getLocalizedRoleName()
# Translators: this announces that the bookmark and the current
# object share a common ancestor
#
diff --git a/src/orca/scripts/toolkits/Gecko/script.py b/src/orca/scripts/toolkits/Gecko/script.py
index 904b418..9de0308 100644
--- a/src/orca/scripts/toolkits/Gecko/script.py
+++ b/src/orca/scripts/toolkits/Gecko/script.py
@@ -41,7 +41,6 @@ __date__ = "$Date$"
__copyright__ = "Copyright (c) 2010 Orca Team."
__license__ = "LGPL"
-from gi.repository import Atk
from gi.repository import Gtk
import pyatspi
import re
@@ -1438,7 +1437,8 @@ class Script(default.Script):
and event.source.getRole() in [pyatspi.ROLE_SCROLL_PANE,
pyatspi.ROLE_FRAME]:
utterances = []
- utterances.append(rolenames.getSpeechForRoleName(event.any_data))
+ utterances.append(
+ self.speechGenerator.getLocalizedRoleName(event.any_data))
verbosity = _settingsManager.getSetting('speechVerbosityLevel')
if verbosity == settings.VERBOSITY_LEVEL_VERBOSE:
utterances.extend(
@@ -1619,8 +1619,9 @@ class Script(default.Script):
linkText = text.getText(0, -1)
speech.speak(linkText, self.voices[settings.HYPERLINK_VOICE])
else:
- speech.speak(rolenames.getSpeechForRoleName(event.source),
- self.voices[settings.HYPERLINK_VOICE])
+ speech.speak(
+ self.speechGenerator.getLocalizedRoleName(event.source),
+ self.voices[settings.HYPERLINK_VOICE])
self.updateBraille(event.source)
@@ -1671,7 +1672,7 @@ class Script(default.Script):
keyEvent = orca_state.lastNonModifierKeyEvent
speakIt = (keyEvent.event_string == ("Down"))
if speakIt:
- speech.speak(rolenames.getSpeechForRoleName(\
+ speech.speak(self.speechGenerator.getLocalizedRoleName(\
event.source, pyatspi.ROLE_AUTOCOMPLETE))
# We care when the document frame changes it's busy state. That
@@ -1971,7 +1972,8 @@ class Script(default.Script):
if self.flatReviewContext:
self.toggleFlatReviewMode()
self.updateBraille(newLocusOfFocus)
- speech.speak(rolenames.getSpeechForRoleName(newLocusOfFocus))
+ speech.speak(
+ self.speechGenerator.getLocalizedRoleName(newLocusOfFocus))
return
default.Script.locusOfFocusChanged(self,
diff --git a/src/orca/scripts/toolkits/Gecko/speech_generator.py b/src/orca/scripts/toolkits/Gecko/speech_generator.py
index 2f48c92..864f066 100644
--- a/src/orca/scripts/toolkits/Gecko/speech_generator.py
+++ b/src/orca/scripts/toolkits/Gecko/speech_generator.py
@@ -33,7 +33,6 @@ __license__ = "LGPL"
import pyatspi
import orca.orca as orca
-import orca.rolenames as rolenames
import orca.speech_generator as speech_generator
from orca.orca_i18n import _
@@ -248,7 +247,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
link = self._script.utilities.ancestorWithRole(
obj, [pyatspi.ROLE_LINK], [pyatspi.ROLE_DOCUMENT_FRAME])
if link:
- result.append(rolenames.getSpeechForRoleName(link))
+ result.append(self.getLocalizedRoleName(link))
if role == pyatspi.ROLE_HEADING:
level = self._script.getHeadingLevel(obj)
@@ -259,12 +258,12 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# translated rolename for the heading.
#
result.append(_("%(role)s level %(level)d") % {
- 'role': rolenames.getSpeechForRoleName(obj, role),
+ 'role': self.getLocalizedRoleName(obj, role),
'level': level})
else:
- result.append(rolenames.getSpeechForRoleName(obj, role))
+ result.append(self.getLocalizedRoleName(obj, role))
else:
- result.append(rolenames.getSpeechForRoleName(obj, role))
+ result.append(self.getLocalizedRoleName(obj, role))
if result:
result.extend(acss)
@@ -275,7 +274,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# want to indicate that.
#
acss = self.voice(speech_generator.HYPERLINK)
- result.append(rolenames.getSpeechForRoleName(obj[0]))
+ result.append(self.getLocalizedRoleName(obj[0]))
result.extend(acss)
return result
@@ -425,7 +424,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
if not _settingsManager.getSetting('onlySpeakDisplayedText'):
acss = self.voice(speech_generator.SYSTEM)
if not (role in dontSpeakRoles) and len(newResult):
- roleInfo = rolenames.getSpeechForRoleName(parent)
+ roleInfo = self.getLocalizedRoleName(parent)
if roleInfo:
result.extend(acss)
result.append(roleInfo)
diff --git a/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py b/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
index 923c8fe..a9d781d 100644
--- a/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
+++ b/src/orca/scripts/toolkits/WebKitGtk/speech_generator.py
@@ -31,7 +31,6 @@ import pyatspi
import orca.keynames as keynames
import orca.orca as orca
-import orca.rolenames as rolenames
import orca.settings as settings
import orca.speech_generator as speech_generator
@@ -105,7 +104,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
link = self._script.utilities.ancestorWithRole(
obj, [pyatspi.ROLE_LINK], [pyatspi.ROLE_DOCUMENT_FRAME])
if link:
- result.append(rolenames.getSpeechForRoleName(link))
+ result.append(self.getLocalizedRoleName(link))
if role == pyatspi.ROLE_HEADING:
level = self._script.utilities.headingLevel(obj)
@@ -116,12 +115,12 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# translated rolename for the heading.
#
result.append(_("%(role)s level %(level)d") % {
- 'role': rolenames.getSpeechForRoleName(obj, role),
+ 'role': self.getLocalizedRoleName(obj, role),
'level': level})
else:
- result.append(rolenames.getSpeechForRoleName(obj, role))
+ result.append(self.getLocalizedRoleName(obj, role))
else:
- result.append(rolenames.getSpeechForRoleName(obj, role))
+ result.append(self.getLocalizedRoleName(obj, role))
if result:
result.extend(acss)
@@ -132,7 +131,7 @@ class SpeechGenerator(speech_generator.SpeechGenerator):
# want to indicate that.
#
acss = self.voice(speech_generator.HYPERLINK)
- result.append(rolenames.getSpeechForRoleName(obj[0]))
+ result.append(self.getLocalizedRoleName(obj[0]))
result.extend(acss)
return result
diff --git a/src/orca/speech_generator.py b/src/orca/speech_generator.py
index 1667215..a82a552 100644
--- a/src/orca/speech_generator.py
+++ b/src/orca/speech_generator.py
@@ -25,12 +25,12 @@ __date__ = "$Date:$"
__copyright__ = "Copyright (c) 2005-2009 Sun Microsystems Inc."
__license__ = "LGPL"
+import pyatspi
import urlparse, urllib2
+from gi.repository import Atspi, Atk
import generator
-import pyatspi
import orca
-import rolenames
import settings
import sound
import text_attribute_names
@@ -253,7 +253,7 @@ class SpeechGenerator(generator.Generator):
acss = self.voice(SYSTEM)
role = args.get('role', obj.getRole())
if (role != pyatspi.ROLE_UNKNOWN):
- result.append(rolenames.getSpeechForRoleName(obj, role))
+ result.append(self.getLocalizedRoleName(obj, role))
result.extend(acss)
return result
@@ -267,6 +267,24 @@ class SpeechGenerator(generator.Generator):
"""
return self._generateRoleName(obj, **args)
+ @staticmethod
+ def getLocalizedRoleName(obj, role=None):
+ """Returns the localized name of the given Accessible object; the name
+ is suitable to be spoken.
+
+ Arguments:
+ - obj: an Accessible object
+ - role: an optional pyatspi role to use instead
+ """
+
+ if not isinstance(role, pyatspi.Role):
+ return obj.getLocalizedRoleName()
+
+ nonlocalized = Atspi.role_get_name(role)
+ atkRole = Atk.role_for_name(nonlocalized)
+
+ return Atk.role_get_localized_name(atkRole)
+
def _generateUnrelatedLabels(self, obj, **args):
"""Returns, as an array of strings (and possibly voice
specifications), all the labels which are underneath the obj's
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]