summaryrefslogtreecommitdiffstats
path: root/filestreewidget.cpp
diff options
context:
space:
mode:
authorArno <am@disconnect.de>2013-02-08 02:21:09 +0100
committerArno <am@disconnect.de>2013-02-08 02:21:09 +0100
commita2c0865ca9491d403ae0032bbc9894c452cc09d0 (patch)
tree61e69082eb77a35a3d3e1f7d786884e2ad895f03 /filestreewidget.cpp
parent91750c1a4247ab436ffff5a518efd7004c01b98d (diff)
downloadSheMov-a2c0865ca9491d403ae0032bbc9894c452cc09d0.tar.gz
SheMov-a2c0865ca9491d403ae0032bbc9894c452cc09d0.tar.bz2
SheMov-a2c0865ca9491d403ae0032bbc9894c452cc09d0.zip
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 :)
Diffstat (limited to 'filestreewidget.cpp')
-rw-r--r--filestreewidget.cpp33
1 files changed, 18 insertions, 15 deletions
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<QString, QString> 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<QString, QString> 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:
+ ;
+ }
}
}
}