[caribou] antler: Add --level option to antler-keyboard



commit ea59738334de0afcc5a03228614a4be4d9423f35
Author: Daiki Ueno <dueno src gnome org>
Date:   Sat Jan 17 17:02:22 2015 +0900

    antler: Add --level option to antler-keyboard

 caribou/antler/keyboard_view.py |   16 ++++++++++------
 caribou/antler/main.py          |    5 ++++-
 2 files changed, 14 insertions(+), 7 deletions(-)
---
diff --git a/caribou/antler/keyboard_view.py b/caribou/antler/keyboard_view.py
index dc7ed72..151782c 100644
--- a/caribou/antler/keyboard_view.py
+++ b/caribou/antler/keyboard_view.py
@@ -215,7 +215,8 @@ class AntlerLayout(Gtk.Box):
             self.add_row([c.get_children() for c in row.get_columns()], row_num)
 
 class AntlerKeyboardView(Gtk.Notebook):
-    def __init__(self, keyboard_type='touch', keyboard_file=None):
+    def __init__(self, keyboard_type='touch', keyboard_file=None,
+                 keyboard_level=None):
         GObject.GObject.__init__(self)
         settings = AntlerSettings()
         self.set_show_tabs(False)
@@ -244,9 +245,9 @@ class AntlerKeyboardView(Gtk.Notebook):
                 Gtk.STYLE_PROVIDER_PRIORITY_APPLICATION + 1)
 
         self.scanner = Caribou.Scanner()
-        self.set_keyboard_model(keyboard_type, keyboard_file)
+        self.set_keyboard_model(keyboard_type, keyboard_file, keyboard_level)
 
-    def set_keyboard_model(self, keyboard_type, keyboard_file):
+    def set_keyboard_model(self, keyboard_type, keyboard_file, keyboard_level):
         self.keyboard_model = Caribou.KeyboardModel(keyboard_type=keyboard_type,
                                                     keyboard_file=keyboard_file)
 
@@ -266,7 +267,7 @@ class AntlerKeyboardView(Gtk.Notebook):
                 layout.show()
                 self.layers[gname][lname] = self.append_page(layout, None)
 
-        self._set_to_active_layer()
+        self._set_to_active_layer(keyboard_level=keyboard_level)
 
     def _on_key_clicked(self, model, key):
         if key.props.name == "Caribou_Prefs":
@@ -302,10 +303,13 @@ class AntlerKeyboardView(Gtk.Notebook):
     def _on_group_changed(self, kb, prop):
         self._set_to_active_layer()
 
-    def _set_to_active_layer(self):
+    def _set_to_active_layer(self, keyboard_level=None):
         active_group_name = self.keyboard_model.props.active_group
         active_group = self.keyboard_model.get_group(active_group_name)
-        active_level_name = active_group.props.active_level
+        if keyboard_level:
+            active_level_name = keyboard_level
+        else:
+            active_level_name = active_group.props.active_level
 
         self.set_current_page(self.layers[active_group_name][active_level_name])
 
diff --git a/caribou/antler/main.py b/caribou/antler/main.py
index f79fd92..cf13bad 100644
--- a/caribou/antler/main.py
+++ b/caribou/antler/main.py
@@ -40,7 +40,8 @@ class AntlerKeyboardPreview(Gtk.Window, AntlerKeyboardCommand):
             sys.stderr.write("Specify keyboard file with -f option.\n")
             sys.exit(1)
         self.window = Gtk.Window()
-        self.window.add(AntlerKeyboardView(keyboard_file=args.file))
+        self.window.add(AntlerKeyboardView(keyboard_file=args.file,
+                                           keyboard_level=args.level))
 
     def run(self):
         self.window.show_all()
@@ -58,6 +59,8 @@ if __name__ == "__main__":
                         help='command (service or preview, default: service)')
     parser.add_argument('-f', '--file', type=str,
                         help='keyboard file')
+    parser.add_argument('-l', '--level', type=str,
+                        help='shift level')
     args = parser.parse_args()
 
     command = globals().get('AntlerKeyboard%s' % args.command.capitalize())


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]