summaryrefslogtreecommitdiffstats
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
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 :)
-rw-r--r--archivetreeview.cpp1
-rw-r--r--filestreemodel.cpp2
-rw-r--r--filestreewidget.cpp33
3 files changed, 20 insertions, 16 deletions
diff --git a/archivetreeview.cpp b/archivetreeview.cpp
index 9b7807a..6ee36f1 100644
--- a/archivetreeview.cpp
+++ b/archivetreeview.cpp
@@ -149,6 +149,7 @@ void ArchiveTreeView::showForBurn(bool toggled){
mFilesModel->setForBurn();
mFilesWidget->filesTree()->expandAll();
mFilesWidget->filesTree()->resizeColumnToContents(0);
+ mFilesWidget->filesTree()->resizeColumnToContents(2);
}
}
diff --git a/filestreemodel.cpp b/filestreemodel.cpp
index 729a4fc..a762c1f 100644
--- a/filestreemodel.cpp
+++ b/filestreemodel.cpp
@@ -95,7 +95,7 @@ void FilesTreeModel::setIds(const QList<int> &seriesPartIds){
void FilesTreeModel::setForBurn(){
mDisplayMode = Burn;
- QString query = QString("SELECT iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality, ifiles_id, series.tseries_name, seriesparts.iseriespart, seriesparts.bfavorite FROM files, seriesparts, series WHERE iseriespart_id IN (SELECT iseriesparts_id from seriesparts where bfavorite = false) AND files.iseriespart_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id AND sifiletype = 1 AND idvd < 0 ORDER BY iseriespart_id");
+ QString query = QString("SELECT iseriespart_id, tfilename, cmd5sum, bisize, idvd, sifiletype, sifileno, siquality, ifiles_id, series.tseries_name, seriesparts.iseriespart, seriesparts.bfavorite FROM files, seriesparts, series WHERE iseriespart_id IN (SELECT iseriesparts_id from seriesparts where bfavorite = false) AND files.iseriespart_id = seriesparts.iseriesparts_id AND seriesparts.iseries_id = series.iseries_id AND sifiletype = 1 AND idvd < 0 ORDER BY iseriespart_id, sifileno ASC");
QSqlQuery filesQuery(mDb);
filesQuery.prepare(query);
populate(filesQuery);
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:
+ ;
+ }
}
}
}