diff options
author | Arno <arno@disconnect.de> | 2016-09-04 05:05:04 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2016-09-04 05:05:04 +0200 |
commit | 23a23ef364ee13cba413a3bd904ec4391838abbf (patch) | |
tree | b36dac8eea0e4074f09831d16361337b541e389a /filewidget.cpp | |
parent | e047ecc96b8873d4e293793a67a33027af291efa (diff) | |
download | ShemovCleaner-23a23ef364ee13cba413a3bd904ec4391838abbf.tar.gz ShemovCleaner-23a23ef364ee13cba413a3bd904ec4391838abbf.tar.bz2 ShemovCleaner-23a23ef364ee13cba413a3bd904ec4391838abbf.zip |
Navigate by keyboard
* Enter -> itemDoubleClicked
* CTRL-S -> filter
* CTRL-D -> select directory
* CTRL-F -> focus files
Diffstat (limited to 'filewidget.cpp')
-rw-r--r-- | filewidget.cpp | 33 |
1 files changed, 32 insertions, 1 deletions
diff --git a/filewidget.cpp b/filewidget.cpp index ef4e0ad..478ab26 100644 --- a/filewidget.cpp +++ b/filewidget.cpp @@ -23,6 +23,7 @@ #include <QJsonDocument> #include <QItemSelectionModel> #include <QGroupBox> +#include <QKeyEvent> #include "filewidget.h" #include "filesorter.h" @@ -59,7 +60,7 @@ void FileWidget::setupGui(){ connect(mFilter, SIGNAL(returnPressed()), this, SLOT(filter())); QPushButton *searchBtn = new QPushButton(tr("Filter")); connect(searchBtn, SIGNAL(clicked()), this, SLOT(filter())); - QPushButton *clearBtn = new QPushButton(tr("Clear")); + QPushButton *clearBtn = new QPushButton(tr("&Clear")); connect(clearBtn, SIGNAL(clicked()), this, SLOT(clearFilter())); QGroupBox *filterGB = new QGroupBox(tr("Filter")); QHBoxLayout *filterGBL = new QHBoxLayout; @@ -102,6 +103,7 @@ void FileWidget::setupGui(){ setLayout(mainLayout); connect(mFileView->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)), this, SLOT(fileSelectionChanged(QItemSelection,QItemSelection))); + mFileView->setFocus(); } void FileWidget::selectDir(){ @@ -280,3 +282,32 @@ void FileWidget::itemDoubleClicked(const QModelIndex &idx){ } } } + +void FileWidget::keyPressEvent(QKeyEvent *e){ + if(e->key() == Qt::Key_S && (e->modifiers() & Qt::ControlModifier)){ + mFilter->setFocus(); + mFilter->selectAll(); + e->accept(); + return; + } + if(e->key() == Qt::Key_D && (e->modifiers() & Qt::ControlModifier)){ + mDir->setFocus(); + mDir->selectAll(); + e->accept(); + return; + } + if(e->key() == Qt::Key_F && (e->modifiers() & Qt::ControlModifier)){ + mFileView->setFocus(); + e->accept(); + return; + } + if(mFileView->hasFocus()){ + if(e->key() == Qt::Key_Return){ + QModelIndex idx = mFileView->selectionModel()->selectedRows(NameColumn).at(0); + itemDoubleClicked(idx); + e->accept(); + return; + } + } + QWidget::keyPressEvent(e); +} |