diff options
Diffstat (limited to 'findwidget.cpp')
-rw-r--r-- | findwidget.cpp | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/findwidget.cpp b/findwidget.cpp index f2f9bf1..ecaa9dd 100644 --- a/findwidget.cpp +++ b/findwidget.cpp @@ -31,7 +31,7 @@ FindWidget::FindWidget(QWidget *parent, QTextEdit *edit) : void FindWidget::setBackground() { - cursor = mTextpage->textCursor(); + QTextCursor cursor = mTextpage->textCursor(); // if match is found set background of QLineEdit to white, otherwise to red QPalette bgPalette( findEdit->palette() ); if ((cursor.position() == -1) && (!findEdit->text().isEmpty())) { @@ -44,11 +44,12 @@ void FindWidget::setBackground() 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); - cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::Start, QTextDocument::FindCaseSensitively); + QTextCursor cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::Start, QTextDocument::FindCaseSensitively); } mTextpage->setTextCursor(cursor); @@ -57,6 +58,8 @@ void FindWidget::slotFindNext() void FindWidget::slotFind() { + QTextCursor cursor = mTextpage->textCursor(); + if (cursor.anchor() == -1) { cursor = mTextpage->document()->find(findEdit->text(), cursor, QTextDocument::FindCaseSensitively); } else { @@ -73,6 +76,7 @@ void FindWidget::slotFindPrevious() flags |= QTextDocument::FindBackward; flags |= QTextDocument::FindCaseSensitively; + QTextCursor cursor = mTextpage->textCursor(); cursor = mTextpage->document()->find(findEdit->text(), cursor, flags); // if end of document is reached, restart search from beginning @@ -80,9 +84,9 @@ void FindWidget::slotFindPrevious() qDebug() << "cursor:" << cursor.position(); qDebug() << "length: " << mTextpage->document()->toPlainText().length()-1; - cursor.movePosition(QTextCursor::End); + cursor = mTextpage->document()->find(findEdit->text(), QTextCursor::End, QTextDocument::FindCaseSensitively); qDebug() << "cursor2: " << cursor.position(); - cursor = mTextpage->document()->find(findEdit->text(), cursor, flags); + QTextCursor cursor = mTextpage->document()->find(findEdit->text(), cursor, flags); qDebug() << "cursor3: " << cursor.position(); } @@ -108,8 +112,9 @@ void FindWidget::keyPressEvent( QKeyEvent* e ) } void FindWidget::slotClose() { + QTextCursor cursor = mTextpage->textCursor(); + if ( cursor.position() == -1) { - cursor = mTextpage->textCursor(); cursor.setPosition(0); mTextpage->setTextCursor(cursor); } |