a208e6b
From 907edb10fd53e91f05bb4327df201345525f4d90 Mon Sep 17 00:00:00 2001
db31e52
From: fujiwarat <takao.fujiwara1@gmail.com>
a208e6b
Date: Tue, 13 Nov 2012 22:38:19 +0900
db31e52
Subject: [PATCH] Disabled to show non-used GUI.
db31e52
db31e52
---
a208e6b
 setup/keyboardshortcut.py | 87 +++++++++++++++++++++++++----------------------
a208e6b
 setup/main.py             | 23 +++++++------
a208e6b
 setup/setup.ui            | 26 +++++++-------
a208e6b
 3 files changed, 72 insertions(+), 64 deletions(-)
db31e52
a208e6b
diff --git a/setup/keyboardshortcut.py b/setup/keyboardshortcut.py
a208e6b
index 3861d2f..efbdeb7 100644
a208e6b
--- a/setup/keyboardshortcut.py
a208e6b
+++ b/setup/keyboardshortcut.py
a208e6b
@@ -185,15 +185,17 @@ class KeyboardShortcutSelection(Gtk.VBox):
a208e6b
                 modifiers.append(name)
a208e6b
         if keycode.startswith("_"):
a208e6b
             keycode = keycode[1:]
a208e6b
-        keys = modifiers + [keycode]
a208e6b
-        shortcut = "+".join(keys)
a208e6b
+        shortcut = "".join(map(lambda m: '<' + m + '>', modifiers))
a208e6b
+        shortcut += keycode
a208e6b
         return shortcut
a208e6b
 
a208e6b
     def __set_shortcut_to_buttons(self, shortcut):
a208e6b
-        keys = shortcut.split("+")
a208e6b
-        mods = keys[:-1]
a208e6b
+        (keyval, state) = Gtk.accelerator_parse(shortcut)
a208e6b
+        if keyval == 0 and state == 0:
a208e6b
+            return
a208e6b
+        keys = shortcut.split('>')
a208e6b
         for name, button, mask in self.__modifier_buttons:
a208e6b
-            if name in mods:
a208e6b
+            if state & mask:
a208e6b
                 button.set_active(True)
a208e6b
             else:
a208e6b
                 button.set_active(False)
a208e6b
@@ -247,54 +249,59 @@ class KeyboardShortcutSelection(Gtk.VBox):
a208e6b
         self.__update_add_and_apply_buttons()
a208e6b
 
a208e6b
     def __keycode_button_clicked_cb(self, button):
a208e6b
-        out = []
a208e6b
         dlg = Gtk.MessageDialog(parent = self.get_toplevel(), buttons = Gtk.ButtonsType.CLOSE)
a208e6b
+        out = [dlg]
a208e6b
         message = _("Please press a key (or a key combination).\nThe dialog will be closed when the key is released.")
a208e6b
         dlg.set_markup(message)
a208e6b
         dlg.set_title(_("Please press a key (or a key combination)"))
a208e6b
-
a208e6b
-        def __key_press_event(d, k, out):
a208e6b
-            out.append(k.copy())
a208e6b
-
a208e6b
-        def __key_release_event(d, k, out):
a208e6b
-            d.response(Gtk.ResponseType.OK)
a208e6b
-
a208e6b
-        dlg.connect("key-press-event", __key_press_event, out)
a208e6b
-        dlg.connect("key-release-event", __key_release_event, None)
a208e6b
+        sw = Gtk.ScrolledWindow()
a208e6b
+
a208e6b
+        def __accel_edited_cb(c, path, keyval, state, keycode, out):
a208e6b
+            dlg = out[0]
a208e6b
+            out.append(keyval)
a208e6b
+            out.append(state)
a208e6b
+            out.append(keycode)
a208e6b
+            dlg.response(Gtk.ResponseType.OK)
a208e6b
+
a208e6b
+        model = Gtk.ListStore(GObject.TYPE_INT,
a208e6b
+                              GObject.TYPE_UINT,
a208e6b
+                              GObject.TYPE_UINT)
a208e6b
+        accel_view = Gtk.TreeView(model)
a208e6b
+        sw.add(accel_view)
a208e6b
+        column = Gtk.TreeViewColumn()
a208e6b
+        renderer = Gtk.CellRendererAccel(accel_mode=Gtk.CellRendererAccelMode.OTHER,
a208e6b
+                                         editable=True)
a208e6b
+        renderer.connect('accel-edited', __accel_edited_cb, out)
a208e6b
+        column.pack_start(renderer, True)
a208e6b
+        column.add_attribute(renderer, 'accel-mods', 0)
a208e6b
+        column.add_attribute(renderer, 'accel-key', 1)
a208e6b
+        column.add_attribute(renderer, 'keycode', 2)
a208e6b
+        accel_view.append_column(column)
a208e6b
+        it = model.append(None)
a208e6b
+        area = dlg.get_message_area()
a208e6b
+        area.pack_end(sw, True, True, 0)
a208e6b
+        sw.show_all()
a208e6b
         id = dlg.run()
