support (not so much tested) for the Next search type

svn path=/trunk/playground/graphics/okular/; revision=643515
remotes/origin/KDE/4.0
Pino Toscano 19 years ago
parent 0ac881f1f3
commit 05b00c2200
  1. 25
      ui/searchlineedit.cpp
  2. 2
      ui/searchlineedit.h

@ -18,7 +18,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_searchType( Okular::Document::AllDocument ), m_id( -1 ),
m_changed( false )
{
setObjectName( "SearchLineEdit" );
@ -39,32 +40,49 @@ void SearchLineEdit::clearText()
void SearchLineEdit::setSearchCaseSensitivity( Qt::CaseSensitivity cs )
{
m_caseSensitivity = cs;
m_changed = true;
}
void SearchLineEdit::setSearchMinimumLength( int length )
{
m_minLength = length;
m_changed = true;
}
void SearchLineEdit::setSearchType( Okular::Document::SearchType type )
{
m_searchType = type;
m_changed = true;
}
void SearchLineEdit::setSearchId( int id )
{
m_id = id;
m_changed = true;
}
void SearchLineEdit::setSearchColor( const QColor &color )
{
m_color = color;
m_changed = true;
}
void SearchLineEdit::restartSearch()
{
m_inputDelayTimer->stop();
m_inputDelayTimer->start( 500 );
m_changed = true;
}
void SearchLineEdit::findNext()
{
if ( m_id == -1 || m_searchType != Okular::Document::NextMatch )
return;
if ( !m_changed )
m_document->continueSearch( m_id );
else
startSearch();
}
void SearchLineEdit::slotTextChanged( const QString & text )
@ -84,6 +102,11 @@ void SearchLineEdit::startSearch()
if ( m_id == -1 || !m_color.isValid() )
return;
if ( m_changed && m_searchType == Okular::Document::NextMatch )
{
m_document->resetSearch( m_id );
}
m_changed = false;
// search text if have more than 3 chars or else clear search
QString thistext = text();
bool ok = true;

@ -35,6 +35,7 @@ class SearchLineEdit : public KLineEdit
void setSearchColor( const QColor &color );
void restartSearch();
void findNext();
private:
Okular::Document * m_document;
@ -44,6 +45,7 @@ class SearchLineEdit : public KLineEdit
Okular::Document::SearchType m_searchType;
int m_id;
QColor m_color;
bool m_changed;
private slots:
void slotTextChanged( const QString & text );

Loading…
Cancel
Save