diff --git a/src/core/game_database.cpp b/src/core/game_database.cpp index 24663b4cd..5c5d7db8c 100644 --- a/src/core/game_database.cpp +++ b/src/core/game_database.cpp @@ -1910,9 +1910,8 @@ GameDatabase::TrackHashMatchResult GameDatabase::MatchTrackHashes(const CDImageH } } - const auto old_matches_count = std::count(result.track_matches.begin(), result.track_matches.end(), true); - const auto new_matches_count = - std::count(current_verification_results.begin(), current_verification_results.end(), true); + const auto old_matches_count = std::ranges::count(result.track_matches, true); + const auto new_matches_count = std::ranges::count(current_verification_results, true); if (new_matches_count > old_matches_count) { @@ -1989,6 +1988,7 @@ bool GameDatabase::VerifyImage(CDImage* image, std::string_view expected_serial, result->track_hashes = std::move(track_hashes); result->track_matches = std::move(match.track_matches); result->summary = std::move(summary); + result->serial = std::move(match.serial); return true; } diff --git a/src/core/game_database.h b/src/core/game_database.h index cc70cbad8..333ec47e5 100644 --- a/src/core/game_database.h +++ b/src/core/game_database.h @@ -223,6 +223,7 @@ struct TrackVerificationResult CDImageHasher::TrackHashes track_hashes; std::vector track_matches; std::string summary; + std::string serial; }; bool VerifyImage(CDImage* image, std::string_view expected_serial, TrackVerificationResult* result, diff --git a/src/duckstation-qt/gamesummarywidget.cpp b/src/duckstation-qt/gamesummarywidget.cpp index 0b0ff6a6b..e3fdbd8a7 100644 --- a/src/duckstation-qt/gamesummarywidget.cpp +++ b/src/duckstation-qt/gamesummarywidget.cpp @@ -470,7 +470,7 @@ void GameSummaryWidget::populateTracksInfo() if (!image) return; - m_ui.revision->setText(QString::fromStdString(image->GetSummary())); + m_ui.tracksLabel->setText(QString::fromStdString(image->GetSummary())); const u32 num_tracks = image->GetTrackCount(); for (u32 track = 1; track <= num_tracks; track++) @@ -644,7 +644,18 @@ void GameSummaryWidget::processHashResults(const GameDatabase::TrackVerification } if (!verification.summary.empty()) - m_ui.revision->setText(QString::fromStdString(verification.summary)); + { + QLabel* const warning_icon = new QLabel(this); + warning_icon->setPixmap(QIcon(QtHost::GetResourceQPath("images/warning.svg", true)).pixmap(16, 16)); + m_ui.verifyLayout->insertWidget(0, warning_icon); + if (verification.serial.empty()) + { + QFont font = m_ui.tracksLabel->font(); + font.setBold(true); + m_ui.tracksLabel->setFont(font); + } + m_ui.tracksLabel->setText(QString::fromStdString(verification.summary)); + } // update in ui for (size_t i = 0; i < verification.track_hashes.size(); i++) diff --git a/src/duckstation-qt/gamesummarywidget.ui b/src/duckstation-qt/gamesummarywidget.ui index 29389afb9..197bbabc1 100644 --- a/src/duckstation-qt/gamesummarywidget.ui +++ b/src/duckstation-qt/gamesummarywidget.ui @@ -293,21 +293,10 @@ - - - - Tracks: - - - - + - - - true - - +