1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72
|
// krazy:excludeall=spelling
/**
* test_plaintextedit.cpp
*
* SPDX-FileCopyrightText: 2015 Laurent Montel <montel@kde.org>
*
* SPDX-License-Identifier: LGPL-2.1-or-later
*/
// Local
#include <dictionarycombobox.h>
#include <highlighter.h>
#include <spellcheckdecorator.h>
// Qt
#include <QApplication>
#include <QDebug>
#include <QPlainTextEdit>
#include <QVBoxLayout>
//@@snippet_begin(simple_email_example)
class CommentCheckDecorator : public Sonnet::SpellCheckDecorator
{
public:
explicit CommentCheckDecorator(QPlainTextEdit *edit)
: Sonnet::SpellCheckDecorator(edit)
{
}
protected:
bool isSpellCheckingEnabledForBlock(const QString &blockText) const override
{
qDebug() << blockText;
return !blockText.startsWith(QLatin1Char('#'));
}
};
//@@snippet_end
int main(int argc, char **argv)
{
QApplication app(argc, argv);
QWidget window;
Sonnet::DictionaryComboBox *comboBox = new Sonnet::DictionaryComboBox;
//@@snippet_begin(simple_textedit_example)
QPlainTextEdit *textEdit = new QPlainTextEdit;
textEdit->setPlainText(
QString::fromLatin1("This is a sample buffer. Whih this thingg will "
"be checkin for misstakes. Whih, Enviroment, govermant. Whih."));
Sonnet::SpellCheckDecorator *installer = new Sonnet::SpellCheckDecorator(textEdit);
installer->highlighter()->setCurrentLanguage(QStringLiteral("en"));
//@@snippet_end
QObject::connect(comboBox, &Sonnet::DictionaryComboBox::dictionaryChanged, installer->highlighter(), &Sonnet::Highlighter::setCurrentLanguage);
QPlainTextEdit *commentTextEdit = new QPlainTextEdit;
commentTextEdit->setPlainText(QStringLiteral("John Doe said:\n# Hello how aree you?\nI am ffine thanks"));
installer = new CommentCheckDecorator(commentTextEdit);
installer->highlighter()->setCurrentLanguage(QStringLiteral("en"));
QObject::connect(comboBox, &Sonnet::DictionaryComboBox::dictionaryChanged, installer->highlighter(), &Sonnet::Highlighter::setCurrentLanguage);
QVBoxLayout *layout = new QVBoxLayout(&window);
layout->addWidget(comboBox);
layout->addWidget(textEdit);
layout->addWidget(commentTextEdit);
window.show();
return app.exec();
}
|