summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
authorfujiwarat <takao.fujiwara1@gmail.com>2017-11-21 14:45:01 +0900
committerfujiwarat <takao.fujiwara1@gmail.com>2017-11-21 14:45:01 +0900
commitb87c5939d30ebbc87533f36c9f6a96c773dab5f9 (patch)
treefbc71745ff508f49f463afa74c35c46de398bef7 /engine
parentcd7568ce9b837eac65be9897345697780806b596 (diff)
downloadibus-anthy-b87c5939d30ebbc87533f36c9f6a96c773dab5f9.tar.gz
engine: Added __cmd_convert_to_katakana_all
Diffstat (limited to 'engine')
-rw-r--r--engine/python2/engine.py84
-rw-r--r--engine/python3/engine.py84
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'):