diff options
author | Eitan Isaacson <eitan@monotonous.org> | 2011-05-31 13:11:43 -0700 |
---|---|---|
committer | Eitan Isaacson <eitan@monotonous.org> | 2011-06-01 12:47:01 -0700 |
commit | 0b377562a5d294f974883104133c39f14b147211 (patch) | |
tree | 720b49fd1e2fa4eb54f6cb3423f245226cf231a2 | |
parent | 8c68108c6c03de869ffe712bf8d898ced88b6553 (diff) | |
download | caribou-0b377562a5d294f974883104133c39f14b147211.tar.gz |
Aggregate button activation signals.
-rw-r--r-- | caribou/antler/keyboard_view.py | 18 | ||||
-rw-r--r-- | libcaribou/column-model.vala | 1 | ||||
-rw-r--r-- | libcaribou/group-model.vala | 3 | ||||
-rw-r--r-- | libcaribou/key-model.vala | 8 | ||||
-rw-r--r-- | libcaribou/keyboard-model.vala | 8 | ||||
-rw-r--r-- | libcaribou/level-model.vala | 6 | ||||
-rw-r--r-- | libcaribou/row-model.vala | 1 |
7 files changed, 27 insertions, 18 deletions
diff --git a/caribou/antler/keyboard_view.py b/caribou/antler/keyboard_view.py index ff77b75..49a32f0 100644 --- a/caribou/antler/keyboard_view.py +++ b/caribou/antler/keyboard_view.py @@ -37,8 +37,6 @@ class AntlerKey(Gtk.Button): ctx = self.get_style_context() ctx.add_class("antler-keyboard-button") - if key.props.name == "Caribou_Prefs": - key.connect("key-clicked", self._on_prefs_clicked) if key.get_extended_keys (): self._sublevel = AntlerSubLevel(self) @@ -61,13 +59,6 @@ class AntlerKey(Gtk.Button): else: self.unset_state_flags(Gtk.StateFlags.INCONSISTENT) - def _on_prefs_clicked(self, key): - p = PreferencesDialog(AntlerSettings()) - p.populate_settings(CaribouSettings()) - p.show_all() - p.run() - p.destroy() - def _get_key_label(self): label = self.caribou_key.props.name if PRETTY_LABELS.has_key(self.caribou_key.props.name): @@ -233,6 +224,7 @@ class AntlerKeyboardView(Gtk.Notebook): self.scanner = Caribou.Scanner() self.scanner.set_keyboard(self.keyboard_model) self.keyboard_model.connect("notify::active-group", self._on_group_changed) + self.keyboard_model.connect("key-activated", self._on_key_activated) self.layers = {} @@ -268,6 +260,14 @@ class AntlerKeyboardView(Gtk.Notebook): self._set_to_active_layer() + def _on_key_activated(self, model, key): + if key.props.name == "Caribou_Prefs": + p = PreferencesDialog(AntlerSettings()) + p.populate_settings(CaribouSettings()) + p.show_all() + p.run() + p.destroy() + def _on_use_system_theme_changed(self, setting, value): if value: Gtk.StyleContext.remove_provider_for_screen( diff --git a/libcaribou/column-model.vala b/libcaribou/column-model.vala index 1707edc..98fc52e 100644 --- a/libcaribou/column-model.vala +++ b/libcaribou/column-model.vala @@ -10,6 +10,7 @@ namespace Caribou { } internal void add_key (KeyModel key) { + key.key_activated.connect ((k) => { key_activated (k); }); keys.add (key); } diff --git a/libcaribou/group-model.vala b/libcaribou/group-model.vala index 279e9a3..6b578d4 100644 --- a/libcaribou/group-model.vala +++ b/libcaribou/group-model.vala @@ -25,7 +25,8 @@ namespace Caribou { internal void add_level (string lname, LevelModel level) { levels.set (lname, level); - level.level_toggled.connect(on_level_toggled); + level.level_toggled.connect (on_level_toggled); + level.key_activated.connect ((k) => { key_activated (k); }); if (level.mode == "default") { default_level = lname; active_level = lname; diff --git a/libcaribou/key-model.vala b/libcaribou/key-model.vala index e7edb8c..e989f34 100644 --- a/libcaribou/key-model.vala +++ b/libcaribou/key-model.vala @@ -32,7 +32,6 @@ namespace Caribou { public signal void key_pressed (); public signal void key_released (); - public signal void key_clicked (); public signal void key_hold_end (); public signal void key_hold (); @@ -45,11 +44,12 @@ namespace Caribou { internal void add_subkey (string name) { KeyModel key = new KeyModel (name); - key.key_clicked.connect(on_subkey_clicked); + key.key_activated.connect(on_subkey_activated); extended_keys.add (key); } - private void on_subkey_clicked () { + private void on_subkey_activated (KeyModel key) { + key_activated (key); show_subkeys = false; } @@ -63,7 +63,7 @@ namespace Caribou { if (hold_tid != 0) { GLib.Source.remove (hold_tid); hold_tid = 0; - key_clicked(); + key_activated (this); if (keyval != 0) { xadapter.keyval_press(keyval); xadapter.keyval_release(keyval); diff --git a/libcaribou/keyboard-model.vala b/libcaribou/keyboard-model.vala index 99c3b6e..9fca05d 100644 --- a/libcaribou/keyboard-model.vala +++ b/libcaribou/keyboard-model.vala @@ -33,8 +33,14 @@ namespace Caribou { private void populate_group (string group, string variant) { GroupModel grp = JsonDeserializer.load_group (keyboard_type, group, variant); - if (grp != null) + if (grp != null) { groups.set (GroupModel.create_group_name (group, variant), grp); + grp.key_activated.connect (on_key_activated); + } + } + + private void on_key_activated (KeyModel key) { + key_activated (key); } public string[] get_groups () { diff --git a/libcaribou/level-model.vala b/libcaribou/level-model.vala index 127e5d9..dc6917e 100644 --- a/libcaribou/level-model.vala +++ b/libcaribou/level-model.vala @@ -21,25 +21,25 @@ namespace Caribou { if (rownum >= rows.size) { row = new RowModel (); + row.key_activated.connect (on_key_activated); rows.add(row); } else { row = rows[rowindex]; } row.add_key (colnum, key); - - key.key_clicked.connect (on_key_clicked); } public RowModel[] get_rows () { return (RowModel[]) rows.to_array (); } - private void on_key_clicked (KeyModel key) { + private void on_key_activated (KeyModel key) { if (key.toggle != "") level_toggled (key.toggle); else if (mode == "latched") level_toggled ("default"); + key_activated (key); } public KeyModel[] get_keys () { diff --git a/libcaribou/row-model.vala b/libcaribou/row-model.vala index 8387689..c7f0e8f 100644 --- a/libcaribou/row-model.vala +++ b/libcaribou/row-model.vala @@ -18,6 +18,7 @@ namespace Caribou { if (colnum >= columns.size) { column = new ColumnModel (); + column.key_activated.connect ((k) => { key_activated (k); }); columns.add(column); } else { column = columns[colindex]; |