summaryrefslogtreecommitdiffstats
path: root/src/ZYZZhuyinEngine.cc
diff options
context:
space:
mode:
authorPeng Wu <alexepico@gmail.com>2017-05-22 15:40:18 +0800
committerPeng Wu <alexepico@gmail.com>2017-05-22 15:40:18 +0800
commit597bbcd3f3d12ad0d03503c3046964fbc94f8043 (patch)
tree0dee6d0d2a4b79764c46465d5bf3a4719297663a /src/ZYZZhuyinEngine.cc
parent7007217ceecfbbc2c5fde42b6b2ff5e3aec578e5 (diff)
downloadibus-libzhuyin-597bbcd3f3d12ad0d03503c3046964fbc94f8043.tar.gz
ibus-libzhuyin-597bbcd3f3d12ad0d03503c3046964fbc94f8043.tar.xz
ibus-libzhuyin-597bbcd3f3d12ad0d03503c3046964fbc94f8043.zip
port to use libpinyin
Diffstat (limited to 'src/ZYZZhuyinEngine.cc')
-rw-r--r--src/ZYZZhuyinEngine.cc31
1 files changed, 11 insertions, 20 deletions
diff --git a/src/ZYZZhuyinEngine.cc b/src/ZYZZhuyinEngine.cc
index fae5e0b..afd26d4 100644
--- a/src/ZYZZhuyinEngine.cc
+++ b/src/ZYZZhuyinEngine.cc
@@ -43,20 +43,14 @@ ZhuyinEngine::ZhuyinEngine (IBusEngine *engine)
{
gint i;
- m_zhuyin_scheme = ZhuyinConfig::instance ().keyboardLayout ();
+ Config *config = &ZhuyinConfig::instance ();
- switch (m_zhuyin_scheme) {
- case CHEWING_STANDARD ... CHEWING_DACHEN_CP26:
+ if (config->isZhuyin ())
m_editors[MODE_INIT].reset
(new ZhuyinEditor (m_props, ZhuyinConfig::instance ()));
- break;
- case FULL_PINYIN_HANYU ... FULL_PINYIN_SECONDARY_BOPOMOFO:
+ else
m_editors[MODE_INIT].reset
(new PinyinEditor (m_props, ZhuyinConfig::instance ()));
- break;
- default:
- assert (FALSE);
- }
m_editors[MODE_RAW].reset
(new RawEditor (m_props, ZhuyinConfig::instance ()));
@@ -158,24 +152,21 @@ ZhuyinEngine::processKeyEvent (guint keyval, guint keycode, guint modifiers)
void
ZhuyinEngine::focusIn (void)
{
- /* TODO: check memory leak here.*/
- const ZhuyinScheme scheme = ZhuyinConfig::instance ().keyboardLayout ();
- if (scheme != m_zhuyin_scheme) {
- switch (scheme) {
- case CHEWING_STANDARD ... CHEWING_DACHEN_CP26:
+ Config *config = &ZhuyinConfig::instance ();
+
+ gboolean is_zhuyin = config->isZhuyin ();
+ if (is_zhuyin != m_is_zhuyin) {
+ if (config->isZhuyin ()) {
m_editors[MODE_INIT].reset
(new ZhuyinEditor (m_props, ZhuyinConfig::instance ()));
connectEditorSignals (m_editors[MODE_INIT]);
- break;
- case FULL_PINYIN_HANYU ... FULL_PINYIN_SECONDARY_BOPOMOFO:
+ } else {
m_editors[MODE_INIT].reset
(new PinyinEditor (m_props, ZhuyinConfig::instance ()));
connectEditorSignals (m_editors[MODE_INIT]);
- break;
- default:
- assert (FALSE);
}
- m_zhuyin_scheme = scheme;
+
+ m_is_zhuyin = is_zhuyin;
}
registerProperties (m_props.properties ());