blob: 7ddd40b1b085b7a3df5b394ea52b65afcfdb5888 [file] [log] [blame]
#include "searchwidget.h"
#include <QDebug>
#include <QKeyEvent>
#include <QKeySequence>
SearchWidget::SearchWidget(QWidget *parent)
: QWidget(parent)
{
m_ui.setupUi(this);
m_ui.notFoundLabel->hide();
m_origPalette = m_ui.lineEdit->palette();
connect(m_ui.nextButton, SIGNAL(clicked()),
SLOT(slotSearchNext()));
connect(m_ui.prevButton, SIGNAL(clicked()),
SLOT(slotSearchPrev()));
connect(m_ui.closeButton, SIGNAL(clicked()),
SLOT(slotCancel()));
connect(m_ui.lineEdit, SIGNAL(returnPressed()),
SLOT(slotSearchNext()));
m_ui.nextButton->setShortcut(
QKeySequence::FindNext);
m_ui.prevButton->setShortcut(
QKeySequence::FindPrevious);
installEventFilter(this);
}
void SearchWidget::slotSearchNext()
{
QString txt = m_ui.lineEdit->text();
if (!txt.isEmpty())
emit searchNext(txt, caseSensitivity(), regexEnabled());
}
void SearchWidget::slotSearchPrev()
{
QString txt = m_ui.lineEdit->text();
if (!txt.isEmpty())
emit searchPrev(txt, caseSensitivity(), regexEnabled());
}
void SearchWidget::slotCancel()
{
hide();
}
void SearchWidget::showEvent(QShowEvent *event)
{
return QWidget::showEvent(event);
}
Qt::CaseSensitivity SearchWidget::caseSensitivity() const
{
if (m_ui.caseSensitiveBox->isChecked())
return Qt::CaseSensitive;
else
return Qt::CaseInsensitive;
}
bool SearchWidget::regexEnabled() const
{
return m_ui.regexBox->isChecked();
}
bool SearchWidget::eventFilter(QObject *object, QEvent* event)
{
if (event->type() == QEvent::KeyPress) {
if ((static_cast<QKeyEvent*>(event))->key() == Qt::Key_Escape) {
hide();
}
}
return QWidget::eventFilter(object, event);
}
void SearchWidget::setFound(bool found)
{
QPalette pal = m_origPalette;
pal.setColor(QPalette::Active, QPalette::Base,
found ? Qt::white : QColor(255, 102, 102));
m_ui.lineEdit->setPalette(pal);
m_ui.notFoundLabel->setVisible(!found);
}
void SearchWidget::show()
{
QWidget::show();
m_ui.lineEdit->selectAll();
m_ui.lineEdit->setFocus(Qt::ShortcutFocusReason);
m_ui.lineEdit->setPalette(m_origPalette);
}
#include "searchwidget.moc"