diff options
author | Arno <am@disconnect.de> | 2013-02-08 02:21:09 +0100 |
---|---|---|
committer | Arno <am@disconnect.de> | 2013-02-08 02:21:09 +0100 |
commit | a2c0865ca9491d403ae0032bbc9894c452cc09d0 (patch) | |
tree | 61e69082eb77a35a3d3e1f7d786884e2ad895f03 | |
parent | 91750c1a4247ab436ffff5a518efd7004c01b98d (diff) | |
download | SheMov-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.cpp | 1 | ||||
-rw-r--r-- | filestreemodel.cpp | 2 | ||||
-rw-r--r-- | filestreewidget.cpp | 33 |
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: + ; + } } } } |