summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/ConvertDialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'Source/Core/DolphinQt/ConvertDialog.cpp')
-rw-r--r--Source/Core/DolphinQt/ConvertDialog.cpp36
1 files changed, 14 insertions, 22 deletions
diff --git a/Source/Core/DolphinQt/ConvertDialog.cpp b/Source/Core/DolphinQt/ConvertDialog.cpp
index 5a41ccea36..a14e728c40 100644
--- a/Source/Core/DolphinQt/ConvertDialog.cpp
+++ b/Source/Core/DolphinQt/ConvertDialog.cpp
@@ -32,17 +32,6 @@
#include "UICommon/GameFile.h"
#include "UICommon/UICommon.h"
-static bool CompressCB(const std::string& text, float percent, void* ptr)
-{
- if (ptr == nullptr)
- return false;
-
- auto* progress_dialog = static_cast<ParallelProgressDialog*>(ptr);
-
- progress_dialog->SetValue(percent * 100);
- return !progress_dialog->WasCanceled();
-}
-
ConvertDialog::ConvertDialog(QList<std::shared_ptr<const UICommon::GameFile>> files,
QWidget* parent)
: QDialog(parent), m_files(std::move(files))
@@ -463,15 +452,19 @@ void ConvertDialog::Convert()
}
else
{
+ const auto callback = [&progress_dialog](const std::string& text, float percent) {
+ progress_dialog.SetValue(percent * 100);
+ return !progress_dialog.WasCanceled();
+ };
+
std::future<bool> success;
switch (format)
{
case DiscIO::BlobType::PLAIN:
success = std::async(std::launch::async, [&] {
- const bool good =
- DiscIO::ConvertToPlain(blob_reader.get(), original_path, dst_path.toStdString(),
- &CompressCB, &progress_dialog);
+ const bool good = DiscIO::ConvertToPlain(blob_reader.get(), original_path,
+ dst_path.toStdString(), callback);
progress_dialog.Reset();
return good;
});
@@ -479,10 +472,9 @@ void ConvertDialog::Convert()
case DiscIO::BlobType::GCZ:
success = std::async(std::launch::async, [&] {
- const bool good =
- DiscIO::ConvertToGCZ(blob_reader.get(), original_path, dst_path.toStdString(),
- file->GetPlatform() == DiscIO::Platform::WiiDisc ? 1 : 0,
- block_size, &CompressCB, &progress_dialog);
+ const bool good = DiscIO::ConvertToGCZ(
+ blob_reader.get(), original_path, dst_path.toStdString(),
+ file->GetPlatform() == DiscIO::Platform::WiiDisc ? 1 : 0, block_size, callback);
progress_dialog.Reset();
return good;
});
@@ -491,10 +483,10 @@ void ConvertDialog::Convert()
case DiscIO::BlobType::WIA:
case DiscIO::BlobType::RVZ:
success = std::async(std::launch::async, [&] {
- const bool good = DiscIO::ConvertToWIAOrRVZ(
- blob_reader.get(), original_path, dst_path.toStdString(),
- format == DiscIO::BlobType::RVZ, compression, compression_level, block_size,
- &CompressCB, &progress_dialog);
+ const bool good =
+ DiscIO::ConvertToWIAOrRVZ(blob_reader.get(), original_path, dst_path.toStdString(),
+ format == DiscIO::BlobType::RVZ, compression,
+ compression_level, block_size, callback);
progress_dialog.Reset();
return good;
});