aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--findwidget.cpp42
-rw-r--r--findwidget.h5
2 files changed, 20 insertions, 27 deletions
diff --git a/findwidget.cpp b/findwidget.cpp
index 5e653a3..cc1f73d 100644
--- a/findwidget.cpp
+++ b/findwidget.cpp
@@ -29,15 +29,9 @@ FindWidget::FindWidget(QWidget *parent, QTextEdit *edit) :
QTimer::singleShot(0, findEdit, SLOT(setFocus()));
}
-void FindWidget::slotFindNext()
+void FindWidget::setBackground()
{
- 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(), cursor, QTextDocument::FindCaseSensitively);
- }
-
+ 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())) {
@@ -46,8 +40,19 @@ void FindWidget::slotFindNext()
bgPalette.setColor( QPalette::Base, Qt::white);
}
findEdit->setPalette(bgPalette);
+}
+
+void FindWidget::slotFindNext()
+{
+ 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);
+ }
mTextpage->setTextCursor(cursor);
+ this->setBackground();
}
void FindWidget::slotFind()
@@ -58,16 +63,8 @@ void FindWidget::slotFind()
cursor = mTextpage->document()->find(findEdit->text(), cursor.anchor(), QTextDocument::FindCaseSensitively);
}
- // if match is found set background of QLineEdit to white, otherwise to red
- QPalette bgPalette( findEdit->palette() );
- if ((cursor.position() == -1) && (!findEdit->text().isEmpty())) {
- bgPalette.setColor( QPalette::Base, "#ececba");
- } else {
- bgPalette.setColor( QPalette::Base, Qt::white);
- }
- findEdit->setPalette(bgPalette);
-
mTextpage->setTextCursor(cursor);
+ this->setBackground();
}
void FindWidget::slotFindPrevious()
@@ -87,19 +84,10 @@ void FindWidget::slotFindPrevious()
qDebug() << "cursor2: " << cursor.position();
cursor = mTextpage->document()->find(findEdit->text(), cursor, flags);
qDebug() << "cursor3: " << cursor.position();
-
}
- // if match is found set background of QLineEdit to white, otherwise to red
- QPalette bgPalette( findEdit->palette() );
- if ((cursor.position() == -1) && (!findEdit->text().isEmpty())) {
- bgPalette.setColor( QPalette::Base, "#ececba");
- } else {
- bgPalette.setColor( QPalette::Base, Qt::white);
- }
- findEdit->setPalette(bgPalette);
-
mTextpage->setTextCursor(cursor);
+ this->setBackground();
}
void FindWidget::keyPressEvent( QKeyEvent* e )
diff --git a/findwidget.h b/findwidget.h
index 31a7a9d..2e95d89 100644
--- a/findwidget.h
+++ b/findwidget.h
@@ -23,6 +23,11 @@ public:
private:
void keyPressEvent( QKeyEvent* e );
+ /**
+ * @details Set background of findEdit to red, if no match is found (Documents textcursor position equals -1),
+ * otherwise set it to white.
+ */
+ void setBackground();
QTextEdit *mTextpage; /** Textedit associated to the notification */
QLineEdit *findEdit; /** Label holding the text shown in verifyNotification */