a208e6b
         dlg.destroy()
a208e6b
-        if id != Gtk.ResponseType.OK or not out:
a208e6b
+        if id != Gtk.ResponseType.OK or len(out) == 1:
a208e6b
             return
a208e6b
-        keyevent = out[len(out) - 1]
a208e6b
-        state = keyevent.state & (Gdk.ModifierType.CONTROL_MASK | \
a208e6b
-                                  Gdk.ModifierType.SHIFT_MASK   | \
a208e6b
-                                  Gdk.ModifierType.MOD1_MASK    | \
a208e6b
-                                  Gdk.ModifierType.META_MASK    | \
a208e6b
-                                  Gdk.ModifierType.SUPER_MASK   | \
a208e6b
-                                  Gdk.ModifierType.HYPER_MASK)
a208e6b
-
a208e6b
-
a208e6b
-        if state == 0:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
-        elif keyevent.keyval in (Gdk.KEY_Control_L, Gdk.KEY_Control_R) and state == Gdk.ModifierType.CONTROL_MASK:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
-        elif keyevent.keyval in (Gdk.KEY_Shift_L, Gdk.KEY_Shift_R) and state == Gdk.ModifierType.SHIFT_MASK:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
-        elif keyevent.keyval in (Gdk.KEY_Alt_L, Gdk.KEY_Alt_R) and state == Gdk.ModifierType.MOD1_MASK:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
-        elif keyevent.keyval in (Gdk.KEY_Meta_L, Gdk.KEY_Meta_R) and state == Gdk.ModifierType.META_MASK:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
-        elif keyevent.keyval in (Gdk.KEY_Super_L, Gdk.KEY_Super_R) and state == Gdk.ModifierType.SUPER_MASK:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
-        elif keyevent.keyval in (Gdk.KEY_Hyper_L, Gdk.KEY_Hyper_R) and state == Gdk.ModifierType.HYPER_MASK:
a208e6b
-            state = state | Gdk.ModifierType.RELEASE_MASK
a208e6b
+        keyval = out[1]
a208e6b
+        state = out[2]
a208e6b
+        keycode = out[3]
a208e6b
 
a208e6b
         for name, button, mask in self.__modifier_buttons:
a208e6b
             if state & mask:
a208e6b
                 button.set_active(True)
a208e6b
             else:
a208e6b
                 button.set_active(False)
a208e6b
-        self.__keycode_entry.set_text(Gdk.keyval_name(keyevent.keyval))
a208e6b
+
a208e6b
+        shortcut = Gtk.accelerator_name_with_keycode(None,
a208e6b
+                                                     keyval,
a208e6b
+                                                     keycode,
a208e6b
+                                                     state)
a208e6b
+        shortcut = shortcut.replace('<Primary>', '<Control>')
a208e6b
+        keys = shortcut.split('>')
a208e6b
+        self.__keycode_entry.set_text(keys[-1])
a208e6b
 
a208e6b
     def __add_button_clicked_cb(self, button):
a208e6b
         shortcut = self.__get_shortcut_from_buttons()
db31e52
diff --git a/setup/main.py b/setup/main.py
a208e6b
index 46209b6..1b98e17 100644
db31e52
--- a/setup/main.py
db31e52
+++ b/setup/main.py
a208e6b
@@ -93,21 +93,23 @@ class Setup(object):
19c65a7
 
19c65a7
     def __init_hotkey(self):
19c65a7
         default_values = {
a208e6b
-            "trigger" : (N_("trigger"), ["Control+space"]),
a208e6b
-            "enable_unconditional" : (N_("enable"), []),
a208e6b
-            "disable_unconditional" : (N_("disable"), [])
fd3eb3d
+            'trigger_accel' : ('next_engine', ['<Control>space']),
fd3eb3d
+            'trigger_accel_backward' : ('prev_engine', ['<Control><Shift>space']),
a208e6b
         }
