summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorInokinoki <veyx.shaw@gmail.com>2020-09-01 10:25:14 +0200
committerPeng Wu <alexepico@gmail.com>2020-09-02 11:40:12 +0800
commit04aa7f052d2d911349c79cae6d922e3f65d24752 (patch)
tree3f3504beaf453d2c089133250c23967ccf4b67ad /src
parent3de68dd731aeae11e1930a1f25ecdad3b2cc50d8 (diff)
downloadibus-libpinyin-04aa7f052d2d911349c79cae6d922e3f65d24752.tar.gz
ibus-libpinyin-04aa7f052d2d911349c79cae6d922e3f65d24752.tar.xz
ibus-libpinyin-04aa7f052d2d911349c79cae6d922e3f65d24752.zip
Enable Cloud Input for Full Pinyin mode
Co-authored-by: lianna07 <liannaxu07@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/Makefile.am24
-rw-r--r--src/PYPPhoneticEditor.cc14
-rw-r--r--src/PYPPhoneticEditor.h9
3 files changed, 47 insertions, 0 deletions
diff --git a/src/Makefile.am b/src/Makefile.am
index 1bd4ffa..d8a6802 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -105,6 +105,15 @@ ibus_engine_libpinyin_c_sources += \
$(NULL)
endif
+if ENABLE_CLOUD_INPUT_MODE
+ibus_engine_libpinyin_h_sources += \
+ PYPCloudCandidates.h \
+ $(NULL)
+ibus_engine_libpinyin_c_sources += \
+ PYPCloudCandidates.cc \
+ $(NULL)
+endif
+
if IBUS_BUILD_STROKE_INPUT_MODE
ibus_engine_libpinyin_c_sources += PYStrokeEditor.cc
endif
@@ -169,6 +178,21 @@ if IBUS_BUILD_LUA_EXTENSION
$(NULL)
endif
+if ENABLE_CLOUD_INPUT_MODE
+ibus_engine_libpinyin_CXXFLAGS += \
+ @LIBSOUP_CFLAGS@ \
+ @JSONGLIB_CFLAGS@ \
+ -DENABLE_CLOUD_INPUT_MODE \
+ $(NULL)
+endif
+
+if ENABLE_CLOUD_INPUT_MODE
+ibus_engine_libpinyin_LDADD += \
+ @LIBSOUP_LIBS@ \
+ @JSONGLIB_LIBS@ \
+ $(NULL)
+endif
+
if IBUS_BUILD_ENGLISH_INPUT_MODE
ibus_engine_libpinyin_CXXFLAGS += \
-DIBUS_BUILD_ENGLISH_INPUT_MODE \
diff --git a/src/PYPPhoneticEditor.cc b/src/PYPPhoneticEditor.cc
index 7b37e6f..8910045 100644
--- a/src/PYPPhoneticEditor.cc
+++ b/src/PYPPhoneticEditor.cc
@@ -37,6 +37,9 @@ PhoneticEditor::PhoneticEditor (PinyinProperties &props,
m_lua_converter_candidates (this),
#endif
m_emoji_candidates (this),
+#ifdef ENABLE_CLOUD_INPUT_MODE
+ m_cloud_candidates(this),
+#endif
m_traditional_candidates (this, config)
{
}
@@ -239,6 +242,12 @@ PhoneticEditor::updateCandidates (void)
}
#endif
+#ifdef ENABLE_CLOUD_INPUT_MODE
+ /* keep me behind the other kinds of candidates which are inserted after n-gram candidates */
+ if(m_config.enableCloudInput ())
+ m_cloud_candidates.processCandidates (m_candidates);
+#endif
+
if (!m_props.modeSimp ())
m_traditional_candidates.processCandidates (m_candidates);
@@ -367,6 +376,11 @@ PhoneticEditor::selectCandidateInternal (EnhancedCandidate & candidate)
case CANDIDATE_TRADITIONAL_CHINESE:
return m_traditional_candidates.selectCandidate (candidate);
+#ifdef ENABLE_CLOUD_INPUT_MODE
+ case CANDIDATE_CLOUD_INPUT:
+ return m_cloud_candidates.selectCandidate (candidate);
+#endif
+
#ifdef IBUS_BUILD_LUA_EXTENSION
case CANDIDATE_LUA_TRIGGER:
return m_lua_trigger_candidates.selectCandidate (candidate);
diff --git a/src/PYPPhoneticEditor.h b/src/PYPPhoneticEditor.h
index 45500b5..ecc9eb7 100644
--- a/src/PYPPhoneticEditor.h
+++ b/src/PYPPhoneticEditor.h
@@ -39,10 +39,15 @@
#include "PYPEmojiCandidates.h"
+#ifdef ENABLE_CLOUD_INPUT_MODE
+#include "PYPCloudCandidates.h"
+#endif
+
namespace PY {
class PhoneticEditor : public Editor {
friend class LibPinyinCandidates;
+ friend class CloudCandidates;
public:
PhoneticEditor (PinyinProperties & props, Config & config);
@@ -125,6 +130,10 @@ protected:
EmojiCandidates m_emoji_candidates;
TraditionalCandidates m_traditional_candidates;
+
+#ifdef ENABLE_CLOUD_INPUT_MODE
+ CloudCandidates m_cloud_candidates;
+#endif
};
};