2012-07-04 05:36:33 +00:00
|
|
|
From e16682240d6df8777a7b6605811258b5ec71cec1 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Wed, 4 Jul 2012 13:19:47 +0800
|
2012-07-09 08:11:07 +00:00
|
|
|
Subject: [PATCH 1/6] fixes fillLookupTableByPage
|
2012-07-04 05:36:33 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
src/PYPPhoneticEditor.cc | 11 ++---------
|
|
|
|
1 file changed, 2 insertions(+), 9 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc
|
|
|
|
index bdc05d8..a9b81ce 100644
|
|
|
|
--- a/src/PYPPhoneticEditor.cc
|
|
|
|
+++ b/src/PYPPhoneticEditor.cc
|
|
|
|
@@ -204,7 +204,7 @@ LibPinyinPhoneticEditor::fillLookupTableByPage (void)
|
|
|
|
if (need_nr == 0)
|
|
|
|
return FALSE;
|
|
|
|
|
|
|
|
- String word, phrase_string;
|
|
|
|
+ String word;
|
|
|
|
for (guint i = filled_nr; i < filled_nr + need_nr; i++) {
|
|
|
|
if (i >= m_candidates->len) /* no more candidates */
|
|
|
|
break;
|
|
|
|
@@ -212,14 +212,7 @@ LibPinyinPhoneticEditor::fillLookupTableByPage (void)
|
|
|
|
lookup_candidate_t * candidate = &g_array_index
|
|
|
|
(m_candidates, lookup_candidate_t, i);
|
|
|
|
|
|
|
|
- phrase_string = candidate->m_phrase_string;
|
|
|
|
-
|
|
|
|
- if (BEST_MATCH_CANDIDATE == candidate->m_candidate_type) {
|
|
|
|
- /* hide selected part */
|
|
|
|
- guint cursor = getLookupCursor ();
|
|
|
|
- phrase_string = g_utf8_offset_to_pointer
|
|
|
|
- (candidate->m_phrase_string, cursor);
|
|
|
|
- }
|
|
|
|
+ const gchar * phrase_string = candidate->m_phrase_string;
|
|
|
|
|
|
|
|
/* show get candidates. */
|
|
|
|
if (G_LIKELY (m_props.modeSimp ())) {
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|
2012-07-04 07:21:24 +00:00
|
|
|
|
|
|
|
From a742f0e61a9cc81ee14f5d66070bede4a737fa18 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Wed, 4 Jul 2012 15:19:05 +0800
|
2012-07-09 08:11:07 +00:00
|
|
|
Subject: [PATCH 2/6] uses pinyin_load_phrase_library
|
2012-07-04 07:21:24 +00:00
|
|
|
|
|
|
|
---
|
|
|
|
src/PYLibPinyin.cc | 4 +++-
|
|
|
|
1 file changed, 3 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
diff --git a/src/PYLibPinyin.cc b/src/PYLibPinyin.cc
|
|
|
|
index dd56fa7..621863b 100644
|
|
|
|
--- a/src/PYLibPinyin.cc
|
|
|
|
+++ b/src/PYLibPinyin.cc
|
|
|
|
@@ -64,6 +64,7 @@ LibPinyinBackEnd::allocPinyinInstance ()
|
|
|
|
g_free(userdir); userdir = NULL;
|
|
|
|
}
|
|
|
|
m_pinyin_context = pinyin_init ("/usr/share/libpinyin/data", userdir);
|
|
|
|
+ pinyin_load_phrase_library(m_pinyin_context, 2);
|
|
|
|
g_free(userdir);
|
|
|
|
}
|
|
|
|
|
|
|
|
@@ -87,7 +88,8 @@ LibPinyinBackEnd::allocChewingInstance ()
|
|
|
|
if (retval) {
|
|
|
|
g_free(userdir); userdir = NULL;
|
|
|
|
}
|
|
|
|
- m_chewing_context = pinyin_init ("/usr/share/libpinyin/data", NULL);
|
|
|
|
+ m_chewing_context = pinyin_init ("/usr/share/libpinyin/data", userdir);
|
|
|
|
+ pinyin_load_phrase_library(m_chewing_context, 2);
|
|
|
|
g_free(userdir);
|
|
|
|
}
|
|
|
|
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|
2012-07-09 08:11:07 +00:00
|
|
|
|
|
|
|
From 155103f5528d450c05c8639c64c8fef2cb9e52bd Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Mon, 9 Jul 2012 13:11:45 +0800
|
|
|
|
Subject: [PATCH 3/6] fixes selectCandidate
|
|
|
|
|
|
|
|
---
|
|
|
|
src/PYPPhoneticEditor.cc | 5 +++++
|
|
|
|
1 file changed, 5 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc
|
|
|
|
index a9b81ce..13e6011 100644
|
|
|
|
--- a/src/PYPPhoneticEditor.cc
|
|
|
|
+++ b/src/PYPPhoneticEditor.cc
|
|
|
|
@@ -363,10 +363,15 @@ LibPinyinPhoneticEditor::selectCandidate (guint i)
|
|
|
|
|
|
|
|
lookup_cursor = pinyin_choose_candidate
|
|
|
|
(m_instance, lookup_cursor, candidate);
|
|
|
|
+ if (DIVIDED_CANDIDATE == candidate->m_candidate_type ||
|
|
|
|
+ RESPLIT_CANDIDATE == candidate->m_candidate_type) {
|
|
|
|
+ m_text = m_instance->m_raw_full_pinyin;
|
|
|
|
+ }
|
|
|
|
pinyin_guess_sentence (m_instance);
|
|
|
|
|
|
|
|
PinyinKeyPosVector & pinyin_poses = m_instance->m_pinyin_key_rests;
|
|
|
|
if (lookup_cursor == pinyin_poses->len) {
|
|
|
|
+ pinyin_train(m_instance);
|
|
|
|
commit();
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|
|
|
|
|
|
|
|
From 87c19323a056947e42b573e92dfd4e29e320d99b Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Mon, 9 Jul 2012 13:20:15 +0800
|
|
|
|
Subject: [PATCH 4/6] improves full pinyin mode
|
|
|
|
|
|
|
|
---
|
|
|
|
src/PYPFullPinyinEditor.cc | 11 +++++++++++
|
|
|
|
src/PYPFullPinyinEditor.h | 4 ++--
|
|
|
|
2 files changed, 13 insertions(+), 2 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/src/PYPFullPinyinEditor.cc b/src/PYPFullPinyinEditor.cc
|
|
|
|
index 00e3077..90e3f2f 100644
|
|
|
|
--- a/src/PYPFullPinyinEditor.cc
|
|
|
|
+++ b/src/PYPFullPinyinEditor.cc
|
|
|
|
@@ -125,3 +125,14 @@ LibPinyinFullPinyinEditor::updateAuxiliaryText ()
|
|
|
|
StaticText aux_text (m_buffer);
|
|
|
|
Editor::updateAuxiliaryText (aux_text, TRUE);
|
|
|
|
}
|
|
|
|
+
|
|
|
|
+void
|
|
|
|
+LibPinyinFullPinyinEditor::update (void)
|
|
|
|
+{
|
|
|
|
+ guint lookup_cursor = getLookupCursor ();
|
|
|
|
+ pinyin_get_full_pinyin_candidates (m_instance, lookup_cursor, m_candidates);
|
|
|
|
+
|
|
|
|
+ updateLookupTable ();
|
|
|
|
+ updatePreeditText ();
|
|
|
|
+ updateAuxiliaryText ();
|
|
|
|
+}
|
|
|
|
diff --git a/src/PYPFullPinyinEditor.h b/src/PYPFullPinyinEditor.h
|
|
|
|
index a3b3df4..bb92655 100644
|
|
|
|
--- a/src/PYPFullPinyinEditor.h
|
|
|
|
+++ b/src/PYPFullPinyinEditor.h
|
|
|
|
@@ -38,10 +38,10 @@ public:
|
|
|
|
virtual gboolean processKeyEvent (guint keyval, guint keycode, guint modifiers);
|
|
|
|
virtual void reset (void);
|
|
|
|
virtual void updateAuxiliaryText (void);
|
|
|
|
-
|
|
|
|
+ virtual void update (void);
|
|
|
|
|
|
|
|
protected:
|
|
|
|
- /* TODO: to be implemented. */
|
|
|
|
+
|
|
|
|
virtual void updatePinyin (void);
|
|
|
|
|
|
|
|
};
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|
|
|
|
|
|
|
|
From a727155dc7dfeac0ac52e89c101003b9b2481a86 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Mon, 9 Jul 2012 13:29:18 +0800
|
|
|
|
Subject: [PATCH 5/6] use divided table for full pinyin
|
|
|
|
|
|
|
|
---
|
|
|
|
src/PYLibPinyin.cc | 3 ++-
|
|
|
|
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
|
|
|
|
|
|
diff --git a/src/PYLibPinyin.cc b/src/PYLibPinyin.cc
|
|
|
|
index 621863b..44dcaf2 100644
|
|
|
|
--- a/src/PYLibPinyin.cc
|
|
|
|
+++ b/src/PYLibPinyin.cc
|
|
|
|
@@ -143,7 +143,8 @@ LibPinyinBackEnd::setPinyinOptions (Config *config)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
- pinyin_option_t options = config->option() | USE_RESPLIT_TABLE;
|
|
|
|
+ pinyin_option_t options = config->option()
|
|
|
|
+ | USE_RESPLIT_TABLE | USE_DIVIDED_TABLE;
|
|
|
|
pinyin_set_options (m_pinyin_context, options);
|
|
|
|
return TRUE;
|
|
|
|
}
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|
|
|
|
|
|
|
|
From 2d8a65fdcefe0a8809740adb86f3d45d8c454793 Mon Sep 17 00:00:00 2001
|
|
|
|
From: Peng Wu <alexepico@gmail.com>
|
|
|
|
Date: Mon, 9 Jul 2012 15:50:04 +0800
|
|
|
|
Subject: [PATCH 6/6] fixes updatePinyin
|
|
|
|
|
|
|
|
---
|
|
|
|
src/PYPBopomofoEditor.cc | 1 +
|
|
|
|
src/PYPDoublePinyinEditor.cc | 1 +
|
|
|
|
src/PYPFullPinyinEditor.cc | 1 +
|
|
|
|
src/PYPPhoneticEditor.cc | 1 +
|
|
|
|
4 files changed, 4 insertions(+)
|
|
|
|
|
|
|
|
diff --git a/src/PYPBopomofoEditor.cc b/src/PYPBopomofoEditor.cc
|
|
|
|
index 331a651..1f201b5 100644
|
|
|
|
--- a/src/PYPBopomofoEditor.cc
|
|
|
|
+++ b/src/PYPBopomofoEditor.cc
|
|
|
|
@@ -241,6 +241,7 @@ LibPinyinBopomofoEditor::updatePinyin (void)
|
|
|
|
m_pinyin_len = 0;
|
|
|
|
/* TODO: check whether to replace "" with NULL. */
|
|
|
|
pinyin_parse_more_chewings (m_instance, "");
|
|
|
|
+ pinyin_guess_sentence(m_instance);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/PYPDoublePinyinEditor.cc b/src/PYPDoublePinyinEditor.cc
|
|
|
|
index 8a39a42..7e690f4 100644
|
|
|
|
--- a/src/PYPDoublePinyinEditor.cc
|
|
|
|
+++ b/src/PYPDoublePinyinEditor.cc
|
|
|
|
@@ -103,6 +103,7 @@ LibPinyinDoublePinyinEditor::updatePinyin (void)
|
|
|
|
m_pinyin_len = 0;
|
|
|
|
/* TODO: check whether to replace "" with NULL. */
|
|
|
|
pinyin_parse_more_double_pinyins (m_instance, "");
|
|
|
|
+ pinyin_guess_sentence(m_instance);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/PYPFullPinyinEditor.cc b/src/PYPFullPinyinEditor.cc
|
|
|
|
index 90e3f2f..eb58b6b 100644
|
|
|
|
--- a/src/PYPFullPinyinEditor.cc
|
|
|
|
+++ b/src/PYPFullPinyinEditor.cc
|
|
|
|
@@ -74,6 +74,7 @@ LibPinyinFullPinyinEditor::updatePinyin (void)
|
|
|
|
m_pinyin_len = 0;
|
|
|
|
/* TODO: check whether to replace "" with NULL. */
|
|
|
|
pinyin_parse_more_full_pinyins (m_instance, "");
|
|
|
|
+ pinyin_guess_sentence(m_instance);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc
|
|
|
|
index 13e6011..5e47be3 100644
|
|
|
|
--- a/src/PYPPhoneticEditor.cc
|
|
|
|
+++ b/src/PYPPhoneticEditor.cc
|
|
|
|
@@ -339,6 +339,7 @@ LibPinyinPhoneticEditor::getLookupCursor (void)
|
|
|
|
{
|
|
|
|
PinyinKeyVector & pinyins = m_instance->m_pinyin_keys;
|
|
|
|
guint lookup_cursor = getPinyinCursor ();
|
|
|
|
+
|
|
|
|
/* show candidates when pinyin cursor is at end. */
|
|
|
|
if (lookup_cursor == pinyins->len && m_pinyin_len == m_text.length())
|
|
|
|
lookup_cursor = 0;
|
|
|
|
--
|
|
|
|
1.7.10.4
|
|
|
|
|