From a2c0865ca9491d403ae0032bbc9894c452cc09d0 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 8 Feb 2013 02:21:09 +0100 Subject: Revamp MoveToBurn Only move selected files + covers to burn directory, not the entire series. Makes suggestForBurn more accurate, and we can kinda trust the selected size :) --- filestreewidget.cpp | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) (limited to 'filestreewidget.cpp') diff --git a/filestreewidget.cpp b/filestreewidget.cpp index cb253b3..cc92a67 100644 --- a/filestreewidget.cpp +++ b/filestreewidget.cpp @@ -85,32 +85,35 @@ void FilesTreeWidget::moveToBurn(){ return; } foreach(QModelIndex i, selected){ - int type = i.data(FilesTreeModel::FileTypeRole).toInt(); - if(type == FilesTreeModel::BackCover || type == FilesTreeModel::FrontCover || type == FilesTreeModel::GeneralCover){ - continue; - } int seriesPartId = i.data(FilesTreeModel::SeriesPartIdRole).toInt(); int seriesId = mSeriesModel->seriesIdByPartId(seriesPartId); if(seriesId != -1){ QModelIndex seriesIdx = mSeriesModel->findValue(seriesId, QModelIndex(), SeriesTreeModel::SeriesId); if(seriesIdx.isValid()){ - QString seriesName = seriesIdx.data(SeriesTreeModel::NameRole).toString(); + //create target dir acc. to seriesName + QString seriesName = seriesIdx.data(SeriesTreeModel::NameRole).toString(); QString dirName = seriesName.replace(' ', "."); QDir target(burnDir); target.mkdir(dirName); - const QHash files = mModel->filesBySeriesPartId(seriesPartId); + //move selected file + QString selSource = i.data(FilesTreeModel::FullPathRole).toString(); + QString selTarget = QString("%1/%2/%3").arg(burnDir).arg(dirName).arg(i.data(FilesTreeModel::FileNameRole).toString()); + QFile::rename(selSource, selTarget); + //copy covers + const QHash files = mModel->filesBySeriesPartId(seriesPartId); foreach(QString name, files.keys()){ QString sourceFile = Helper::createArchivePath(name, files.value(name)); - QString targetFile = QString("%1/%2/%3").arg(burnDir).arg(dirName).arg(name); + QString targetFile = QString("%1/%2/%3").arg(burnDir).arg(dirName).arg(name); int fileType = mModel->fileType(files.value(name)); - if(fileType == -1){ - continue; - } - if(fileType == FilesTreeModel::Movie){ - QFile::rename(sourceFile, targetFile); - }else{ - QFile::copy(sourceFile, targetFile); - } + switch(fileType){ + case FilesTreeModel::FrontCover: + case FilesTreeModel::BackCover: + case FilesTreeModel::GeneralCover: + QFile::copy(sourceFile, targetFile); + break; + default: + ; + } } } } -- cgit v1.2.3-70-g09d2