diff options
| author | JosJuice <josjuice@gmail.com> | 2019-03-30 12:45:00 +0100 |
|---|---|---|
| committer | JosJuice <josjuice@gmail.com> | 2019-04-09 14:18:46 +0200 |
| commit | eced9d7c7e2b05df304e800e4cfb7eae3ee9d2bd (patch) | |
| tree | a3f9bd7c71bd7522c816257d6bf37b696af5ad74 /Source/Core/DolphinQt/Config/InfoWidget.cpp | |
| parent | 4fd2d8e8c4db14cf01576ab228964b80c8ec37ad (diff) | |
VolumeVerifier: Calculate CRC32/MD5/SHA-1
Diffstat (limited to 'Source/Core/DolphinQt/Config/InfoWidget.cpp')
| -rw-r--r-- | Source/Core/DolphinQt/Config/InfoWidget.cpp | 53 |
1 files changed, 0 insertions, 53 deletions
diff --git a/Source/Core/DolphinQt/Config/InfoWidget.cpp b/Source/Core/DolphinQt/Config/InfoWidget.cpp index 79b980e52a..9ac8460bb1 100644 --- a/Source/Core/DolphinQt/Config/InfoWidget.cpp +++ b/Source/Core/DolphinQt/Config/InfoWidget.cpp @@ -78,7 +78,6 @@ QGroupBox* InfoWidget::CreateISODetails() QLineEdit* maker = CreateValueDisplay((game_maker.empty() ? UNKNOWN_NAME.toStdString() : game_maker) + " (" + m_game.GetMakerID() + ")"); - QWidget* checksum = CreateChecksumComputer(); layout->addRow(tr("Name:"), internal_name); layout->addRow(tr("File:"), file_path); @@ -89,8 +88,6 @@ QGroupBox* InfoWidget::CreateISODetails() if (!m_game.GetApploaderDate().empty()) layout->addRow(tr("Apploader Date:"), CreateValueDisplay(m_game.GetApploaderDate())); - layout->addRow(tr("MD5 Checksum:"), checksum); - group->setLayout(layout); return group; } @@ -194,53 +191,3 @@ void InfoWidget::ChangeLanguage() m_maker->setText(QString::fromStdString(m_game.GetLongMaker(language))); m_description->setText(QString::fromStdString(m_game.GetDescription(language))); } - -QWidget* InfoWidget::CreateChecksumComputer() -{ - QWidget* widget = new QWidget(); - QHBoxLayout* layout = new QHBoxLayout(); - layout->setContentsMargins(0, 0, 0, 0); - - m_checksum_result = new QLineEdit(); - m_checksum_result->setReadOnly(true); - QPushButton* calculate = new QPushButton(tr("Compute")); - connect(calculate, &QPushButton::clicked, this, &InfoWidget::ComputeChecksum); - layout->addWidget(m_checksum_result); - layout->addWidget(calculate); - - widget->setLayout(layout); - return widget; -} - -void InfoWidget::ComputeChecksum() -{ - QCryptographicHash hash(QCryptographicHash::Md5); - hash.reset(); - std::unique_ptr<DiscIO::BlobReader> file(DiscIO::CreateBlobReader(m_game.GetFilePath())); - std::vector<u8> file_data(8 * 1080 * 1080); // read 1MB at a time - u64 game_size = file->GetDataSize(); - u64 read_offset = 0; - - // a maximum of 1000 is used instead of game_size because otherwise 8GB games overflow the int - // typed maximum parameter - QProgressDialog* progress = - new QProgressDialog(tr("Computing MD5 Checksum"), tr("Cancel"), 0, 1000, this); - progress->setWindowTitle(tr("Computing MD5 Checksum")); - progress->setWindowFlags(progress->windowFlags() & ~Qt::WindowContextHelpButtonHint); - progress->setMinimumDuration(500); - progress->setWindowModality(Qt::WindowModal); - while (read_offset < game_size) - { - progress->setValue(static_cast<double>(read_offset) / static_cast<double>(game_size) * 1000); - if (progress->wasCanceled()) - return; - - u64 read_size = std::min<u64>(file_data.size(), game_size - read_offset); - file->Read(read_offset, read_size, file_data.data()); - hash.addData(reinterpret_cast<char*>(file_data.data()), read_size); - read_offset += read_size; - } - m_checksum_result->setText(QString::fromUtf8(hash.result().toHex())); - Q_ASSERT(read_offset == game_size); - progress->setValue(1000); -} |
