From e5e91f5f1fc65861f0fd04d805e30b72f27a7dd8 Mon Sep 17 00:00:00 2001 From: Arno Date: Fri, 7 Feb 2014 13:17:48 +0100 Subject: Move to Burn is back! Reimplement move to burn... --- archivebrowser.cpp | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) (limited to 'archivebrowser.cpp') diff --git a/archivebrowser.cpp b/archivebrowser.cpp index 7587c93..317c2d8 100644 --- a/archivebrowser.cpp +++ b/archivebrowser.cpp @@ -11,6 +11,9 @@ #include #include #include +#include +#include +#include #include #include "archivebrowser.h" @@ -91,6 +94,47 @@ void ArchiveBrowser::writeSettings(){ s.setValue("ui/browserquality", mQualityFilter->currentText()); } +void ArchiveBrowser::moveToBurn() { + QModelIndexList sel = mTree->selectionModel()->selectedRows(); + if(sel.isEmpty()){ + return; + } + QSettings s; + QString destDirS = s.value("paths/burn").toString(); + QDir burnDir(destDirS); + if(!burnDir.exists()){ + QString msg = QString(tr("Destination directory %1 does not exist!\nBailing out!")).arg(destDirS); + QMessageBox::critical(this, tr("Error"), msg); + return; + } + QString msg = QString(tr("

This will do the following:

  • Move %1 file(s) to %2
  • Update the DVD no. for %1 files

Continue?

")).arg(sel.size()).arg(destDirS); + int retval = QMessageBox::question(this, tr("Question"), msg, QMessageBox::Yes | QMessageBox::No); + if(retval == QMessageBox::Yes){ + QList filesToUpdate; + foreach(QModelIndex idx, sel){ + QString dirName = idx.data(ArchiveBrowserModel::NameRole).toString(); + dirName.replace(' ', '.'); + burnDir.mkdir(dirName); + QString burnDirS = QString("%1/%2").arg(destDirS).arg(dirName); + QModelIndex real = mProxy->mapToSource(idx); + QModelIndexList children = mModel->children(real); + foreach(QModelIndex child, children){ + QFileInfo current(child.data(ArchiveBrowserModel::FullPathRole).toString()); + int type = child.data(ArchiveBrowserModel::FileTypeRole).toInt(); + QString destination = QString("%1/%2").arg(burnDirS).arg(current.fileName()); + if(type == 1){ //movie + filesToUpdate << child.data(ArchiveBrowserModel::GenericIdRole).toInt(); + }else{ + QFile::copy(current.absoluteFilePath(), destination); + } + } + + } + mModel->updateDVDNo(filesToUpdate); + mModel->refresh(); + } +} + void ArchiveBrowser::setupQualityFilter(){ mQualityFilter->clear(); QList qualities = mModel->availableQualities(); -- cgit v1.2.3-70-g09d2