***************************************************************************/
#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)
{
- 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(QIcon(SmallIcon("fileclose")));
- 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)
{
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"