From 252d11a29f198d683cce390f612aa74d3a1c223f Mon Sep 17 00:00:00 2001 From: Arno Date: Sat, 31 Mar 2018 18:38:53 +0200 Subject: Implement delete files for FSWidget --- fswidget.cpp | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) (limited to 'fswidget.cpp') diff --git a/fswidget.cpp b/fswidget.cpp index 92be9ae..66dc5d9 100644 --- a/fswidget.cpp +++ b/fswidget.cpp @@ -14,6 +14,7 @@ #include #include #include +#include #include #include @@ -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() << backA << forwardA << Helper::createSeparator(this) << refreshA << archiveMovieA); + addActions(QList() << 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()){ -- cgit v1.2.3-70-g09d2