diff options
author | Ubbo Veentjer <[email protected]> | 2016-02-21 15:21:12 +0000 |
---|---|---|
committer | Ubbo Veentjer <[email protected]> | 2016-02-21 15:21:12 +0000 |
commit | e1e07bb385ba1cb7e26bbc784d5c7c2e0a320f67 (patch) | |
tree | 06ae7d63a3a657fafc7e1ac0b915ec1e617eda80 | |
parent | keygeneration for both rsa and dsa keys (diff) | |
download | gpg4usb-e1e07bb385ba1cb7e26bbc784d5c7c2e0a320f67.tar.gz gpg4usb-e1e07bb385ba1cb7e26bbc784d5c7c2e0a320f67.zip |
findwidget kind of works, does not crash anymore
-rw-r--r-- | findwidget.cpp | 37 |
1 files changed, 24 insertions, 13 deletions
diff --git a/findwidget.cpp b/findwidget.cpp index ecaa9dd..ba0dd15 100644 --- a/findwidget.cpp +++ b/findwidget.cpp @@ -46,13 +46,17 @@ void FindWidget::slotFindNext() { QTextCursor cursor = mTextpage->textCursor(); cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively); + // if end of document is reached, restart search from beginning if (cursor.position() == -1) { - //cursor.setPosition(0); - QTextCursor cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::Start, QTextDocument::FindCaseSensitively); + cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively); } - mTextpage->setTextCursor(cursor); + // cursor should not stay at -1, otherwise text is not editable + // todo: check how gedit handles this + if(cursor.position() != -1) { + mTextpage->setTextCursor(cursor); + } this->setBackground(); } @@ -66,7 +70,16 @@ void FindWidget::slotFind() cursor = mTextpage->document()->find(findEdit->text(), cursor.anchor(), QTextDocument::FindCaseSensitively); } - mTextpage->setTextCursor(cursor); + // if end of document is reached, restart search from beginning + if (cursor.position() == -1) { + cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively); + } + + // cursor should not stay at -1, otherwise text is not editable + // todo: check how gedit handles this + if(cursor.position() != -1) { + mTextpage->setTextCursor(cursor); + } this->setBackground(); } @@ -79,18 +92,16 @@ void FindWidget::slotFindPrevious() QTextCursor cursor = mTextpage->textCursor(); cursor = mTextpage->document()->find(findEdit->text(), cursor, flags); - // if end of document is reached, restart search from beginning + // if begin of document is reached, restart search from end if (cursor.position() == -1) { - qDebug() << "cursor:" << cursor.position(); - qDebug() << "length: " << mTextpage->document()->toPlainText().length()-1; - - cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::End, QTextDocument::FindCaseSensitively); - qDebug() << "cursor2: " << cursor.position(); - QTextCursor cursor = mTextpage->document()->find(findEdit->text(), cursor, flags); - qDebug() << "cursor3: " << cursor.position(); + cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::End, flags); } - mTextpage->setTextCursor(cursor); + // cursor should not stay at -1, otherwise text is not editable + // todo: check how gedit handles this + if(cursor.position() != -1) { + mTextpage->setTextCursor(cursor); + } this->setBackground(); } |