summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swift/QtUI')
-rw-r--r--Swift/QtUI/QtTextEdit.cpp26
-rw-r--r--Swift/QtUI/QtTextEdit.h6
2 files changed, 18 insertions, 14 deletions
diff --git a/Swift/QtUI/QtTextEdit.cpp b/Swift/QtUI/QtTextEdit.cpp
index 168e6fc..e63cd4f 100644
--- a/Swift/QtUI/QtTextEdit.cpp
+++ b/Swift/QtUI/QtTextEdit.cpp
@@ -133,12 +133,14 @@ void QtTextEdit::handleTextChanged() {
-void QtTextEdit::replaceMisspelledWord(const QString& word, int cursorPosition) {
+void QtTextEdit::replaceMisspelledWord(const QString& word, size_t cursorPosition) {
QTextCursor cursor = textCursor();
- PositionPair wordPosition = getWordFromCursor(cursorPosition);
- cursor.setPosition(boost::get<0>(wordPosition), QTextCursor::MoveAnchor);
- cursor.setPosition(boost::get<1>(wordPosition), QTextCursor::KeepAnchor);
- QTextCharFormat normalFormat;
- cursor.insertText(word, normalFormat);
+ auto wordPosition = getWordFromCursor(cursorPosition);
+ if (wordPosition) {
+ cursor.setPosition(boost::get<0>(*wordPosition), QTextCursor::MoveAnchor);
+ cursor.setPosition(boost::get<1>(*wordPosition), QTextCursor::KeepAnchor);
+ QTextCharFormat normalFormat;
+ cursor.insertText(word, normalFormat);
+ }
}
-PositionPair QtTextEdit::getWordFromCursor(int cursorPosition) {
+boost::optional<PositionPair> QtTextEdit::getWordFromCursor(size_t cursorPosition) {
PositionPairList misspelledPositions = highlighter_->getMisspelledPositions();
@@ -149,3 +151,3 @@ PositionPair QtTextEdit::getWordFromCursor(int cursorPosition) {
}
- return boost::make_tuple(-1,-1);
+ return boost::optional<PositionPair>(boost::make_tuple(-1,-1));
}
@@ -197,4 +199,4 @@ void QtTextEdit::addSuggestions(QMenu* menu, QContextMenuEvent* event)
QTextCursor cursor = cursorForPosition(event->pos());
- PositionPair wordPosition = getWordFromCursor(cursor.position());
- if (boost::get<0>(wordPosition) < 0) {
+ auto wordPosition = getWordFromCursor(cursor.position());
+ if (!wordPosition) {
// The click was executed outside a spellable word so no
@@ -203,4 +205,4 @@ void QtTextEdit::addSuggestions(QMenu* menu, QContextMenuEvent* event)
}
- cursor.setPosition(boost::get<0>(wordPosition), QTextCursor::MoveAnchor);
- cursor.setPosition(boost::get<1>(wordPosition), QTextCursor::KeepAnchor);
+ cursor.setPosition(boost::get<0>(*wordPosition), QTextCursor::MoveAnchor);
+ cursor.setPosition(boost::get<1>(*wordPosition), QTextCursor::KeepAnchor);
std::vector<std::string> wordList;
diff --git a/Swift/QtUI/QtTextEdit.h b/Swift/QtUI/QtTextEdit.h
index 7ce5d88..178f258 100644
--- a/Swift/QtUI/QtTextEdit.h
+++ b/Swift/QtUI/QtTextEdit.h
@@ -8,2 +8,4 @@
+#include <boost/optional.hpp>
+
#include <QPointer>
@@ -54,6 +56,6 @@ namespace Swift {
void addSuggestions(QMenu* menu, QContextMenuEvent* event);
- void replaceMisspelledWord(const QString& word, int cursorPosition);
+ void replaceMisspelledWord(const QString& word, size_t cursorPosition);
void setUpSpellChecker();
void spellCheckerSettingsWindow();
- PositionPair getWordFromCursor(int cursorPosition);
+ boost::optional<PositionPair> getWordFromCursor(size_t cursorPosition);
void updateStyleSheet();