19c65a7
 
19c65a7
         values = dict(self.__config.get_values("general/hotkey"))
19c65a7
 
a208e6b
         for name, (label, shortcuts) in default_values.items():
19c65a7
             shortcuts = values.get(name, shortcuts)
19c65a7
-            button = self.__builder.get_object("button_%s" % name)
19c65a7
-            entry = self.__builder.get_object("entry_%s" % name)
a208e6b
+            button = self.__builder.get_object("button_%s" % label)
a208e6b
+            entry = self.__builder.get_object("entry_%s" % label)
19c65a7
             entry.set_text("; ".join(shortcuts))
19c65a7
-            entry.set_tooltip_text("\n".join(shortcuts))
19c65a7
+            text = '\n'.join(shortcuts)
19c65a7
+            text = "Use ';' separated values\n" + text
19c65a7
+            entry.set_tooltip_text(text)
a208e6b
             button.connect("clicked", self.__shortcut_button_clicked_cb,
a208e6b
-                    label, "general/hotkey", name, entry)
a208e6b
+                    name, "general/hotkey", label, entry)
19c65a7
+            button.set_tooltip_text("Save the left entry string")
19c65a7
 
19c65a7
     def __init_panel(self):
19c65a7
         values = dict(self.__config.get_values("panel"))
a208e6b
@@ -449,7 +451,9 @@ class Setup(object):
a208e6b
     def __shortcut_button_clicked_cb(self, button, name, section, _name, entry):
a208e6b
         buttons = (Gtk.STOCK_CANCEL, Gtk.ResponseType.CANCEL,
a208e6b
                 Gtk.STOCK_OK, Gtk.ResponseType.OK)
a208e6b
-        title = _("Select keyboard shortcut for %s") %  _(name)
a208e6b
+        title = _("Select keyboard shortcut for %s") % \
a208e6b
+                _("next engine") if name == 'next_engine' else \
a208e6b
+                _("previous engine")
a208e6b
         dialog = keyboardshortcut.KeyboardShortcutSelectionDialog(buttons = buttons, title = title)
a208e6b
         text = entry.get_text()
a208e6b
         if text:
a208e6b
@@ -462,12 +466,11 @@ class Setup(object):
a208e6b
         dialog.destroy()
a208e6b
         if id != Gtk.ResponseType.OK:
a208e6b
             return
a208e6b
-        self.__config.set_value(section, _name, GLib.Variant.new_strv(shortcuts))
a208e6b
+        self.__config.set_value(section, name, GLib.Variant.new_strv(shortcuts))
a208e6b
         text = "; ".join(shortcuts)
19c65a7
         entry.set_text(text)
19c65a7
         entry.set_tooltip_text(text)
19c65a7
 
a208e6b
-
19c65a7
     def __item_started_column_toggled_cb(self, cell, path_str, model):
19c65a7
 
a208e6b
         # get toggled iter
db31e52
diff --git a/setup/setup.ui b/setup/setup.ui
a208e6b
index 2026172..fb4340d 100644
db31e52
--- a/setup/setup.ui
db31e52
+++ b/setup/setup.ui
fd3eb3d
@@ -122,7 +122,6 @@
19c65a7
                                 <child>
fd3eb3d
                                   <object class="GtkLabel" id="label9">
fd3eb3d
                                     <property name="visible">True</property>
fd3eb3d
-                                    <property name="sensitive">False</property>
db31e52
                                     <property name="can_focus">False</property>
fd3eb3d
                                     <property name="tooltip_text" translatable="yes">The shortcut keys for switching to previous input method in the list</property>
19c65a7
                                     <property name="xalign">0</property>
fd3eb3d
@@ -137,7 +136,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
fd3eb3d
                                   <object class="GtkHBox" id="hbox4">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
fd3eb3d
                                     <property name="spacing">6</property>
fd3eb3d
                                     <child>
fd3eb3d
@@ -172,6 +171,7 @@
fd3eb3d
                                   <packing>
fd3eb3d
                                     <property name="left_attach">1</property>
fd3eb3d
                                     <property name="right_attach">2</property>
fd3eb3d
+                                    <property name="y_options">GTK_FILL</property>
fd3eb3d
                                   </packing>
fd3eb3d
                                 </child>
fd3eb3d
                                 <child>
a208e6b
@@ -223,7 +223,6 @@
fd3eb3d
                                     <child>
fd3eb3d
                                       <object class="GtkEntry" id="entry_prev_engine">
