diff options
author | Arno <arno@disconnect.de> | 2018-03-31 18:38:53 +0200 |
---|---|---|
committer | Arno <arno@disconnect.de> | 2018-03-31 18:38:53 +0200 |
commit | 252d11a29f198d683cce390f612aa74d3a1c223f (patch) | |
tree | c0d7ddf2c7eb3d58db1b7535543ee48d356a30de | |
parent | 3ef1fdee3a8f698cea243c86f4747a4060eb1763 (diff) | |
download | SheMov-252d11a29f198d683cce390f612aa74d3a1c223f.tar.gz SheMov-252d11a29f198d683cce390f612aa74d3a1c223f.tar.bz2 SheMov-252d11a29f198d683cce390f612aa74d3a1c223f.zip |
Implement delete files for FSWidget
-rw-r--r-- | fswidget.cpp | 27 | ||||
-rw-r--r-- | fswidget.h | 1 |
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()){ @@ -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); |