From 5ecb3223dcb7d417e0bdc179b0df9562f71a2169 Mon Sep 17 00:00:00 2001 From: Rafael Date: Tue, 5 Apr 2016 04:08:14 +0200 Subject: [PATCH] export counting bug fix --- ExportThread.cpp | 18 +++++++++++------- ExportThread.h | 3 ++- OptionsDialog.ui | 9 +++++++-- ProfileInterface.cpp | 28 ++++++++++++++++++++++------ 4 files changed, 42 insertions(+), 16 deletions(-) diff --git a/ExportThread.cpp b/ExportThread.cpp index 76589e4..7a3a514 100755 --- a/ExportThread.cpp +++ b/ExportThread.cpp @@ -24,8 +24,8 @@ #include #include -ExportThread::ExportThread(QMap profileMap, QString exportDirectory, bool pictureCopyEnabled, bool pictureExportEnabled, QObject *parent) : QThread(parent), - profileMap(profileMap), exportDirectory(exportDirectory), pictureCopyEnabled(pictureCopyEnabled), pictureExportEnabled(pictureExportEnabled) +ExportThread::ExportThread(QMap profileMap, QString exportDirectory, bool pictureCopyEnabled, bool pictureExportEnabled, int exportCount, QObject *parent) : QThread(parent), + profileMap(profileMap), exportDirectory(exportDirectory), pictureCopyEnabled(pictureCopyEnabled), pictureExportEnabled(pictureExportEnabled), exportCount(exportCount) { } @@ -47,7 +47,7 @@ void ExportThread::run() QString exportFileName = PictureExport::getPictureFileName(picture); intExportProgress++; - emit exportStringUpdate(ProfileInterface::tr("Current export job: %1").arg(exportFileName)); + emit exportStringUpdate(ProfileInterface::tr("Export file %1 of %2 files").arg(QString::number(intExportProgress), QString::number(exportCount))); emit exportProgressUpdate(intExportProgress); if (!picture->getPicture().save(exportDirectory + "/" + exportFileName, "JPEG", 100)) @@ -62,10 +62,12 @@ void ExportThread::run() QString exportFileName = originalFileInfo.fileName(); intExportProgress++; - emit exportStringUpdate(ProfileInterface::tr("Current export job: %1").arg(exportFileName)); + emit exportStringUpdate(ProfileInterface::tr("Export file %1 of %2 files").arg(QString::number(intExportProgress), QString::number(exportCount))); emit exportProgressUpdate(intExportProgress); - if (!QFile::copy(originalFileName, exportDirectory + "/" + exportFileName)) + QString exportFilePath = exportDirectory + "/" + exportFileName; + if (QFile::exists(exportFilePath)) {QFile::remove(exportFilePath);} + if (!QFile::copy(originalFileName, exportFilePath)) { failedCopyPictures.append(exportFileName); } @@ -81,10 +83,12 @@ void ExportThread::run() QString exportFileName = originalFileInfo.fileName(); intExportProgress++; - emit exportStringUpdate(ProfileInterface::tr("Current export job: %1").arg(exportFileName)); + emit exportStringUpdate(ProfileInterface::tr("Export file %1 of %2 files").arg(QString::number(intExportProgress), QString::number(exportCount))); emit exportProgressUpdate(intExportProgress); - if (!QFile::copy(originalFileName, exportDirectory + "/" + exportFileName)) + QString exportFilePath = exportDirectory + "/" + exportFileName; + if (QFile::exists(exportFilePath)) {QFile::remove(exportFilePath);} + if (!QFile::copy(originalFileName, exportFilePath)) { failedSavegames.append(exportFileName); } diff --git a/ExportThread.h b/ExportThread.h index 1f48bff..e6d380e 100755 --- a/ExportThread.h +++ b/ExportThread.h @@ -29,7 +29,7 @@ class ExportThread : public QThread { Q_OBJECT public: - explicit ExportThread(QMap profileMap, QString exportDirectory, bool pictureCopyEnabled, bool pictureExportEnabled, QObject *parent = 0); + explicit ExportThread(QMap profileMap, QString exportDirectory, bool pictureCopyEnabled, bool pictureExportEnabled, int exportCount, QObject *parent = 0); QStringList getFailedSavegames(); QStringList getFailedCopyPictures(); QStringList getFailedExportPictures(); @@ -42,6 +42,7 @@ private: QString exportDirectory; bool pictureCopyEnabled; bool pictureExportEnabled; + int exportCount; QStringList failedSavegames; QStringList failedCopyPictures; QStringList failedExportPictures; diff --git a/OptionsDialog.ui b/OptionsDialog.ui index f22a4f7..ac637a4 100755 --- a/OptionsDialog.ui +++ b/OptionsDialog.ui @@ -1,3 +1,4 @@ + OptionsDialog @@ -5,13 +6,17 @@ 0 0 - 400 + 320 300 - Dialog + Options + + true + + diff --git a/ProfileInterface.cpp b/ProfileInterface.cpp index b7db28f..0e5ead9 100755 --- a/ProfileInterface.cpp +++ b/ProfileInterface.cpp @@ -406,7 +406,8 @@ void ProfileInterface::deselectAllWidgets() void ProfileInterface::exportSelected() { int exportCount = 0; - bool haveToExportPics = false; + int exportPictures = 0; + int exportSavegames = 0; bool pictureCopyEnabled = false; bool pictureExportEnabled = false; @@ -419,13 +420,16 @@ void ProfileInterface::exportSelected() { if (widgets[widget] == "SnapmaticWidget") { - haveToExportPics = true; + exportPictures++; + } + else if (widgets[widget] == "SavegameWidgets") + { + exportSavegames++; } - exportCount++; } } - if (haveToExportPics) + if (exportPictures != 0) { QInputDialog inputDialog; QStringList inputDialogItems; @@ -458,10 +462,22 @@ void ProfileInterface::exportSelected() } } + // Counting the exports together + exportCount = exportCount + exportSavegames; + if (pictureExportEnabled && pictureCopyEnabled) + { + int exportPictures2 = exportPictures * 2; + exportCount = exportCount + exportPictures2; + } + else + { + exportCount = exportCount + exportPictures; + } + QProgressDialog pbDialog(this); pbDialog.setWindowFlags(pbDialog.windowFlags()^Qt::WindowContextHelpButtonHint^Qt::WindowCloseButtonHint); pbDialog.setWindowTitle(tr("Export selected...")); - pbDialog.setLabelText(tr("Current export job: %1").arg(tr("Initializing..."))); + pbDialog.setLabelText(tr("Initializing export...")); pbDialog.setRange(0, exportCount); QList pbBtn = pbDialog.findChildren(); @@ -470,7 +486,7 @@ void ProfileInterface::exportSelected() QList pbBar = pbDialog.findChildren(); pbBar.at(0)->setTextVisible(false); - ExportThread *exportThread = new ExportThread(widgets, exportDirectory, pictureCopyEnabled, pictureExportEnabled); + ExportThread *exportThread = new ExportThread(widgets, exportDirectory, pictureCopyEnabled, pictureExportEnabled, exportCount); QObject::connect(exportThread, SIGNAL(exportStringUpdate(QString)), &pbDialog, SLOT(setLabelText(QString))); QObject::connect(exportThread, SIGNAL(exportProgressUpdate(int)), &pbDialog, SLOT(setValue(int))); QObject::connect(exportThread, SIGNAL(exportFinished()), &pbDialog, SLOT(close()));