diff options
| author | Tobias Markmann <tm@ayena.de> | 2017-06-26 03:58:09 (GMT) | 
|---|---|---|
| committer | Tobias Markmann <tm@ayena.de> | 2017-06-26 09:13:57 (GMT) | 
| commit | 38b577abe56c76805e2f2bebb5194bee28359145 (patch) | |
| tree | cb05fdfd725936c1fbe42e9245220befeadc8f6f /Swift/QtUI | |
| parent | 96528818b201c5a250701b58bb9c4d11048b237e (diff) | |
| download | swift-38b577abe56c76805e2f2bebb5194bee28359145.zip swift-38b577abe56c76805e2f2bebb5194bee28359145.tar.bz2 | |
Use size_t instead of int in SpellParser::PositionPair
Use of int required a lot of casts when using the indices
with std::string methods. Furthermore code used -1 as
error code, which should have used std::optional for invalid
PoistionPair instnaces.
Test-Information:
All tests pass on Debian Stretch with clang-3.9.
Change-Id: Ic5c44ed606deb58b6123d654f25fc50f047dfbc8
Diffstat (limited to 'Swift/QtUI')
| -rw-r--r-- | Swift/QtUI/QtTextEdit.cpp | 26 | ||||
| -rw-r--r-- | Swift/QtUI/QtTextEdit.h | 6 | 
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 @@ -131,23 +131,25 @@ 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();      for (auto& misspelledPosition : misspelledPositions) {          if (cursorPosition >= boost::get<0>(misspelledPosition) && cursorPosition <= boost::get<1>(misspelledPosition)) {              return misspelledPosition;          }      } -    return boost::make_tuple(-1,-1); +    return boost::optional<PositionPair>(boost::make_tuple(-1,-1));  }  QSize QtTextEdit::sizeHint() const { @@ -195,14 +197,14 @@ void QtTextEdit::addSuggestions(QMenu* menu, QContextMenuEvent* event)      if (checker_ && highlighter_) {          QAction* insertPoint = menu->actions().first();          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              // suggestions are necessary              return;          } -        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;          checker_->getSuggestions(Q2PSTRING(cursor.selectedText()), wordList);          if (wordList.size() == 0) { 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 @@ -6,6 +6,8 @@  #pragma once +#include <boost/optional.hpp> +  #include <QPointer>  #include <QTextEdit> @@ -52,10 +54,10 @@ namespace Swift {      private:          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();      private: | 
 Swift
 Swift