diff options
author | fujiwarat <takao.fujiwara1@gmail.com> | 2017-11-21 14:45:01 +0900 |
---|---|---|
committer | fujiwarat <takao.fujiwara1@gmail.com> | 2017-11-21 14:45:01 +0900 |
commit | b87c5939d30ebbc87533f36c9f6a96c773dab5f9 (patch) | |
tree | fbc71745ff508f49f463afa74c35c46de398bef7 /engine | |
parent | cd7568ce9b837eac65be9897345697780806b596 (diff) | |
download | ibus-anthy-b87c5939d30ebbc87533f36c9f6a96c773dab5f9.tar.gz |
engine: Added __cmd_convert_to_katakana_all
Diffstat (limited to 'engine')
-rw-r--r-- | engine/python2/engine.py | 84 | ||||
-rw-r--r-- | engine/python3/engine.py | 84 |
2 files changed, 152 insertions, 16 deletions
diff --git a/engine/python2/engine.py b/engine/python2/engine.py index b0c98b7..44d6ad1 100644 --- a/engine/python2/engine.py +++ b/engine/python2/engine.py @@ -803,6 +803,20 @@ class Engine(IBus.EngineSimple): self.__invalidate() return True + def __shrink_segment_end(self): + while self.__context.get_nr_segments() > 1: + self.__context.resize_segment(self.__cursor_pos, 1) + nr_segments = self.__context.get_nr_segments() + del self.__segments[self.__cursor_pos:] + for i in range(self.__cursor_pos, nr_segments): + buf = self.__context.get_segment(i, 0) + text = buf + self.__segments.append((0, text)) + self.__lookup_table_visible = False + self.__fill_lookup_table() + self.__invalidate() + return True + def do_property_activate(self, prop_name, state): if state == IBus.PropState.CHECKED: @@ -2723,25 +2737,31 @@ class Engine(IBus.EngineSimple): return False - def __cmd_convert_to_hiragana(self, keyval, state): + def __convert_to_hiragana_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_HIRAGANA_CANDIDATE) return self.__on_key_conv(0) - def __cmd_convert_to_katakana(self, keyval, state): + def __convert_to_katakana_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_KATAKANA_CANDIDATE) return self.__on_key_conv(1) - def __cmd_convert_to_half(self, keyval, state): + def __convert_to_half_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False @@ -2751,6 +2771,9 @@ class Engine(IBus.EngineSimple): return self.__convert_segment_to_latin(-100) elif i == -100: return self.__convert_segment_to_latin(-100) + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_HALFKANA_CANDIDATE) elif CONV_MODE_WIDE_LATIN_0 <= self.__convert_mode <= CONV_MODE_WIDE_LATIN_3: @@ -2759,11 +2782,14 @@ class Engine(IBus.EngineSimple): return self.__on_key_conv(4) return self.__on_key_conv(2) - def __cmd_convert_to_half_katakana(self, keyval, state): + def __convert_to_half_katakana_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_HALFKANA_CANDIDATE) return self.__on_key_conv(2) @@ -2792,24 +2818,66 @@ class Engine(IBus.EngineSimple): return False - def __cmd_convert_to_wide_latin(self, keyval, state): + def __convert_to_wide_latin_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: - return self.__convert_segment_to_latin(-101) + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() + return self.__convert_segment_to_latin(-101) return self.__on_key_conv(3) - def __cmd_convert_to_latin(self, keyval, state): + def __convert_to_latin_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: - return self.__convert_segment_to_latin(-100) + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() + return self.__convert_segment_to_latin(-100) return self.__on_key_conv(4) + def __cmd_convert_to_hiragana(self, keyval, state): + return self.__convert_to_hiragana_internal(keyval, state, 0) + + def __cmd_convert_to_hiragana_all(self, keyval, state): + return self.__convert_to_hiragana_internal(keyval, state, 1) + + def __cmd_convert_to_katakana(self, keyval, state): + return self.__convert_to_katakana_internal(keyval, state, 0) + + def __cmd_convert_to_katakana_all(self, keyval, state): + return self.__convert_to_katakana_internal(keyval, state, 1) + + def __cmd_convert_to_half(self, keyval, state): + return self.__convert_to_half_internal(keyval, state, 0) + + def __cmd_convert_to_half_all(self, keyval, state): + return self.__convert_to_half_internal(keyval, state, 1) + + def __cmd_convert_to_half_katakana(self, keyval, state): + return self.__convert_to_half_katakana_internal(keyval, state, 0) + + def __cmd_convert_to_half_katakana_all(self, keyval, state): + return self.__convert_to_half_katakana_internal(keyval, state, 1) + + def __cmd_convert_to_wide_latin(self, keyval, state): + return self.__convert_to_wide_latin_internal(keyval, state, 0) + + def __cmd_convert_to_wide_latin_all(self, keyval, state): + return self.__convert_to_wide_latin_internal(keyval, state, 1) + + def __cmd_convert_to_latin(self, keyval, state): + return self.__convert_to_latin_internal(keyval, state, 0) + + def __cmd_convert_to_latin_all(self, keyval, state): + return self.__convert_to_latin_internal(keyval, state, 1) + #dictonary_keys def __cmd_dict_admin(self, keyval, state): if not self._chk_mode('0'): diff --git a/engine/python3/engine.py b/engine/python3/engine.py index 39370a6..243eecd 100644 --- a/engine/python3/engine.py +++ b/engine/python3/engine.py @@ -798,6 +798,20 @@ class Engine(IBus.EngineSimple): self.__invalidate() return True + def __shrink_segment_end(self): + while self.__context.get_nr_segments() > 1: + self.__context.resize_segment(self.__cursor_pos, 1) + nr_segments = self.__context.get_nr_segments() + del self.__segments[self.__cursor_pos:] + for i in range(self.__cursor_pos, nr_segments): + buf = self.__context.get_segment(i, 0) + text = buf + self.__segments.append((0, text)) + self.__lookup_table_visible = False + self.__fill_lookup_table() + self.__invalidate() + return True + def do_property_activate(self, prop_name, state): if state == IBus.PropState.CHECKED: @@ -2716,25 +2730,31 @@ class Engine(IBus.EngineSimple): return False - def __cmd_convert_to_hiragana(self, keyval, state): + def __convert_to_hiragana_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_HIRAGANA_CANDIDATE) return self.__on_key_conv(0) - def __cmd_convert_to_katakana(self, keyval, state): + def __convert_to_katakana_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_KATAKANA_CANDIDATE) return self.__on_key_conv(1) - def __cmd_convert_to_half(self, keyval, state): + def __convert_to_half_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False @@ -2744,6 +2764,9 @@ class Engine(IBus.EngineSimple): return self.__convert_segment_to_latin(-100) elif i == -100: return self.__convert_segment_to_latin(-100) + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_HALFKANA_CANDIDATE) elif CONV_MODE_WIDE_LATIN_0 <= self.__convert_mode <= CONV_MODE_WIDE_LATIN_3: @@ -2752,11 +2775,14 @@ class Engine(IBus.EngineSimple): return self.__on_key_conv(4) return self.__on_key_conv(2) - def __cmd_convert_to_half_katakana(self, keyval, state): + def __convert_to_half_katakana_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() return self.__convert_segment_to_kana(NTH_HALFKANA_CANDIDATE) return self.__on_key_conv(2) @@ -2785,24 +2811,66 @@ class Engine(IBus.EngineSimple): return False - def __cmd_convert_to_wide_latin(self, keyval, state): + def __convert_to_wide_latin_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: - return self.__convert_segment_to_latin(-101) + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() + return self.__convert_segment_to_latin(-101) return self.__on_key_conv(3) - def __cmd_convert_to_latin(self, keyval, state): + def __convert_to_latin_internal(self, keyval, state, mode): if not self._chk_mode('12345'): return False if self.__convert_mode == CONV_MODE_ANTHY: - return self.__convert_segment_to_latin(-100) + if mode == 1: + self.__cmd_move_caret_first(keyval, state) + self.__shrink_segment_end() + return self.__convert_segment_to_latin(-100) return self.__on_key_conv(4) + def __cmd_convert_to_hiragana(self, keyval, state): + return self.__convert_to_hiragana_internal(keyval, state, 0) + + def __cmd_convert_to_hiragana_all(self, keyval, state): + return self.__convert_to_hiragana_internal(keyval, state, 1) + + def __cmd_convert_to_katakana(self, keyval, state): + return self.__convert_to_katakana_internal(keyval, state, 0) + + def __cmd_convert_to_katakana_all(self, keyval, state): + return self.__convert_to_katakana_internal(keyval, state, 1) + + def __cmd_convert_to_half(self, keyval, state): + return self.__convert_to_half_internal(keyval, state, 0) + + def __cmd_convert_to_half_all(self, keyval, state): + return self.__convert_to_half_internal(keyval, state, 1) + + def __cmd_convert_to_half_katakana(self, keyval, state): + return self.__convert_to_half_katakana_internal(keyval, state, 0) + + def __cmd_convert_to_half_katakana_all(self, keyval, state): + return self.__convert_to_half_katakana_internal(keyval, state, 1) + + def __cmd_convert_to_wide_latin(self, keyval, state): + return self.__convert_to_wide_latin_internal(keyval, state, 0) + + def __cmd_convert_to_wide_latin_all(self, keyval, state): + return self.__convert_to_wide_latin_internal(keyval, state, 1) + + def __cmd_convert_to_latin(self, keyval, state): + return self.__convert_to_latin_internal(keyval, state, 0) + + def __cmd_convert_to_latin_all(self, keyval, state): + return self.__convert_to_latin_internal(keyval, state, 1) + #dictonary_keys def __cmd_dict_admin(self, keyval, state): if not self._chk_mode('0'): |