aboutsummaryrefslogtreecommitdiffstats
path: root/findwidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'findwidget.cpp')
-rw-r--r--findwidget.cpp37
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();
}