diff --git a/Source/Core/DolphinQt/ConvertDialog.cpp b/Source/Core/DolphinQt/ConvertDialog.cpp index c5bb6d6346..1535a4fe3f 100644 --- a/Source/Core/DolphinQt/ConvertDialog.cpp +++ b/Source/Core/DolphinQt/ConvertDialog.cpp @@ -4,6 +4,7 @@ #include "DolphinQt/ConvertDialog.h" #include +#include #include #include #include @@ -22,6 +23,7 @@ #include "Common/Assert.h" #include "Common/Logging/Log.h" +#include "Common/StringUtil.h" #include "DiscIO/Blob.h" #include "DiscIO/DiscUtils.h" #include "DiscIO/ScrubbedBlob.h" @@ -410,6 +412,21 @@ void ConvertDialog::Convert() } } + if (std::filesystem::exists(StringToPath(dst_path.toStdString()))) + { + std::error_code ec; + if (std::filesystem::equivalent(StringToPath(dst_path.toStdString()), + StringToPath(original_path), ec)) + { + ModalMessageBox::critical( + this, tr("Error"), + tr("The destination file cannot be the same as the source file\n\n" + "Please select another destination path for \"%1\"") + .arg(QString::fromStdString(original_path))); + continue; + } + } + ParallelProgressDialog progress_dialog(tr("Converting..."), tr("Abort"), 0, 100, this); progress_dialog.GetRaw()->setWindowModality(Qt::WindowModal); progress_dialog.GetRaw()->setWindowTitle(tr("Progress"));