#pragma once #include #include #include #include #include "googlepinyin/atomdictbase.h" #include "googlepinyin/dictbuilder.h" #include "googlepinyin/dictdef.h" #include "googlepinyin/dictlist.h" #include "googlepinyin/dicttrie.h" #include "googlepinyin/lpicache.h" #include "googlepinyin/matrixsearch.h" #include "googlepinyin/mystdlib.h" #include "googlepinyin/ngram.h" #include "googlepinyin/pinyinime.h" #include "googlepinyin/searchutility.h" #include "googlepinyin/spellingtable.h" #include "googlepinyin/spellingtrie.h" #include "googlepinyin/splparser.h" #include "googlepinyin/sync.h" #include "googlepinyin/userdict.h" #include "googlepinyin/utf16char.h" #include "googlepinyin/utf16reader.h" using namespace ime_pinyin; namespace YSG { class InputCore : public QObject { Q_OBJECT Q_PROPERTY(bool m_able READ getEnable WRITE setEnable NOTIFY signal_input_able) public: explicit InputCore(QObject *parent = nullptr); ~InputCore() override; bool init(int max_spell_len = 64, int max_out_len = 64); void deinit(); unsigned int search(const QString &spell); int cur_search_pos(); void reset_search(); bool getEnable(); void setEnable(bool able); QStringList get_candidate(unsigned int cnadnum); signals: void signal_input_able(bool); private: bool m_able = false; int m_spell_len; int m_out_len; const QString dict_path = "dict_pinyin.dat"; const QString dict_user_path = "dict_pinyin_user.dat"; }; }