summaryrefslogtreecommitdiffstats
path: root/archivebrowser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'archivebrowser.cpp')
-rw-r--r--archivebrowser.cpp44
1 files changed, 44 insertions, 0 deletions
diff --git a/archivebrowser.cpp b/archivebrowser.cpp
index 7587c93..317c2d8 100644
--- a/archivebrowser.cpp
+++ b/archivebrowser.cpp
@@ -11,6 +11,9 @@
#include <QComboBox>
#include <QCheckBox>
#include <QSettings>
+#include <QMessageBox>
+#include <QDir>
+#include <QFileInfo>
#include <QSortFilterProxyModel>
#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("<p>This will do the following:</p><p><ul><li>Move %1 file(s) to %2</li><li>Update the DVD no. for %1 files</li></ul></p><p>Continue?</p>")).arg(sel.size()).arg(destDirS);
+ int retval = QMessageBox::question(this, tr("Question"), msg, QMessageBox::Yes | QMessageBox::No);
+ if(retval == QMessageBox::Yes){
+ QList<int> 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<int> qualities = mModel->availableQualities();