|
|
|
|
@ -24,7 +24,8 @@ SearchLineEdit::SearchLineEdit( QWidget * parent, Okular::Document * document ) |
|
|
|
|
: KLineEdit( parent ), m_document( document ), m_minLength( 0 ), |
|
|
|
|
m_caseSensitivity( Qt::CaseInsensitive ), |
|
|
|
|
m_searchType( Okular::Document::AllDocument ), m_id( -1 ), |
|
|
|
|
m_moveViewport( false ), m_changed( false ), m_fromStart( true ) |
|
|
|
|
m_moveViewport( false ), m_changed( false ), m_fromStart( true ), |
|
|
|
|
m_searchRunning( false ) |
|
|
|
|
{ |
|
|
|
|
setObjectName( "SearchLineEdit" ); |
|
|
|
|
setClearButtonShown( true ); |
|
|
|
|
@ -87,6 +88,11 @@ void SearchLineEdit::setSearchFromStart( bool fromStart ) |
|
|
|
|
m_fromStart = fromStart; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
bool SearchLineEdit::isSearchRunning() const |
|
|
|
|
{ |
|
|
|
|
return m_searchRunning; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SearchLineEdit::restartSearch() |
|
|
|
|
{ |
|
|
|
|
m_inputDelayTimer->stop(); |
|
|
|
|
@ -94,6 +100,18 @@ void SearchLineEdit::restartSearch() |
|
|
|
|
m_changed = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SearchLineEdit::stopSearch() |
|
|
|
|
{ |
|
|
|
|
if ( m_id == -1 || !m_searchRunning ) |
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
m_inputDelayTimer->stop(); |
|
|
|
|
// ### this should just cancel the search with id m_id, not all of them
|
|
|
|
|
m_document->cancelSearch(); |
|
|
|
|
// flagging as "changed" so the search will be reset at the next one
|
|
|
|
|
m_changed = true; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
void SearchLineEdit::findNext() |
|
|
|
|
{ |
|
|
|
|
if ( m_id == -1 || m_searchType != Okular::Document::NextMatch ) |
|
|
|
|
@ -102,6 +120,7 @@ void SearchLineEdit::findNext() |
|
|
|
|
if ( !m_changed ) |
|
|
|
|
{ |
|
|
|
|
emit searchStarted(); |
|
|
|
|
m_searchRunning = true; |
|
|
|
|
m_document->continueSearch( m_id, m_searchType ); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
@ -116,6 +135,7 @@ void SearchLineEdit::findPrev() |
|
|
|
|
if ( !m_changed ) |
|
|
|
|
{ |
|
|
|
|
emit searchStarted(); |
|
|
|
|
m_searchRunning = true; |
|
|
|
|
m_document->continueSearch( m_id, m_searchType ); |
|
|
|
|
} |
|
|
|
|
else |
|
|
|
|
@ -157,6 +177,7 @@ void SearchLineEdit::startSearch() |
|
|
|
|
if ( thistext.length() >= qMax( m_minLength, 1 ) ) |
|
|
|
|
{ |
|
|
|
|
emit searchStarted(); |
|
|
|
|
m_searchRunning = true; |
|
|
|
|
m_document->searchText( m_id, thistext, m_fromStart, m_caseSensitivity, |
|
|
|
|
m_searchType, m_moveViewport, m_color ); |
|
|
|
|
} |
|
|
|
|
@ -188,6 +209,7 @@ void SearchLineEdit::searchFinished( int id, Okular::Document::SearchStatus endS |
|
|
|
|
setPalette( pal ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
m_searchRunning = false; |
|
|
|
|
emit searchStopped(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|