[orca] Fix for bgo#536827 - Provide configuration GUI option to set the Orca key/modifier
- From: Joanmarie Diggs <joanied src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [orca] Fix for bgo#536827 - Provide configuration GUI option to set the Orca key/modifier
- Date: Sat, 10 Jul 2010 22:32:15 +0000 (UTC)
commit c40e456ec8f7c32d5d7252904dc7f499ad9ec5ed
Author: Joanmarie Diggs <joanmarie diggs gmail com>
Date: Sat Jul 10 18:18:18 2010 -0400
Fix for bgo#536827 - Provide configuration GUI option to set the Orca key/modifier
Adheres to the KISS principle and provides a combo box so that users do not
have to hand-edit settings files.
src/orca/orca-setup.ui | 40 +++++++++++++++++++++++++++++++++-------
src/orca/orca_gui_prefs.py | 22 +++++++++++++++++-----
src/orca/orca_prefs.py | 5 +----
3 files changed, 51 insertions(+), 16 deletions(-)
---
diff --git a/src/orca/orca-setup.ui b/src/orca/orca-setup.ui
index 46ea8a6..ccb9957 100644
--- a/src/orca/orca-setup.ui
+++ b/src/orca/orca-setup.ui
@@ -226,6 +226,26 @@
</row>
</data>
</object>
+ <object class="GtkListStore" id="model8">
+ <columns>
+ <!-- column-name gchararray -->
+ <column type="gchararray"/>
+ </columns>
+ <data>
+ <row>
+ <col id="0">Insert, KP_Insert</col>
+ </row>
+ <row>
+ <col id="0">KP_Insert</col>
+ </row>
+ <row>
+ <col id="0">Insert</col>
+ </row>
+ <row>
+ <col id="0">Caps_Lock</col>
+ </row>
+ </data>
+ </object>
<object class="GtkListStore" id="liststore2">
<columns>
<!-- column-name gchararray1 -->
@@ -3588,9 +3608,9 @@
<property name="visible">True</property>
<property name="label" translatable="yes">Orca _Modifier Key(s):</property>
<property name="use_underline">True</property>
- <property name="mnemonic_widget">orcaModKeyEntry</property>
+ <property name="mnemonic_widget">orcaModifierComboBox</property>
<accessibility>
- <relation type="label-for" target="orcaModKeyEntry"/>
+ <relation type="label-for" target="orcaModifierComboBox"/>
</accessibility>
</object>
<packing>
@@ -3600,14 +3620,20 @@
</packing>
</child>
<child>
- <object class="GtkEntry" id="orcaModKeyEntry">
+ <object class="GtkComboBox" id="orcaModifierComboBox">
<property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes">Orca Modifier Keys</property>
- <property name="editable">False</property>
- <property name="invisible_char">●</property>
+ <property name="model">model8</property>
+ <signal name="changed" handler="orcaModifierChanged"/>
+ <child>
+ <object class="GtkCellRendererText" id="orcaModifierRenderer"/>
+ <attributes>
+ <attribute name="text">0</attribute>
+ </attributes>
+ </child>
</object>
<packing>
+ <property name="expand">False</property>
+ <property name="fill">False</property>
<property name="position">1</property>
</packing>
</child>
diff --git a/src/orca/orca_gui_prefs.py b/src/orca/orca_gui_prefs.py
index 6f4040d..2256dc0 100644
--- a/src/orca/orca_gui_prefs.py
+++ b/src/orca/orca_gui_prefs.py
@@ -153,7 +153,6 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
self.keyBindingsModel = None
self.keyBindView = None
self.newBinding = None
- self.orcaModKeyEntry = None
self.pendingKeyBindings = None
self.planeCellRendererText = None
self.pronunciationModel = None
@@ -2126,6 +2125,11 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
self.get_widget("autostartOrcaCheckButton").set_active( \
self.enableAutostart)
+ def _updateOrcaModifier(self):
+ combobox = self.get_widget("orcaModifierComboBox")
+ keystring = ", ".join(self.prefsDict["orcaModifierKeys"])
+ combobox.set_active(self.getComboBoxIndex(combobox, keystring))
+
def populateComboBox(self, combobox, items):
"""Populates the combobox with the items provided.
@@ -2509,10 +2513,7 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
if not self.keyBindingsModel.iter_has_child(iterUnbound):
self.keyBindingsModel.remove(iterUnbound)
- self.orcaModKeyEntry = self.get_widget("orcaModKeyEntry")
- self.orcaModKeyEntry.set_text(
- str(settings.orcaModifierKeys)[1:-1].replace("'",""))
-
+ self._updateOrcaModifier()
self._markModified()
# Translators: an external braille device has buttons on it that
@@ -2890,6 +2891,17 @@ class OrcaSetupGUI(orca_gtkbuilder.GtkBuilderWrapper):
self.prefsDict["verbalizePunctuationStyle"] = \
settings.PUNCTUATION_STYLE_ALL
+ def orcaModifierChanged(self, widget):
+ """Signal handler for the changed signal for the orcaModifierComboBox
+ Set the 'orcaModifierKeys' preference to the new value.
+
+ Arguments:
+ - widget: the component that generated the signal.
+ """
+
+ orcaModifier = widget.get_active_text()
+ self.prefsDict["orcaModifierKeys"] = orcaModifier.split(', ')
+
def progressBarVerbosityChanged(self, widget):
"""Signal handler for the changed signal for the progressBarVerbosity
GtkComboBox widget. Set the 'progressBarVerbosity' preference to
diff --git a/src/orca/orca_prefs.py b/src/orca/orca_prefs.py
index 3ed534f..fae2b03 100644
--- a/src/orca/orca_prefs.py
+++ b/src/orca/orca_prefs.py
@@ -229,10 +229,7 @@ class OrcaPrefs:
def _getOrcaModifierKeysString(self, orcaModifierKeys):
"""Returns a string that represents the Orca modifier keys passed in."""
- if orcaModifierKeys == settings.DESKTOP_MODIFIER_KEYS:
- return "orca.settings.DESKTOP_MODIFIER_KEYS"
- else:
- return "orca.settings.LAPTOP_MODIFIER_KEYS"
+ return "%s" % orcaModifierKeys
def _getSpokenTextAttributesString(self, enabledSpokenTextAttributes):
""" Returns a string that represents the enabled spoken text attributes
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]