X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/d7d4fb9d26773c2d729b49d71af10e1378381ff3..ed0df8dc1fc9576e36c920882e7f4b00a2811113:/src/filterbar.cpp diff --git a/src/filterbar.cpp b/src/filterbar.cpp index dda36c1c4..7becada99 100644 --- a/src/filterbar.cpp +++ b/src/filterbar.cpp @@ -19,63 +19,50 @@ ***************************************************************************/ #include "filterbar.h" -#include -#include -#include -#include +#include +#include +#include +#include #include #include #include #include -#include "dolphinmainwindow.h" - -FilterBar::FilterBar(DolphinMainWindow* mainWindow, QWidget *parent, const char *name) : - QWidget(parent, name), - m_mainWindow(mainWindow) +FilterBar::FilterBar(QWidget* parent) : + QWidget(parent) { - const int gap = 3; - - QVBoxLayout* foo = new QVBoxLayout(this); - foo->setMargin(0); - foo->addSpacing(gap); + QHBoxLayout* hLayout = new QHBoxLayout(this); + hLayout->setMargin(0); - QHBoxLayout* layout = new QHBoxLayout(foo); - layout->setMargin(0); - layout->addSpacing(gap); + m_close = new QToolButton(this); + m_close->setAutoRaise(true); + m_close->setIcon(KIcon("dialog-close")); + m_close->setToolTip(i18nc("@info:tooltip", "Hide Filter Bar")); + hLayout->addWidget(m_close); + hLayout->addSpacing(KDialog::spacingHint()); - m_filter = new QLabel(i18n("Filter:"), this); - layout->addWidget(m_filter); - layout->addSpacing(KDialog::spacingHint()); + m_filter = new QLabel(i18nc("@label:textbox", "Filter:"), this); + hLayout->addWidget(m_filter); m_filterInput = new KLineEdit(this); + m_filterInput->setLayoutDirection(Qt::LeftToRight); + m_filterInput->setClearButtonShown(true); m_filter->setBuddy(m_filterInput); - layout->addWidget(m_filterInput); - - m_close = new QToolButton(this); - m_close->setAutoRaise(true); - m_close->setIcon(QIcon(SmallIcon("fileclose"))); - layout->addWidget(m_close); - layout->addSpacing(gap); + hLayout->addWidget(m_filterInput); connect(m_filterInput, SIGNAL(textChanged(const QString&)), - this, SIGNAL(signalFilterChanged(const QString&))); - connect(m_close, SIGNAL(clicked()), this, SLOT(hide())); - connect(m_close, SIGNAL(clicked()), - mainWindow, SLOT(slotShowFilterBarChanged())); + this, SIGNAL(filterChanged(const QString&))); + connect(m_close, SIGNAL(clicked()), this, SIGNAL(closeRequest())); } FilterBar::~FilterBar() { } -void FilterBar::hideEvent(QHideEvent* event) +void FilterBar::clear() { - if (!event->spontaneous()) { - m_filterInput->clear(); - m_filterInput->clearFocus(); - } + m_filterInput->clear(); } void FilterBar::showEvent(QShowEvent* event) @@ -89,8 +76,11 @@ void FilterBar::keyReleaseEvent(QKeyEvent* event) { QWidget::keyReleaseEvent(event); if ((event->key() == Qt::Key_Escape)) { - hide(); - m_mainWindow->slotShowFilterBarChanged(); + if (m_filterInput->text().isEmpty()) { + emit closeRequest(); + } else { + m_filterInput->clear(); + } } }