diff --git a/src/libime/pinyin/pinyinime.cpp b/src/libime/pinyin/pinyinime.cpp index c497358..fd18841 100644 --- a/src/libime/pinyin/pinyinime.cpp +++ b/src/libime/pinyin/pinyinime.cpp @@ -5,6 +5,8 @@ */ #include "pinyinime.h" #include "libime/core/userlanguagemodel.h" +#include "libime/pinyin/pinyincorrectionprofile.h" +#include "libime/pinyin/pinyinencoder.h" #include "pinyindecoder.h" namespace libime { @@ -25,6 +27,7 @@ class PinyinIMEPrivate : fcitx::QPtrHolder { std::unique_ptr model_; std::unique_ptr decoder_; std::shared_ptr spProfile_; + std::shared_ptr correctionProfile_; size_t nbest_ = 1; size_t beamSize_ = Decoder::beamSizeDefault; size_t frameSize_ = Decoder::frameSizeDefault; @@ -174,4 +177,20 @@ std::shared_ptr PinyinIME::shuangpinProfile() const { FCITX_D(); return d->spProfile_; } + +void PinyinIME::setCorrectionProfile( + std::shared_ptr profile) { + FCITX_D(); + if (d->correctionProfile_ != profile) { + d->correctionProfile_ = std::move(profile); + emit(); + } +} + +std::shared_ptr +PinyinIME::correctionProfile() const { + FCITX_D(); + return d->correctionProfile_; +} + } // namespace libime diff --git a/src/libime/pinyin/pinyinime.h b/src/libime/pinyin/pinyinime.h index 63db6f9..48e77c8 100644 --- a/src/libime/pinyin/pinyinime.h +++ b/src/libime/pinyin/pinyinime.h @@ -9,6 +9,7 @@ #include "libimepinyin_export.h" #include #include +#include #include #include #include @@ -46,6 +47,10 @@ class LIBIMEPINYIN_EXPORT PinyinIME : public fcitx::ConnectableObject { void setPreeditMode(PinyinPreeditMode mode); PinyinPreeditMode preeditMode() const; + void setCorrectionProfile( + std::shared_ptr profile); + std::shared_ptr correctionProfile() const; + float maxDistance() const; float minPath() const;