add ctrl+f shortcut to FileBrowser & default focus to filter widget when opened

This commit is contained in:
Colin Wallace
2015-04-28 07:08:35 +00:00
parent c35cfd2672
commit 616de244cc
3 changed files with 26 additions and 0 deletions

View File

@@ -58,10 +58,13 @@ public slots:
void filterItems( const QString & filter );
void reloadTree( void );
private slots:
void giveFocusToFilter();
private:
bool filterItems( QTreeWidgetItem * item, const QString & filter );
virtual void keyPressEvent( QKeyEvent * ke );
void focusInEvent(QFocusEvent * event);
void addItems( const QString & path );

View File

@@ -32,6 +32,7 @@
#include <QMdiArea>
#include <QMdiSubWindow>
#include <QMessageBox>
#include <QShortcut>
#include "FileBrowser.h"
#include "BBTrackContainer.h"
@@ -97,6 +98,10 @@ FileBrowser::FileBrowser(const QString & directories, const QString & filter,
addContentWidget( ops );
// Whenever the FileBrowser has focus, Ctrl+F should direct focus to its filter box.
QShortcut *filterFocusShortcut = new QShortcut( QKeySequence( Qt::CTRL + Qt::Key_F ), this, SLOT(giveFocusToFilter()) );
filterFocusShortcut->setContext(Qt::WidgetWithChildrenShortcut);
reloadTree();
show();
}
@@ -253,7 +258,21 @@ void FileBrowser::reloadTree( void )
filterItems( text );
}
void FileBrowser::giveFocusToFilter()
{
if (!m_filterEdit->hasFocus())
{
// give focus to filter text box and highlight its text for quick editing if not previously focused
m_filterEdit->setFocus();
m_filterEdit->selectAll();
}
}
void FileBrowser::focusInEvent(QFocusEvent * event)
{
// when the FileBrowser is opened, direct focus to the filter for quick filtering
giveFocusToFilter();
}
void FileBrowser::addItems(const QString & path )

View File

@@ -158,6 +158,10 @@ void SideBar::toggleButton( QAbstractButton * button )
activeWidget->setVisible( button->isChecked() );
toolButton->setToolButtonStyle( button->isChecked() ?
Qt::ToolButtonTextBesideIcon : Qt::ToolButtonIconOnly );
if ( button->isChecked() )
{
activeWidget->setFocus();
}
}
}