Changeset View
Changeset View
Standalone View
Standalone View
ui/searchlineedit.cpp
Show All 23 Lines | |||||
24 | #include <kmessagebox.h> | 24 | #include <kmessagebox.h> | ||
25 | #include <klocalizedstring.h> | 25 | #include <klocalizedstring.h> | ||
26 | 26 | | |||
27 | SearchLineEdit::SearchLineEdit( QWidget * parent, Okular::Document * document ) | 27 | SearchLineEdit::SearchLineEdit( QWidget * parent, Okular::Document * document ) | ||
28 | : KLineEdit( parent ), m_document( document ), m_minLength( 0 ), | 28 | : KLineEdit( parent ), m_document( document ), m_minLength( 0 ), | ||
29 | m_caseSensitivity( Qt::CaseInsensitive ), | 29 | m_caseSensitivity( Qt::CaseInsensitive ), | ||
30 | m_searchType( Okular::Document::AllDocument ), m_id( -1 ), | 30 | m_searchType( Okular::Document::AllDocument ), m_id( -1 ), | ||
31 | m_moveViewport( false ), m_changed( false ), m_fromStart( true ), | 31 | m_moveViewport( false ), m_changed( false ), m_fromStart( true ), | ||
32 | m_findAsYouType( true ), m_searchRunning( false ) | 32 | m_findAsYouType( true ), m_searchRunning( false ), m_wholeWords( false ) | ||
33 | { | 33 | { | ||
34 | setObjectName( QStringLiteral( "SearchLineEdit" ) ); | 34 | setObjectName( QStringLiteral( "SearchLineEdit" ) ); | ||
35 | setClearButtonEnabled( true ); | 35 | setClearButtonEnabled( true ); | ||
36 | 36 | | |||
37 | // a timer to ensure that we don't flood the document with requests to search | 37 | // a timer to ensure that we don't flood the document with requests to search | ||
38 | m_inputDelayTimer = new QTimer(this); | 38 | m_inputDelayTimer = new QTimer(this); | ||
39 | m_inputDelayTimer->setSingleShot(true); | 39 | m_inputDelayTimer->setSingleShot(true); | ||
40 | connect(m_inputDelayTimer, &QTimer::timeout, this, &SearchLineEdit::startSearch); | 40 | connect(m_inputDelayTimer, &QTimer::timeout, this, &SearchLineEdit::startSearch); | ||
41 | 41 | | |||
42 | connect(this, &SearchLineEdit::textChanged, this, &SearchLineEdit::slotTextChanged); | 42 | connect(this, &SearchLineEdit::textChanged, this, &SearchLineEdit::slotTextChanged); | ||
43 | connect(document, &Okular::Document::searchFinished, this, &SearchLineEdit::searchFinished); | 43 | connect(document, &Okular::Document::searchFinished, this, &SearchLineEdit::searchFinished); | ||
44 | } | 44 | } | ||
45 | 45 | | |||
46 | void SearchLineEdit::clearText() | 46 | void SearchLineEdit::clearText() | ||
47 | { | 47 | { | ||
48 | clear(); | 48 | clear(); | ||
49 | } | 49 | } | ||
50 | 50 | | |||
51 | void SearchLineEdit::setSearchCaseSensitivity( Qt::CaseSensitivity cs ) | 51 | void SearchLineEdit::setSearchCaseSensitivity( Qt::CaseSensitivity cs ) | ||
52 | { | 52 | { | ||
53 | m_caseSensitivity = cs; | 53 | m_caseSensitivity = cs; | ||
54 | m_changed = true; | 54 | m_changed = true; | ||
55 | } | 55 | } | ||
56 | 56 | | |||
57 | | ||||
58 | void SearchLineEdit::setWholeWords( bool wholeWords ) | ||||
59 | { | ||||
60 | m_wholeWords = wholeWords; | ||||
61 | m_changed = true; | ||||
62 | } | ||||
63 | | ||||
57 | void SearchLineEdit::setSearchMinimumLength( int length ) | 64 | void SearchLineEdit::setSearchMinimumLength( int length ) | ||
58 | { | 65 | { | ||
59 | m_minLength = length; | 66 | m_minLength = length; | ||
60 | m_changed = true; | 67 | m_changed = true; | ||
61 | } | 68 | } | ||
62 | 69 | | |||
63 | void SearchLineEdit::setSearchType( Okular::Document::SearchType type ) | 70 | void SearchLineEdit::setSearchType( Okular::Document::SearchType type ) | ||
64 | { | 71 | { | ||
▲ Show 20 Lines • Show All 172 Lines • ▼ Show 20 Line(s) | 236 | { | |||
237 | m_changed = false; | 244 | m_changed = false; | ||
238 | // search text if have more than 3 chars or else clear search | 245 | // search text if have more than 3 chars or else clear search | ||
239 | QString thistext = text(); | 246 | QString thistext = text(); | ||
240 | if ( thistext.length() >= qMax( m_minLength, 1 ) ) | 247 | if ( thistext.length() >= qMax( m_minLength, 1 ) ) | ||
241 | { | 248 | { | ||
242 | emit searchStarted(); | 249 | emit searchStarted(); | ||
243 | m_searchRunning = true; | 250 | m_searchRunning = true; | ||
244 | m_document->searchText( m_id, thistext, m_fromStart, m_caseSensitivity, | 251 | m_document->searchText( m_id, thistext, m_fromStart, m_caseSensitivity, | ||
245 | m_searchType, m_moveViewport, m_color ); | 252 | m_searchType, m_moveViewport, m_color, m_wholeWords ); | ||
246 | } | 253 | } | ||
247 | else | 254 | else | ||
248 | m_document->resetSearch( m_id ); | 255 | m_document->resetSearch( m_id ); | ||
249 | } | 256 | } | ||
250 | 257 | | |||
251 | void SearchLineEdit::searchFinished( int id, Okular::Document::SearchStatus endStatus ) | 258 | void SearchLineEdit::searchFinished( int id, Okular::Document::SearchStatus endStatus ) | ||
252 | { | 259 | { | ||
253 | // ignore the searches not started by this search edit | 260 | // ignore the searches not started by this search edit | ||
▲ Show 20 Lines • Show All 79 Lines • Show Last 20 Lines |