#ifndef SPELLCHECKER_H #define SPELLCHECKER_H #include #include #include #include #ifdef USE_HUNSPELL class Hunspell; #endif class QTextCodec; class SpellChecker : public QObject { Q_OBJECT Q_PROPERTY(QString lang READ lang WRITE setLang NOTIFY langChanged) Q_PROPERTY(QString userDict READ userDict WRITE setUserDict NOTIFY userDictChanged) public: explicit SpellChecker(QObject *parent = nullptr); ~SpellChecker(); Q_INVOKABLE bool spell(const QString& word); Q_INVOKABLE QVariantList suggest(const QString &word); Q_INVOKABLE void ignoreWord(const QString &word); Q_INVOKABLE void addToUserWordlist(const QString &word); Q_INVOKABLE bool isInit() const; const QString& lang() const; void setLang(const QString& lang); const QString& userDict() const; void setUserDict(const QString& userDict); signals: void langChanged(); void userDictChanged(); private: void initHunspell(); private: QString m_lang; QString m_userDict; QQuickTextDocument *m_document; #ifdef USE_HUNSPELL Hunspell *m_hunspell; #endif QTextCodec *m_codec; }; #endif // SPELLCHECKER_H