summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinQt/Config/FilesystemWidget.cpp
diff options
context:
space:
mode:
authorJosJuice <josjuice@gmail.com>2019-04-11 16:39:49 +0200
committerGitHub <noreply@github.com>2019-04-11 16:39:49 +0200
commitd5ed3cbd88b9cd473b4de5fbbf576ab18db2ab37 (patch)
tree3ccba3b1e0c4e4e285ec6069f83c0efebb6ee253 /Source/Core/DolphinQt/Config/FilesystemWidget.cpp
parent372b8552ce7c94c026e2309c0b9089440bdae672 (diff)
parent8709b21ac30f5da5c32ef056b6562a37345b5f82 (diff)
Merge pull request #7922 from JosJuice/verify-disc
Add a Verify tab to game properties
Diffstat (limited to 'Source/Core/DolphinQt/Config/FilesystemWidget.cpp')
-rw-r--r--Source/Core/DolphinQt/Config/FilesystemWidget.cpp45
1 files changed, 3 insertions, 42 deletions
diff --git a/Source/Core/DolphinQt/Config/FilesystemWidget.cpp b/Source/Core/DolphinQt/Config/FilesystemWidget.cpp
index 3ff72d8e06..65caa17bf9 100644
--- a/Source/Core/DolphinQt/Config/FilesystemWidget.cpp
+++ b/Source/Core/DolphinQt/Config/FilesystemWidget.cpp
@@ -40,8 +40,8 @@ enum class EntryType
};
Q_DECLARE_METATYPE(EntryType);
-FilesystemWidget::FilesystemWidget(const UICommon::GameFile& game)
- : m_game(game), m_volume(DiscIO::CreateVolumeFromFilename(game.GetFilePath()))
+FilesystemWidget::FilesystemWidget(std::shared_ptr<DiscIO::Volume> volume)
+ : m_volume(std::move(volume))
{
CreateWidgets();
ConnectWidgets();
@@ -225,8 +225,7 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
{
if (const std::optional<u32> partition_type = m_volume->GetPartitionType(p))
{
- const std::string partition_name =
- DiscIO::DirectoryNameForPartitionType(*partition_type);
+ const std::string partition_name = DiscIO::NameForPartitionType(*partition_type, true);
ExtractPartition(p, folder + QChar(u'/') + QString::fromStdString(partition_name));
}
}
@@ -239,12 +238,6 @@ void FilesystemWidget::ShowContextMenu(const QPoint&)
if (!folder.isEmpty())
ExtractPartition(partition, folder);
});
- if (m_volume->IsEncryptedAndHashed())
- {
- menu->addSeparator();
- menu->addAction(tr("Check Partition Integrity"), this,
- [this, partition] { CheckIntegrity(partition); });
- }
break;
case EntryType::File:
menu->addAction(tr("Extract File..."), this, [this, partition, path] {
@@ -328,35 +321,3 @@ void FilesystemWidget::ExtractFile(const DiscIO::Partition& partition, const QSt
else
ModalMessageBox::critical(this, tr("Error"), tr("Failed to extract file."));
}
-
-void FilesystemWidget::CheckIntegrity(const DiscIO::Partition& partition)
-{
- QProgressDialog* dialog = new QProgressDialog(this);
- std::future<bool> is_valid = std::async(
- std::launch::async, [this, partition] { return m_volume->CheckIntegrity(partition); });
-
- dialog->setLabelText(tr("Verifying integrity of partition..."));
- dialog->setWindowFlags(dialog->windowFlags() & ~Qt::WindowContextHelpButtonHint);
- dialog->setWindowTitle(tr("Verifying partition"));
-
- dialog->setMinimum(0);
- dialog->setMaximum(0);
- dialog->show();
-
- while (is_valid.wait_for(std::chrono::milliseconds(50)) != std::future_status::ready)
- QCoreApplication::processEvents();
-
- dialog->close();
-
- if (is_valid.get())
- {
- ModalMessageBox::information(this, tr("Success"),
- tr("Integrity check completed. No errors have been found."));
- }
- else
- {
- ModalMessageBox::critical(this, tr("Error"),
- tr("Integrity check for partition failed. The disc image is most "
- "likely corrupted or has been patched incorrectly."));
- }
-}