[orca/570658] Allow the getting the rolename to be forced
- From: William Walker <wwalker src gnome org>
- To: svn-commits-list gnome org
- Subject: [orca/570658] Allow the getting the rolename to be forced
- Date: Thu, 21 May 2009 17:53:08 -0400 (EDT)
commit b46453b754a7999c68a1716166c205627122690e
Author: Willie Walker <william walker sun com>
Date: Thu May 21 17:51:27 2009 -0400
Allow the getting the rolename to be forced
---
.../scripts/toolkits/Gecko/speech_generator.py | 18 +++++++++++-------
src/orca/scripts/toolkits/Gecko/where_am_i.py | 10 ++++++----
src/orca/where_am_I.py | 19 ++++++++++---------
3 files changed, 27 insertions(+), 20 deletions(-)
diff --git a/src/orca/scripts/toolkits/Gecko/speech_generator.py b/src/orca/scripts/toolkits/Gecko/speech_generator.py
index f3028e8..f0aa590 100644
--- a/src/orca/scripts/toolkits/Gecko/speech_generator.py
+++ b/src/orca/scripts/toolkits/Gecko/speech_generator.py
@@ -172,6 +172,7 @@ class SpeechGenerator(speechgenerator.SpeechGenerator):
"""Prevents some roles from being spoken."""
result = []
role = args.get('role', obj.getRole())
+ force = args.get('force', False)
# Saying "menu item" for a combo box can confuse users. Therefore,
# speak the combo box role instead. Also, only do it if the menu
@@ -185,14 +186,17 @@ class SpeechGenerator(speechgenerator.SpeechGenerator):
if comboBox:
return self._getRoleName(comboBox, **args)
- doNotSpeak = [pyatspi.ROLE_FORM,
- pyatspi.ROLE_LABEL,
- pyatspi.ROLE_MENU_ITEM,
- pyatspi.ROLE_PARAGRAPH,
- pyatspi.ROLE_SECTION,
- pyatspi.ROLE_UNKNOWN]
+ if not force:
+ doNotSpeak = [pyatspi.ROLE_FORM,
+ pyatspi.ROLE_LABEL,
+ pyatspi.ROLE_MENU_ITEM,
+ pyatspi.ROLE_PARAGRAPH,
+ pyatspi.ROLE_SECTION,
+ pyatspi.ROLE_UNKNOWN]
+ else:
+ doNotSpeak = []
- if self._script.inDocumentContent(obj):
+ if not force and self._script.inDocumentContent(obj):
doNotSpeak.append(pyatspi.ROLE_TABLE_CELL)
if not self._script.isAriaWidget(obj):
doNotSpeak.append(pyatspi.ROLE_LIST_ITEM)
diff --git a/src/orca/scripts/toolkits/Gecko/where_am_i.py b/src/orca/scripts/toolkits/Gecko/where_am_i.py
index 2a7ebaa..d473d2b 100644
--- a/src/orca/scripts/toolkits/Gecko/where_am_i.py
+++ b/src/orca/scripts/toolkits/Gecko/where_am_i.py
@@ -83,14 +83,16 @@ class GeckoWhereAmI(where_am_I.WhereAmI):
and not self._script.isAriaWidget(orca_state.locusOfFocus)):
where_am_I.WhereAmI._speakDefaultButton(self, obj)
- def _getSpeechForRoleName(self, obj, role=None):
+ # pylint: disable-msg=W0142
+
+ def _getSpeechForRoleName(self, obj, **args):
"""Returns the rolename to be spoken for the object. Overridden
here because there are times when we do not want the speech
generator returning a role to speak (e.g. navigating within
a document), but other times when we would (e.g. during a
whereAmI).
"""
-
+ role = args.get('role', None)
objRole = obj.getRole()
if not role and objRole in [pyatspi.ROLE_DOCUMENT_FRAME,
pyatspi.ROLE_FORM,
@@ -100,8 +102,8 @@ class GeckoWhereAmI(where_am_I.WhereAmI):
pyatspi.ROLE_SECTION,
pyatspi.ROLE_TABLE_CELL]:
role = objRole
-
- return where_am_I.WhereAmI._getSpeechForRoleName(self, obj, role)
+ args['role'] = role
+ return where_am_I.WhereAmI._getSpeechForRoleName(self, obj, **args)
def _speakObjDescription(self, obj):
"""Speaks the object's description if it is not the same as the
diff --git a/src/orca/where_am_I.py b/src/orca/where_am_I.py
index e102291..abe3441 100644
--- a/src/orca/where_am_I.py
+++ b/src/orca/where_am_I.py
@@ -399,8 +399,8 @@ class WhereAmI:
"""
utterances = []
- text = self.getObjLabelAndName(obj.parent) + " " + \
- self._getSpeechForRoleName(obj.parent)
+ text = self.getObjLabelAndName(obj.parent) + " " \
+ + self._getSpeechForRoleName(obj.parent, force=True)
utterances.append(text.strip())
text = self.getObjLabelAndName(obj)
@@ -1154,19 +1154,20 @@ class WhereAmI:
return text.strip()
- def _getSpeechForRoleName(self, obj, role=None):
+ # pylint: disable-msg=W0142
+
+ def _getSpeechForRoleName(self, obj, **args):
"""Returns the rolename to be spoken for the object.
"""
try:
- if role:
- result = self._script.speechGenerator.getRoleName(obj,
- role=role)
- else:
- result = self._script.speechGenerator.getRoleName(obj)
+ result = self._script.speechGenerator.getRoleName(obj, **args)
if result:
result = result[0]
+ else:
+ result = ""
except:
+ debug.printException(debug.LEVEL_WARNING)
result = ""
return result
@@ -1369,7 +1370,7 @@ class WhereAmI:
break
if isToggle:
- text = self._getSpeechForRoleName(obj, pyatspi.ROLE_CHECK_BOX)
+ text = self._getSpeechForRoleName(obj, role=pyatspi.ROLE_CHECK_BOX)
text = text + " " + self._getCheckBoxState(obj)
else:
descendant = self._script.getRealActiveDescendant(obj)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]