[orca] Separate space out from other "action" keys for the purpose of key echo
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Separate space out from other "action" keys for the purpose of key echo
- Date: Tue, 10 Nov 2015 09:05:20 +0000 (UTC)
commit 9212608b54998c424ab36efb677c261887e58aef
Author: Joanmarie Diggs <jdiggs igalia com>
Date: Tue Nov 10 04:03:15 2015 -0500
Separate space out from other "action" keys for the purpose of key echo
help/C/howto_text_setup.page | 11 +++++++++--
help/C/preferences_key_echo.page | 14 ++++++++++++--
src/orca/input_event.py | 14 +++++++++++++-
src/orca/messages.py | 5 +++++
src/orca/orca-setup.ui | 29 ++++++++++++++++++++++++-----
src/orca/orca_console_prefs.py | 16 ++++++++++++++++
src/orca/orca_gui_prefs.py | 3 +++
src/orca/settings.py | 2 ++
8 files changed, 84 insertions(+), 10 deletions(-)
---
diff --git a/help/C/howto_text_setup.page b/help/C/howto_text_setup.page
index 50f0050..56933da 100644
--- a/help/C/howto_text_setup.page
+++ b/help/C/howto_text_setup.page
@@ -106,6 +106,13 @@
</p>
</item>
<item>
+ <p>space</p>
+ <p>
+ This option controls whether or not <key>space</key> should
+ be spoken when pressed.
+ </p>
+ </item>
+ <item>
<p>modifier keys</p>
<p>
This option controls whether or not <key>Shift</key>, <key>Ctrl</key>,
@@ -130,8 +137,8 @@
<p>action keys</p>
<p>
This option controls whether or not <key>BackSpace</key>,
- <key>Delete</key>, <key>Return</key>, <key>Space</key>,
- <key>Tab</key>, <key>Escape</key>, <key>Page Up</key>, <key>Page Down</key>,
+ <key>Delete</key>, <key>Return</key>, <key>Escape</key>,
+ <key>Tab</key>, <key>Page Up</key>, <key>Page Down</key>,
<key>Home</key>, and <key>End</key> should be spoken when
pressed.
</p>
diff --git a/help/C/preferences_key_echo.page b/help/C/preferences_key_echo.page
index 1de5ab5..573e126 100644
--- a/help/C/preferences_key_echo.page
+++ b/help/C/preferences_key_echo.page
@@ -59,6 +59,16 @@
</p>
</section>
<section>
+ <title>Enable space</title>
+ <p>
+ This option controls whether or not <key>space</key> should be
+ spoken when pressed.
+ </p>
+ <p>
+ Default value: checked
+ </p>
+ </section>
+ <section>
<title>Enable modifier keys</title>
<p>
This option controls whether or not <key>Shift</key>, <key>Ctrl</key>,
@@ -82,8 +92,8 @@
<title>Enable action keys</title>
<p>
This option controls whether or not <key>BackSpace</key>, <key>Delete
- </key>, <key>Return</key>, <key>Space</key>, <key>Tab</key>, <key>Escape</key>
- <key>Page Up</key>, <key>Page Down</key>, <key>Home</key>, and <key>End</key>
+ </key>, <key>Return</key>, <key>Escape</key>, <key>Tab</key>, <key>Page
+ Up</key>, <key>Page Down</key>, <key>Home</key>, and <key>End</key>
should be spoken when pressed.
</p>
<p>
diff --git a/src/orca/input_event.py b/src/orca/input_event.py
index f2f10b7..74cea40 100644
--- a/src/orca/input_event.py
+++ b/src/orca/input_event.py
@@ -111,6 +111,7 @@ class KeyboardEvent(InputEvent):
TYPE_ALPHABETIC = "alphabetic"
TYPE_NUMERIC = "numeric"
TYPE_PUNCTUATION = "punctuation"
+ TYPE_SPACE = "space"
def __init__(self, event):
"""Creates a new InputEvent of type KEYBOARD_EVENT.
@@ -187,6 +188,9 @@ class KeyboardEvent(InputEvent):
elif self.isPunctuationKey():
self.keyType = KeyboardEvent.TYPE_PUNCTUATION
self.shouldEcho = settings.enablePunctuationKeys or settings.enableEchoByCharacter
+ elif self.isSpace():
+ self.keyType = KeyboardEvent.TYPE_SPACE
+ self.shouldEcho = settings.enableSpace or settings.enableEchoByCharacter
else:
self.keyType = KeyboardEvent.TYPE_UNKNOWN
self.shouldEcho = False
@@ -235,7 +239,7 @@ class KeyboardEvent(InputEvent):
return self.event_string in \
["Return", "Escape", "Tab", "BackSpace", "Delete",
- "Page_Up", "Page_Down", "space", " "]
+ "Page_Up", "Page_Down"]
def isAlphabeticKey(self):
"""Return True if this is an alphabetic key."""
@@ -360,6 +364,14 @@ class KeyboardEvent(InputEvent):
return self.event_string.isprintable() and not self.event_string.isspace()
+ def isSpace(self):
+ """Return True if this is the space key."""
+
+ if self.keyType:
+ return self.keyType == KeyboardEvent.TYPE_SPACE
+
+ return self.event_string in ["space", " "]
+
def isCharacterEchoable(self):
"""Returns True if the script will echo this event as part of
character echo. We do this to not double-echo a given printable
diff --git a/src/orca/messages.py b/src/orca/messages.py
index 21e52fa..1aad633 100644
--- a/src/orca/messages.py
+++ b/src/orca/messages.py
@@ -389,6 +389,11 @@ CONSOLE_SETUP_ENABLE_ECHO_NUMERIC_KEYS = \
CONSOLE_SETUP_ENABLE_ECHO_PUNCTUATION_KEYS = \
_("Enable punctuation keys? Enter y or n: ")
+# Translators: This is in reference to key echo for the space key and
+# is part of Orca's console-based setup.
+CONSOLE_SETUP_ENABLE_SPACE = \
+ _("Enable space? Enter y or n: ")
+
# Translators: This is in reference to key echo for keys such as CTRL, ALT,
# Shift, Insert, etc. It is part of Orca's console-based setup.
CONSOLE_SETUP_ENABLE_ECHO_MODIFIER_KEYS = \
diff --git a/src/orca/orca-setup.ui b/src/orca/orca-setup.ui
index 2a9dc94..65b15a7 100644
--- a/src/orca/orca-setup.ui
+++ b/src/orca/orca-setup.ui
@@ -2437,6 +2437,25 @@
</packing>
</child>
<child>
+ <object class="GtkCheckButton" id="enableSpaceCheckButton">
+ <property name="label" translatable="yes">Enable _space</property>
+ <property name="use_action_appearance">False</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_action_appearance">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ <signal name="toggled" handler="checkButtonToggled" swapped="no"/>
+ </object>
+ <packing>
+ <property name="left_attach">0</property>
+ <property name="top_attach">3</property>
+ <property name="width">1</property>
+ <property name="height">1</property>
+ </packing>
+ </child>
+ <child>
<object class="GtkCheckButton" id="enableModifierKeysCheckButton">
<property name="label" translatable="yes">Enable _modifier keys</property>
<property name="use_action_appearance">False</property>
@@ -2450,7 +2469,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">3</property>
+ <property name="top_attach">4</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -2469,7 +2488,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">4</property>
+ <property name="top_attach">5</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -2488,7 +2507,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">5</property>
+ <property name="top_attach">6</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -2507,7 +2526,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">6</property>
+ <property name="top_attach">7</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
@@ -2526,7 +2545,7 @@
</object>
<packing>
<property name="left_attach">0</property>
- <property name="top_attach">7</property>
+ <property name="top_attach">8</property>
<property name="width">1</property>
<property name="height">1</property>
</packing>
diff --git a/src/orca/orca_console_prefs.py b/src/orca/orca_console_prefs.py
index 62649d2..900318b 100644
--- a/src/orca/orca_console_prefs.py
+++ b/src/orca/orca_console_prefs.py
@@ -277,6 +277,7 @@ def setupSpeech(prefsDict):
prefsDict["enableAlphabeticKeys"] = False
prefsDict["enableNumericKeys"] = False
prefsDict["enablePunctuationKeys"] = False
+ prefsDict["enableSpace"] = False
prefsDict["enableModifierKeys"] = False
prefsDict["enableFunctionKeys"] = False
prefsDict["enableActionKeys"] = False
@@ -328,6 +329,21 @@ def setupSpeech(prefsDict):
stop = True
while keyEcho and True:
+ answer = sayAndPrint(
+ messages.CONSOLE_SETUP_ENABLE_SPACE,
+ stop,
+ True,
+ speechServerChoice,
+ speechVoiceChoice)
+ try:
+ prefsDict["enableSpace"] = checkYes(answer)
+ break
+ except:
+ stop = False
+ sayAndPrint(messages.CONSOLE_SETUP_ENTER_Y_OR_N)
+
+ stop = True
+ while keyEcho and True:
answer = sayAndPrint(messages.CONSOLE_SETUP_ENABLE_ECHO_MODIFIER_KEYS,
stop,
True,
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index 89a69b6..e7d1740 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -1508,6 +1508,8 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
prefs.get("enableNumericKeys", settings.enableNumericKeys))
self.get_widget("enablePunctuationKeysCheckButton").set_active(
prefs.get("enablePunctuationKeys", settings.enablePunctuationKeys))
+ self.get_widget("enableSpaceCheckButton").set_active(
+ prefs.get("enableSpace", settings.enableSpace))
self.get_widget("enableModifierKeysCheckButton").set_active( \
prefs["enableModifierKeys"])
self.get_widget("enableFunctionKeysCheckButton").set_active( \
@@ -1744,6 +1746,7 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
self.get_widget("enableAlphabeticKeysCheckButton").set_sensitive(enable)
self.get_widget("enableNumericKeysCheckButton").set_sensitive(enable)
self.get_widget("enablePunctuationKeysCheckButton").set_sensitive(enable)
+ self.get_widget("enableSpaceCheckButton").set_sensitive(enable)
self.get_widget("enableModifierKeysCheckButton").set_sensitive(enable)
self.get_widget("enableFunctionKeysCheckButton").set_sensitive(enable)
self.get_widget("enableActionKeysCheckButton").set_sensitive(enable)
diff --git a/src/orca/settings.py b/src/orca/settings.py
index 04cf9da..5081e15 100644
--- a/src/orca/settings.py
+++ b/src/orca/settings.py
@@ -49,6 +49,7 @@ userCustomizableSettings = [
"enableAlphabeticKeys",
"enableNumericKeys",
"enablePunctuationKeys",
+ "enableSpace",
"enableModifierKeys",
"enableFunctionKeys",
"enableActionKeys",
@@ -242,6 +243,7 @@ enableKeyEcho = True
enableAlphabeticKeys = True
enableNumericKeys = True
enablePunctuationKeys = True
+enableSpace = True
enableModifierKeys = True
enableFunctionKeys = True
enableActionKeys = True
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]