add ctrl+f shortcut to FileBrowser & default focus to filter widget when opened
This commit is contained in:
@@ -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 );
|
||||
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user