]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/filterbar.cpp
Fixed regression when refactoring the Information Panel: Don't forget to give a visua...
[dolphin.git] / src / filterbar.cpp
index 46c28f3c2f2d0774a16b3e741803f02c87c779c1..7becada99b27cc8baed82cec33ea6083ff04a5f0 100644 (file)
  ***************************************************************************/
 #include "filterbar.h"
 
-#include <QBoxLayout>
-#include <QKeyEvent>
-#include <QLabel>
-#include <QToolButton>
+#include <QtGui/QBoxLayout>
+#include <QtGui/QKeyEvent>
+#include <QtGui/QLabel>
+#include <QtGui/QToolButton>
 
 #include <kdialog.h>
 #include <klocale.h>
 #include <klineedit.h>
 #include <kiconloader.h>
 
-#include "dolphinmainwindow.h"
-
 FilterBar::FilterBar(QWidget* parent) :
-        QWidget(parent)
+    QWidget(parent)
 {
-    const int gap = 3;
-
-    QVBoxLayout* vLayout = new QVBoxLayout(this);
-    vLayout->setMargin(0);
-    vLayout->addSpacing(gap);
-
-    QHBoxLayout* hLayout = new QHBoxLayout(vLayout);
+    QHBoxLayout* hLayout = new QHBoxLayout(this);
     hLayout->setMargin(0);
-    hLayout->addSpacing(gap);
 
-    m_filter = new QLabel(i18n("Filter:"), this);
-    hLayout->addWidget(m_filter);
+    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(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);
     hLayout->addWidget(m_filterInput);
 
-    m_close = new QToolButton(this);
-    m_close->setAutoRaise(true);
-    m_close->setIcon(KIcon("list-remove"));
-    m_close->setToolTip(i18n("Hide Filter Bar"));
-    hLayout->addWidget(m_close);
-    hLayout->addSpacing(gap);
-
     connect(m_filterInput, SIGNAL(textChanged(const QString&)),
             this, SIGNAL(filterChanged(const QString&)));
-    connect(m_close, SIGNAL(clicked()), this, SLOT(emitCloseRequest()));
+    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)
@@ -86,13 +76,12 @@ void FilterBar::keyReleaseEvent(QKeyEvent* event)
 {
     QWidget::keyReleaseEvent(event);
     if ((event->key() == Qt::Key_Escape)) {
-        emitCloseRequest();
+        if (m_filterInput->text().isEmpty()) {
+            emit closeRequest();
+        } else {
+            m_filterInput->clear();
+        }
     }
 }
 
-void FilterBar::emitCloseRequest()
-{
-    emit closeRequest();
-}
-
 #include "filterbar.moc"