File indexing completed on 2024-04-28 15:34:18
0001 /* This file is part of the KDE libraries 0002 0003 SPDX-FileCopyrightText: 2009 Jakub Stachowski <qbast@go2.pl> 0004 0005 SPDX-License-Identifier: LGPL-2.0-or-later 0006 */ 0007 0008 #ifndef LANGUAGEFILTER_H 0009 #define LANGUAGEFILTER_H 0010 0011 #include "sonnetcore_export.h" 0012 #include <tokenizer_p.h> 0013 0014 #include <QString> 0015 0016 namespace Sonnet 0017 { 0018 class LanguageFilterPrivate; 0019 0020 /** 0021 @short Deternmines language for fragments of text 0022 0023 This class takes fragments produced by supplied tokenizer and provides additional information: 0024 language used in each fragment and if there is spell and grammar checker suitable for the fragment. 0025 0026 */ 0027 class SONNETCORE_EXPORT LanguageFilter : public AbstractTokenizer 0028 { 0029 public: 0030 /** Creates language filter for given tokenizer. LanguageFilter takes complete ownership of given tokenizer. 0031 This means that no source's methods should be called anymore. 0032 */ 0033 LanguageFilter(AbstractTokenizer *source); 0034 LanguageFilter(const LanguageFilter &other); 0035 0036 ~LanguageFilter() override; 0037 0038 /** Language for token last returned by next() */ 0039 QString language() const; 0040 0041 /** Returns true if there is spellchecker installed for last token's language */ 0042 bool isSpellcheckable() const; 0043 0044 /** Returns true if there is grammar checker installed for last token's language */ 0045 // bool isGrammarCheckable() const; 0046 void setBuffer(const QString &buffer) override; 0047 bool hasNext() const override; 0048 Token next() override; 0049 QString buffer() const override; 0050 void replace(int position, int len, const QString &newWord) override; 0051 0052 private: 0053 LanguageFilterPrivate *const d; 0054 }; 0055 } 0056 #endif