summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArno <arno@disconnect.de>2018-03-31 18:38:53 +0200
committerArno <arno@disconnect.de>2018-03-31 18:38:53 +0200
commit252d11a29f198d683cce390f612aa74d3a1c223f (patch)
treec0d7ddf2c7eb3d58db1b7535543ee48d356a30de
parent3ef1fdee3a8f698cea243c86f4747a4060eb1763 (diff)
downloadSheMov-252d11a29f198d683cce390f612aa74d3a1c223f.tar.gz
SheMov-252d11a29f198d683cce390f612aa74d3a1c223f.tar.bz2
SheMov-252d11a29f198d683cce390f612aa74d3a1c223f.zip
Implement delete files for FSWidget
-rw-r--r--fswidget.cpp27
-rw-r--r--fswidget.h1
2 files changed, 27 insertions, 1 deletions
diff --git a/fswidget.cpp b/fswidget.cpp
index 92be9ae..66dc5d9 100644
--- a/fswidget.cpp
+++ b/fswidget.cpp
@@ -14,6 +14,7 @@
#include <QSqlDatabase>
#include <QElapsedTimer>
#include <QMenu>
+#include <QMessageBox>
#include <QSettings>
#include <QApplication>
@@ -46,6 +47,10 @@ void FSWidget::setupWidget(){
connect(refreshA, &QAction::triggered, this, &FSWidget::refresh);
toolbar->addSeparator();
toolbar->addAction(refreshA);
+ QAction *deleteFilesA = new QAction(QIcon(":/delete.png"), tr("Delete"), this);
+ connect(deleteFilesA, &QAction::triggered, this, &FSWidget::deleteFiles);
+ toolbar->addAction(deleteFilesA);
+ toolbar->addSeparator();
QAction *archiveMovieA = new QAction(QIcon(":/huge_bra.png"), tr("Archive movies..."), this);
connect(archiveMovieA, &QAction::triggered, this, &FSWidget::archiveMovie);
connect(mMovieWizard, &NewMovieWizard::accepted, this, &FSWidget::refresh);
@@ -111,7 +116,7 @@ void FSWidget::setupWidget(){
mProxy->setSourceModel(mModel);
mFileView->setModel(mProxy);
- addActions(QList<QAction*>() << backA << forwardA << Helper::createSeparator(this) << refreshA << archiveMovieA);
+ addActions(QList<QAction*>() << backA << forwardA << Helper::createSeparator(this) << refreshA << deleteFilesA << Helper::createSeparator(this) << archiveMovieA);
QVBoxLayout *mainLayout = new QVBoxLayout;
mainLayout->addLayout(topWL);
@@ -305,6 +310,26 @@ void FSWidget::gatherData(const QString &curDir){
emit message(msg);
}
+void FSWidget::deleteFiles(){
+ QModelIndexList selected = mFileView->selectionModel()->selectedRows();
+ if(selected.isEmpty()){
+ return;
+ }
+ QString question = QString(tr("Really delete %1 file(s)?")).arg(QString::number(selected.count()));
+ int answer = QMessageBox::question(this, tr("Delete"), question);
+ if(answer == QMessageBox::Yes){
+ int count = 0;
+ for(const QModelIndex &idx : selected){
+ if(QFile::remove(idx.data(FullPathRole).toString())){
+ ++count;
+ }
+ }
+ refresh();
+ QString msg = QString(tr("Deleted %1 file(s) successfully!")).arg(QString::number(count));
+ emit message(msg);
+ }
+}
+
void FSWidget::archiveMovie(){
QModelIndexList selected = mFileView->selectionModel()->selectedRows();
if(selected.isEmpty()){
diff --git a/fswidget.h b/fswidget.h
index f55ad99..236f6e0 100644
--- a/fswidget.h
+++ b/fswidget.h
@@ -30,6 +30,7 @@ class FSWidget : public QWidget {
void insertItem(QComboBox *cb, const QString &text);
void removeItem(QComboBox *cb);
void gatherData(const QString &curDir);
+ void deleteFiles();
void archiveMovie();
void advanceDir(int by);
int queryCount(QSqlQuery &q, const QString &arg);