diff options
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); +} |