From: Peter Penz Date: Sun, 7 Nov 2010 14:55:33 +0000 (+0000) Subject: Make the filter-behavior similar to applications like Kate, where activating the... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/456d529295b7e9ee2a776480dce3a7151528b0dd Make the filter-behavior similar to applications like Kate, where activating the filter lets focus it again. BUG: 256160 FIXED-IN: 4.6.0 svn path=/trunk/KDE/kdebase/apps/; revision=1193912 --- diff --git a/src/dolphinmainwindow.cpp b/src/dolphinmainwindow.cpp index 8017e9c82..8bba990c7 100644 --- a/src/dolphinmainwindow.cpp +++ b/src/dolphinmainwindow.cpp @@ -841,9 +841,9 @@ void DolphinMainWindow::disableStopAction() actionCollection()->action("stop")->setEnabled(false); } -void DolphinMainWindow::toggleFilterBarVisibility(bool show) +void DolphinMainWindow::showFilterBar() { - m_activeViewContainer->setFilterBarVisible(show); + m_activeViewContainer->setFilterBarVisible(true); } void DolphinMainWindow::toggleEditLocation() @@ -1517,11 +1517,11 @@ void DolphinMainWindow::setupActions() KStandardAction::home(this, SLOT(goHome()), actionCollection()); // setup 'Tools' menu - KToggleAction* showFilterBar = actionCollection()->add("show_filter_bar"); + KAction* showFilterBar = actionCollection()->addAction("show_filter_bar"); showFilterBar->setText(i18nc("@action:inmenu Tools", "Show Filter Bar")); showFilterBar->setIcon(KIcon("view-filter")); showFilterBar->setShortcut(Qt::CTRL | Qt::Key_I); - connect(showFilterBar, SIGNAL(triggered(bool)), this, SLOT(toggleFilterBarVisibility(bool))); + connect(showFilterBar, SIGNAL(triggered()), this, SLOT(showFilterBar())); KAction* compareFiles = actionCollection()->addAction("compare_files"); compareFiles->setText(i18nc("@action:inmenu Tools", "Compare Files")); diff --git a/src/dolphinmainwindow.h b/src/dolphinmainwindow.h index 4a747ac5a..fdfa93144 100644 --- a/src/dolphinmainwindow.h +++ b/src/dolphinmainwindow.h @@ -250,10 +250,7 @@ private slots: void enableStopAction(); void disableStopAction(); - /** - * Toggles between showing and hiding of the filter bar - */ - void toggleFilterBarVisibility(bool show); + void showFilterBar(); /** * Toggles between edit and browse mode of the navigation bar. diff --git a/src/dolphinviewcontainer.cpp b/src/dolphinviewcontainer.cpp index 7fd0cfa29..9e927ee98 100644 --- a/src/dolphinviewcontainer.cpp +++ b/src/dolphinviewcontainer.cpp @@ -303,6 +303,7 @@ void DolphinViewContainer::setFilterBarVisible(bool visible) Q_ASSERT(m_filterBar != 0); if (visible) { m_filterBar->show(); + m_filterBar->setFocus(); } else { closeFilterBar(); } diff --git a/src/dolphinviewcontainer.h b/src/dolphinviewcontainer.h index 6abeab4b0..44f5dd906 100644 --- a/src/dolphinviewcontainer.h +++ b/src/dolphinviewcontainer.h @@ -111,6 +111,8 @@ public slots: /** * Popups the filter bar above the status bar if \a visible is true. + * It \a visible is true, it is assured that the filter bar gains + * the keyboard focus. */ void setFilterBarVisible(bool visible); diff --git a/src/filterbar/filterbar.cpp b/src/filterbar/filterbar.cpp index b108570ce..c5dd99d78 100644 --- a/src/filterbar/filterbar.cpp +++ b/src/filterbar/filterbar.cpp @@ -48,6 +48,7 @@ FilterBar::FilterBar(QWidget* parent) : m_filterInput->setClearButtonShown(true); connect(m_filterInput, SIGNAL(textChanged(const QString&)), this, SIGNAL(filterChanged(const QString&))); + setFocusProxy(m_filterInput); // Apply layout QHBoxLayout* hLayout = new QHBoxLayout(this);