[caribou] Uncomment the combo lines in preferences and made it work.
- From: Eitan Isaacson <eitani src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [caribou] Uncomment the combo lines in preferences and made it work.
- Date: Mon, 19 Jul 2010 20:06:38 +0000 (UTC)
commit 483e2089e38b53fc5b28e02d6cd5ea9d81681f07
Author: David Pellicer <davidpellicermartin gmail com>
Date: Mon Jul 19 11:47:03 2010 -0700
Uncomment the combo lines in preferences and made it work.
caribou/ui/keyboard.py | 38 +++++++++++++++++++++++---------------
1 files changed, 23 insertions(+), 15 deletions(-)
---
diff --git a/caribou/ui/keyboard.py b/caribou/ui/keyboard.py
index fe98614..3309d17 100644
--- a/caribou/ui/keyboard.py
+++ b/caribou/ui/keyboard.py
@@ -38,14 +38,13 @@ else:
import xml.etree.ElementTree as ET
from xml.dom import minidom
-from caribou import data_path
class KeyboardPreferences:
__gtype_name__ = "KeyboardPreferences"
def __init__(self):
builder = gtk.Builder()
- builder.add_from_file(os.path.join(data_path, "caribou-prefs.ui"))
+ builder.add_from_file(os.path.join(const.DATA_DIR, "caribou-prefs.ui"))
self.window = builder.get_object("dialog_prefs")
self.window.connect("destroy", self.destroy)
@@ -77,19 +76,18 @@ class KeyboardPreferences:
mouse_over_color_button.connect("color-set",
self._on_mouse_over_color_set,
client)
+
+ kbds = self._fetch_keyboards()
+ for kbddef in kbds:
+ layout_combo.append_text(kbddef)
- #TODO: List the layouts in the data dir
- #for kbddef in keyboards.kbds:
- # layout_combo.append_text(kbddef)
-
- #defaultkbd = client.get_string("/apps/caribou/osk/layout")
- #try:
- # index = keyboards.kbds.index(defaultkbd)
- #except ValueError:
- # print "FIXME: pick a suitable keyboard layout: " + (defaultkbd or "None")
- # layout_combo.set_active(0)
- #else:
- # layout_combo.set_active(index)
+ defaultkbd = client.get_string(const.CARIBOU_GCONF + "/layout")
+ try:
+ index = kbds.index(defaultkbd)
+ except ValueError:
+ layout_combo.set_active(0)
+ else:
+ layout_combo.set_active(index)
# grey out the key size, key spacing and test area
# TODO: implement key size, key spacing and test area
@@ -111,6 +109,16 @@ class KeyboardPreferences:
def destroy(self, widget, data = None):
self.window.destroy()
+ def _fetch_keyboards(self):
+ files = os.listdir(const.KEYBOARDS_DIR)
+ kbds = []
+ for f in files:
+ if (HAS_JSON and f.endswith('.json')) or f.endswith('.xml'):
+ module = f.rsplit('.', 1)[0]
+ # TODO: verify keyboard before adding it to the list
+ kbds.append(module)
+ return kbds
+
def _on_layout_changed(self, combobox, client):
kbdname = combobox.get_active_text()
if kbdname:
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]