summaryrefslogtreecommitdiffstats
path: root/filewidget.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'filewidget.cpp')
-rw-r--r--filewidget.cpp33
1 files changed, 25 insertions, 8 deletions
diff --git a/filewidget.cpp b/filewidget.cpp
index 5727e88..ac75d48 100644
--- a/filewidget.cpp
+++ b/filewidget.cpp
@@ -24,6 +24,7 @@
#include <QItemSelectionModel>
#include <QGroupBox>
#include <QKeyEvent>
+#include <QMessageBox>
#include "filewidget.h"
#include "filesorter.h"
@@ -293,31 +294,47 @@ void FileWidget::cd(const QString &to){
gatherData();
}
+void FileWidget::deleteFiles(){
+ QModelIndexList selFiles = mFileView->selectionModel()->selectedRows(NameColumn);
+ const QString msg = QString(tr("Really delete %1 file(s)?")).arg(QString::number(selFiles.count()));
+ int retval = QMessageBox::question(this, tr("Delete files..."), msg);
+ if(retval == QMessageBox::Yes){
+ foreach(QModelIndex idx, selFiles){
+ QString fp = idx.data(FullPathRole).toString();
+ QFile::remove(fp);
+ }
+ gatherData();
+ }
+}
+
void FileWidget::keyPressEvent(QKeyEvent *e){
if(e->key() == Qt::Key_S && (e->modifiers() & Qt::ControlModifier)){
mFilter->setFocus();
mFilter->selectAll();
- e->accept();
- return;
+ goto exit;
}
if(e->key() == Qt::Key_D && (e->modifiers() & Qt::ControlModifier)){
mDir->setFocus();
mDir->selectAll();
- e->accept();
- return;
+ goto exit;
}
if(e->key() == Qt::Key_F && (e->modifiers() & Qt::ControlModifier)){
mFileView->setFocus();
- e->accept();
- return;
+ goto exit;
}
if(mFileView->hasFocus()){
if(e->key() == Qt::Key_Return){
QModelIndex idx = mFileView->selectionModel()->selectedRows(NameColumn).at(0);
itemSelected(idx);
- e->accept();
- return;
+ goto exit;
+ }
+ if(e->key() == Qt::Key_Delete){
+ deleteFiles();
+ goto exit;
}
}
QWidget::keyPressEvent(e);
+
+ exit:
+ e->accept();
}