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