fd3eb3d
                                         <property name="visible">True</property>
fd3eb3d
-                                        <property name="sensitive">False</property>
fd3eb3d
                                         <property name="can_focus">True</property>
a208e6b
                                         <property name="editable">False</property>
fd3eb3d
                                       </object>
a208e6b
@@ -238,7 +237,6 @@
a208e6b
                                         <property name="label" translatable="yes">...</property>
fd3eb3d
                                         <property name="use_action_appearance">False</property>
fd3eb3d
                                         <property name="visible">True</property>
fd3eb3d
-                                        <property name="sensitive">False</property>
fd3eb3d
                                         <property name="can_focus">True</property>
fd3eb3d
                                         <property name="receives_default">False</property>
fd3eb3d
                                         <property name="use_action_appearance">False</property>
a208e6b
@@ -260,7 +258,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
fd3eb3d
                                   <object class="GtkLabel" id="label7">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
fd3eb3d
                                     <property name="tooltip_text" translatable="yes">The shortcut keys for turning input method on or off</property>
fd3eb3d
                                     <property name="xalign">0</property>
a208e6b
@@ -273,7 +271,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
19c65a7
                                   <object class="GtkLabel" id="label18">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
19c65a7
                                     <property name="xalign">0</property>
19c65a7
                                     <property name="label" translatable="yes">Enable:</property>
a208e6b
@@ -287,7 +285,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
19c65a7
                                   <object class="GtkHBox" id="hbox2">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
19c65a7
                                     <property name="spacing">6</property>
19c65a7
                                     <child>
a208e6b
@@ -328,7 +326,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
19c65a7
                                   <object class="GtkLabel" id="label19">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
19c65a7
                                     <property name="xalign">0</property>
19c65a7
                                     <property name="label" translatable="yes">Disable:</property>
a208e6b
@@ -342,7 +340,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
19c65a7
                                   <object class="GtkHBox" id="hbox3">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
19c65a7
                                     <property name="spacing">6</property>
19c65a7
                                     <child>
a208e6b
@@ -452,7 +450,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
19c65a7
                                   <object class="GtkLabel" id="label10">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
19c65a7
                                     <property name="tooltip_text" translatable="yes">Set the behavior of ibus how to show or hide language bar</property>
19c65a7
                                     <property name="xalign">0</property>
a208e6b
@@ -481,7 +479,7 @@
19c65a7
                                 </child>
19c65a7
                                 <child>
19c65a7
                                   <object class="GtkComboBox" id="combobox_panel_show">
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
db31e52
                                     <property name="can_focus">False</property>
19c65a7
                                     <property name="model">model_panel_show_mode</property>
19c65a7
                                     <child>
a208e6b
@@ -521,7 +519,7 @@
19c65a7
                                   <object class="GtkCheckButton" id="checkbutton_show_icon_on_systray">
19c65a7
                                     <property name="label" translatable="yes">Show icon on system tray</property>
db31e52
                                     <property name="use_action_appearance">False</property>
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
19c65a7
                                     <property name="can_focus">True</property>
19c65a7
                                     <property name="receives_default">False</property>
19c65a7
                                     <property name="tooltip_text" translatable="yes">Show icon on system tray</property>
a208e6b
@@ -540,7 +538,7 @@
19c65a7
                                   <object class="GtkCheckButton" id="checkbutton_show_im_name">
19c65a7
                                     <property name="label" translatable="yes">Show input method name on language bar</property>
db31e52
                                     <property name="use_action_appearance">False</property>
19c65a7
-                                    <property name="visible">True</property>
19c65a7
+                                    <property name="no_show_all">True</property>
19c65a7
                                     <property name="can_focus">True</property>
19c65a7
                                     <property name="receives_default">False</property>
19c65a7
                                     <property name="tooltip_text" translatable="yes">Show input method's name on language bar when check the checkbox</property>
a208e6b
@@ -1001,7 +999,7 @@ You may use up/down buttons to change it.</i></small></property>
19c65a7
                     </child>
19c65a7
                     <child>
19c65a7
                       <object class="GtkFrame" id="frame5">
19c65a7
-                        <property name="visible">True</property>
19c65a7
+                        <property name="no_show_all">True</property>
db31e52
                         <property name="can_focus">False</property>
19c65a7
                         <property name="label_xalign">0</property>
19c65a7
                         <property name="shadow_type">none</property>
db31e52
-- 
a208e6b
1.8.0
db31e52