diff options
Diffstat (limited to 'Swift/QtUI/QtTextEdit.cpp')
-rw-r--r-- | Swift/QtUI/QtTextEdit.cpp | 26 |
1 files changed, 14 insertions, 12 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; |