diff options
author | Arno <am@disconnect.de> | 2015-03-21 09:15:16 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2015-03-21 09:15:16 +0100 |
commit | 9544f4d790695e707e7e8b9cb44f9cb0fed0dbcb (patch) | |
tree | bf6af4d83c91f5a2594a3777fb31f620e6a852d2 /archiveview.cpp | |
parent | e6b7e5e0fccef756398982bd51137bb433df7f4a (diff) | |
download | SheMov-9544f4d790695e707e7e8b9cb44f9cb0fed0dbcb.tar.gz SheMov-9544f4d790695e707e7e8b9cb44f9cb0fed0dbcb.tar.bz2 SheMov-9544f4d790695e707e7e8b9cb44f9cb0fed0dbcb.zip |
Delete emtpy series
Enable the delete option in ArchiveTree, but only allow delete when it
has no children.
Diffstat (limited to 'archiveview.cpp')
-rw-r--r-- | archiveview.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/archiveview.cpp b/archiveview.cpp index b7ae5e6..9c05b09 100644 --- a/archiveview.cpp +++ b/archiveview.cpp @@ -425,10 +425,10 @@ void ArchiveTree::deleteFromTree(){ return; } int type = idx.data(ArchiveModel::TypeRole).toInt(); + ArchiveController *c = SmGlobals::instance()->archiveController(); + ArchiveFilesModel *fm = c->archiveFilesModel(); + ArchiveModel *am = c->archiveTreeModel(); if(type == ArchiveModel::SeriesPartNode){ - ArchiveController *c = SmGlobals::instance()->archiveController(); - ArchiveFilesModel *fm = c->archiveFilesModel(); - ArchiveModel *am = c->archiveTreeModel(); int seriesPartId = idx.data(ArchiveModel::SeriesPartIdRole).toInt(); QStringList files = fm->filesForSeriespart(seriesPartId); if(!files.isEmpty()){ @@ -448,6 +448,21 @@ void ArchiveTree::deleteFromTree(){ } am->refresh(); } + if(type == ArchiveModel::SeriesNode){ + if(mProxy->hasChildren(idx)){ + QMessageBox::critical(0, tr("Critical"), tr("Series is not empty!"), QMessageBox::Ok); + return; + } + int seriesId = idx.data(ArchiveModel::GenericIdRole).toInt(); + if(seriesId > 0){ + QString msg = QString(tr("Really delete series %1?")).arg(idx.data(ArchiveModel::NameRole).toString()); + int retval = QMessageBox::question(0, tr("Question"), msg, QMessageBox::Ok | QMessageBox::Cancel); + if(retval == QMessageBox::Ok){ + am->deleteSeries(seriesId); + am->refresh(); + } + } + } } void ArchiveTree::newPart(){ |