Copy and move to import are now cancelable

This commit is contained in:
Luis Ángel San Martín 2014-10-12 12:28:57 +02:00
parent b246ccea13
commit 6a057dffd0
2 changed files with 16 additions and 1 deletions

View File

@ -3,6 +3,8 @@
#include <QFileInfo>
#include <QDir>
#include <QsLog.h>
ComicFilesManager::ComicFilesManager(QObject *parent) :
QObject(parent), canceled(false)
{
@ -27,6 +29,16 @@ void ComicFilesManager::process()
int i=0;
bool successProcesingFiles = false;
foreach (QString source, comics) {
if(canceled)
{
if(successProcesingFiles)
emit success();
emit finished();
return; //TODO rollback?
}
QFileInfo info(source);
if(QFile::copy(source, QDir::cleanPath(folder+'/'+info.fileName())))
{
@ -46,5 +58,6 @@ void ComicFilesManager::process()
void ComicFilesManager::cancel()
{
QLOG_DEBUG() << "Operation canceled";
canceled = true;
}

View File

@ -1335,6 +1335,8 @@ void LibraryWindow::processComicFiles(ComicFilesManager * comicFilesManager, QPr
comicFilesManager->moveToThread(thread);
connect(progressDialog, SIGNAL(canceled()), comicFilesManager, SLOT(cancel()), Qt::DirectConnection);
connect(thread, SIGNAL(started()), comicFilesManager, SLOT(process()));
connect(comicFilesManager, SIGNAL(success()), this, SLOT(updateCopyMoveFolderDestination()));
connect(comicFilesManager, SIGNAL(finished()), thread, SLOT(quit()));