mirror of
https://invent.kde.org/graphics/okular
synced 2024-10-03 06:34:13 +00:00
introduce a SearchLineWidget, which is a SearchLineEdit + AnimatedWidget
this small widget is useful for providing a search line edit with an animated widget next to it, with the latter shown while the search is in progress currently, the animation is slightly delayed, so we avoid very quick results (ie the next occurrence is on the same page) to show the animation for a very short time svn path=/trunk/KDE/kdegraphics/okular/; revision=926299
This commit is contained in:
parent
e7ce996372
commit
d89901852c
|
@ -11,10 +11,12 @@
|
||||||
#include "searchlineedit.h"
|
#include "searchlineedit.h"
|
||||||
|
|
||||||
// local includes
|
// local includes
|
||||||
|
#include "animatedwidget.h"
|
||||||
#include "core/document.h"
|
#include "core/document.h"
|
||||||
|
|
||||||
// qt/kde includes
|
// qt/kde includes
|
||||||
#include <qapplication.h>
|
#include <qapplication.h>
|
||||||
|
#include <qlayout.h>
|
||||||
#include <qtimer.h>
|
#include <qtimer.h>
|
||||||
#include <kcolorscheme.h>
|
#include <kcolorscheme.h>
|
||||||
|
|
||||||
|
@ -189,4 +191,42 @@ void SearchLineEdit::searchFinished( int id, Okular::Document::SearchStatus endS
|
||||||
emit searchStopped();
|
emit searchStopped();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
SearchLineWidget::SearchLineWidget( QWidget * parent, Okular::Document * document )
|
||||||
|
: QWidget( parent )
|
||||||
|
{
|
||||||
|
QHBoxLayout *layout = new QHBoxLayout( this );
|
||||||
|
layout->setMargin( 0 );
|
||||||
|
|
||||||
|
m_edit = new SearchLineEdit( this, document );
|
||||||
|
layout->addWidget( m_edit );
|
||||||
|
|
||||||
|
m_anim = new AnimatedWidget( "process-working", this );
|
||||||
|
m_anim->setFixedSize( 22, 22 );
|
||||||
|
layout->addWidget( m_anim );
|
||||||
|
|
||||||
|
m_timer = new QTimer( this );
|
||||||
|
m_timer->setSingleShot( true );
|
||||||
|
connect( m_timer, SIGNAL( timeout() ), m_anim, SLOT( start() ) );
|
||||||
|
|
||||||
|
connect( m_edit, SIGNAL( searchStarted() ), this, SLOT( slotSearchStarted() ) );
|
||||||
|
connect( m_edit, SIGNAL( searchStopped() ), this, SLOT( slotSearchStopped() ) );
|
||||||
|
}
|
||||||
|
|
||||||
|
SearchLineEdit* SearchLineWidget::lineEdit() const
|
||||||
|
{
|
||||||
|
return m_edit;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SearchLineWidget::slotSearchStarted()
|
||||||
|
{
|
||||||
|
m_timer->start( 100 );
|
||||||
|
}
|
||||||
|
|
||||||
|
void SearchLineWidget::slotSearchStopped()
|
||||||
|
{
|
||||||
|
m_timer->stop();
|
||||||
|
m_anim->stop();
|
||||||
|
}
|
||||||
|
|
||||||
#include "searchlineedit.moc"
|
#include "searchlineedit.moc"
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include <klineedit.h>
|
#include <klineedit.h>
|
||||||
|
|
||||||
class QTimer;
|
class QTimer;
|
||||||
|
class AnimatedWidget;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @short A line edit for find-as-you-type search. Outputs to the Document.
|
* @short A line edit for find-as-you-type search. Outputs to the Document.
|
||||||
|
@ -63,4 +64,22 @@ class SearchLineEdit : public KLineEdit
|
||||||
void searchFinished( int id, Okular::Document::SearchStatus endStatus );
|
void searchFinished( int id, Okular::Document::SearchStatus endStatus );
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class SearchLineWidget : public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
SearchLineWidget( QWidget *parent, Okular::Document *document );
|
||||||
|
|
||||||
|
SearchLineEdit* lineEdit() const;
|
||||||
|
|
||||||
|
private slots:
|
||||||
|
void slotSearchStarted();
|
||||||
|
void slotSearchStopped();
|
||||||
|
|
||||||
|
private:
|
||||||
|
SearchLineEdit *m_edit;
|
||||||
|
AnimatedWidget* m_anim;
|
||||||
|
QTimer *m_timer;
|
||||||
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in a new issue