summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI/QtSpellCheckHighlighter.cpp')
-rw-r--r--Swift/QtUI/QtSpellCheckHighlighter.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/Swift/QtUI/QtSpellCheckHighlighter.cpp b/Swift/QtUI/QtSpellCheckHighlighter.cpp
new file mode 100644
index 0000000..dba6100
--- /dev/null
+++ b/Swift/QtUI/QtSpellCheckHighlighter.cpp
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2014 Kevin Smith and Remko Tronçon
+ * Licensed under the GNU General Public License v3.
+ * See Documentation/Licenses/GPLv3.txt for more information.
+ */
+
+#include <Swift/QtUI/QtSpellCheckHighlighter.h>
+
+#include <SwifTools/SpellChecker.h>
+
+#include <Swift/QtUI/QtSwiftUtil.h>
+
+namespace Swift {
+
+QtSpellCheckHighlighter::QtSpellCheckHighlighter(QTextDocument* parent, SpellChecker* spellChecker) : QSyntaxHighlighter(parent), checker_(spellChecker) {
+
+}
+
+QtSpellCheckHighlighter::~QtSpellCheckHighlighter() {
+
+}
+
+void QtSpellCheckHighlighter::highlightBlock(const QString& text) {
+ misspelledPositions_.clear();
+ std::string fragment = Q2PSTRING(text);
+ checker_->checkFragment(fragment, misspelledPositions_);
+
+ QTextCharFormat spellingErrorFormat;
+ spellingErrorFormat.setUnderlineColor(QColor(Qt::red));
+ spellingErrorFormat.setUnderlineStyle(QTextCharFormat::SpellCheckUnderline);
+
+ foreach (PositionPair position, misspelledPositions_) {
+ setFormat(boost::get<0>(position), boost::get<1>(position) - boost::get<0>(position), spellingErrorFormat);
+ };
+}
+
+PositionPairList QtSpellCheckHighlighter::getMisspelledPositions() const {
+ return misspelledPositions_;
+}
+
+}