1 #include "searchwidget.h"
6 SearchWidget::SearchWidget(QWidget *parent)
11 m_ui.notFoundLabel->hide();
12 m_origPalette = m_ui.lineEdit->palette();
14 connect(m_ui.nextButton, SIGNAL(clicked()),
15 SLOT(slotSearchNext()));
16 connect(m_ui.prevButton, SIGNAL(clicked()),
17 SLOT(slotSearchPrev()));
18 connect(m_ui.closeButton, SIGNAL(clicked()),
20 connect(m_ui.lineEdit, SIGNAL(returnPressed()),
21 SLOT(slotSearchNext()));
23 installEventFilter(this);
26 void SearchWidget::slotSearchNext()
28 QString txt = m_ui.lineEdit->text();
30 emit searchNext(txt, caseSensitivity());
33 void SearchWidget::slotSearchPrev()
35 QString txt = m_ui.lineEdit->text();
37 emit searchPrev(txt, caseSensitivity());
40 void SearchWidget::slotCancel()
45 void SearchWidget::showEvent(QShowEvent *event)
47 m_ui.lineEdit->selectAll();
48 m_ui.lineEdit->setFocus(Qt::ShortcutFocusReason);
49 m_ui.lineEdit->setPalette(m_origPalette);
50 return QWidget::showEvent(event);
53 Qt::CaseSensitivity SearchWidget::caseSensitivity() const
55 if (m_ui.caseSensitiveBox->isChecked())
56 return Qt::CaseSensitive;
58 return Qt::CaseInsensitive;
61 bool SearchWidget::eventFilter(QObject *object, QEvent* event)
63 if (event->type() == QEvent::KeyPress) {
64 if ((static_cast<QKeyEvent*>(event))->key() == Qt::Key_Escape) {
68 return QWidget::eventFilter(object, event);
71 void SearchWidget::setFound(bool found)
73 QPalette pal = m_origPalette;
74 pal.setColor(QPalette::Active, QPalette::Base,
75 found ? Qt::white : QColor(255, 102, 102));
76 m_ui.lineEdit->setPalette(pal);
77 m_ui.notFoundLabel->setVisible(!found);
80 #include "searchwidget.moc"