diff --git a/core/document.h b/core/document.h index 0e4982322..1fd86262f 100644 --- a/core/document.h +++ b/core/document.h @@ -588,8 +588,8 @@ class OKULARCORE_EXPORT Document : public QObject NextMatch, ///< Search next match PreviousMatch, ///< Search previous match AllDocument, ///< Search complete document - GoogleAll, ///< Search all words in google style - GoogleAny ///< Search any words in google style + GoogleAll, ///< Search complete document (all words in google style) + GoogleAny ///< Search complete document (any words in google style) }; /** diff --git a/ui/searchlineedit.cpp b/ui/searchlineedit.cpp index 85516efb2..baac8be03 100644 --- a/ui/searchlineedit.cpp +++ b/ui/searchlineedit.cpp @@ -39,7 +39,6 @@ SearchLineEdit::SearchLineEdit( QWidget * parent, Okular::Document * document ) connect(m_inputDelayTimer, &QTimer::timeout, this, &SearchLineEdit::startSearch); connect(this, &SearchLineEdit::textChanged, this, &SearchLineEdit::slotTextChanged); - connect(this, &SearchLineEdit::returnPressed, this, &SearchLineEdit::slotReturnPressed); connect(document, &Okular::Document::searchFinished, this, &SearchLineEdit::searchFinished); } @@ -65,8 +64,16 @@ void SearchLineEdit::setSearchType( Okular::Document::SearchType type ) if ( type == m_searchType ) return; + disconnect(this, &SearchLineEdit::returnPressed, this, &SearchLineEdit::slotReturnPressed); + m_searchType = type; + // Only connect Enter for next/prev searches, the rest of searches are document global so + // next/prev serach does not make sense for them + if (m_searchType == Okular::Document::NextMatch || m_searchType == Okular::Document::PreviousMatch) { + connect(this, &SearchLineEdit::returnPressed, this, &SearchLineEdit::slotReturnPressed); + } + if ( !m_changed ) m_changed = ( m_searchType != Okular::Document::NextMatch && m_searchType != Okular::Document::PreviousMatch ); }