summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEitan Isaacson <eitan@monotonous.org>2011-05-31 13:11:43 -0700
committerEitan Isaacson <eitan@monotonous.org>2011-06-01 12:47:01 -0700
commit0b377562a5d294f974883104133c39f14b147211 (patch)
tree720b49fd1e2fa4eb54f6cb3423f245226cf231a2
parent8c68108c6c03de869ffe712bf8d898ced88b6553 (diff)
downloadcaribou-0b377562a5d294f974883104133c39f14b147211.tar.gz
Aggregate button activation signals.
-rw-r--r--caribou/antler/keyboard_view.py18
-rw-r--r--libcaribou/column-model.vala1
-rw-r--r--libcaribou/group-model.vala3
-rw-r--r--libcaribou/key-model.vala8
-rw-r--r--libcaribou/keyboard-model.vala8
-rw-r--r--libcaribou/level-model.vala6
-rw-r--r--libcaribou/row-model.vala1
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];