summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2016-09-04 07:46:14 +0200
committerArno <arno@disconnect.de>2016-09-04 07:46:14 +0200
commit8b81dff651da35d48d161d9a79d6a3e0b48d7f56 (patch)
tree5ed8768c1c9f923f7b69d976d1c0e07f827eb725
parenteebc2927d4de8456b23915554f8b53f5c33df58d (diff)
downloadShemovCleaner-8b81dff651da35d48d161d9a79d6a3e0b48d7f56.tar.gz
ShemovCleaner-8b81dff651da35d48d161d9a79d6a3e0b48d7f56.tar.bz2
ShemovCleaner-8b81dff651da35d48d161d9a79d6a3e0b48d7f56.zip
Implement delete files
-rw-r--r--filewidget.cpp33
-rw-r--r--filewidget.h1
2 files changed, 26 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();
}
diff --git a/filewidget.h b/filewidget.h
index db9799f..d16f307 100644
--- a/filewidget.h
+++ b/filewidget.h
@@ -32,6 +32,7 @@ class FileWidget : public QWidget {
public slots:
void fileSelectionChanged(const QItemSelection &selected, const QItemSelection &deselected);
void cd(const QString &to);
+ void deleteFiles();
private slots:
void gatherData();