summaryrefslogtreecommitdiffstats
path: root/archiveview.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2014-04-04 16:13:24 +0200
committerArno <am@disconnect.de>2014-04-04 16:13:24 +0200
commit78c36ad6caab4a6c22bc95ee1f983ea841416ab9 (patch)
treeecbfd36fc3852c92d87570a2b7172d22473aa44c /archiveview.cpp
parentfedc8437f088a666462f21858f82733d2aa33761 (diff)
downloadSheMov-78c36ad6caab4a6c22bc95ee1f983ea841416ab9.tar.gz
SheMov-78c36ad6caab4a6c22bc95ee1f983ea841416ab9.tar.bz2
SheMov-78c36ad6caab4a6c22bc95ee1f983ea841416ab9.zip
Delete SeriesPart
Make it possible to delete a SeriesPart. This may happen if eg. you download the same clip/movie with a better quality.
Diffstat (limited to 'archiveview.cpp')
-rw-r--r--archiveview.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/archiveview.cpp b/archiveview.cpp
index 8df9bb6..1d49db0 100644
--- a/archiveview.cpp
+++ b/archiveview.cpp
@@ -395,6 +395,36 @@ void ArchiveTree::markAsFavorite(){
c->archiveTreeModel()->setFavorite(pId, !fav);
}
+void ArchiveTree::deleteFromTree(){
+ QModelIndex idx = firstSelected();
+ if(!idx.isValid()){
+ return;
+ }
+ int type = idx.data(ArchiveModel::TypeRole).toInt();
+ if(type == ArchiveModel::SeriesPartNode){
+ ArchiveController *c = SmGlobals::instance()->archiveController();
+ ArchiveFilesModel *fm = c->archiveFilesModel();
+ int seriesPartId = idx.data(ArchiveModel::SeriesPartIdRole).toInt();
+ QStringList files = fm->filesForSeriespart(seriesPartId);
+ if(!files.isEmpty()){
+ QString msg = tr("<b>This action will permanently delete the following files:</b><ul>");
+ foreach(QString f, files){
+ QString fli = QString("<li>%1</li>").arg(f);
+ msg.append(fli);
+ }
+ msg.append("</ul>");
+ msg.append(tr("<p>Continue?</p>"));
+ int answer = QMessageBox::warning(0, tr("Question"), msg, QMessageBox::Yes | QMessageBox::No);
+ if(answer == QMessageBox::Yes){
+ ArchiveModel *am = c->archiveTreeModel();
+ if(am->deleteSeriesPart(seriesPartId)){
+ am->refresh();
+ }
+ }
+ }
+ }
+}
+
void ArchiveTree::impossible(const QString msg){
QMessageBox::critical(this, tr("Error"), msg);
}