From 1763f98fe17510dea3036ef456cfb7332b926e76 Mon Sep 17 00:00:00 2001 From: Isarhamster Date: Sat, 1 Jun 2024 18:58:22 +0200 Subject: [PATCH] Fix Openings Summary in Player Info --- src/database/playerinfo.cpp | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/database/playerinfo.cpp b/src/database/playerinfo.cpp index 62a73e5af..b3f846b93 100644 --- a/src/database/playerinfo.cpp +++ b/src/database/playerinfo.cpp @@ -86,7 +86,8 @@ int PlayerInfo::toResult(const QString& res) const void PlayerInfo::update() { QHash openings[2]; - QHash openingsX[2]; + QList openingsX[2]; + QHash openingsXX[2]; const IndexX* index = m_database->index(); // Determine matching tag values @@ -134,7 +135,12 @@ void PlayerInfo::update() QString ecoX = index->tagValue(TagNameECO, i).left(4); if(ecoX.length() >= 3) { - openingsX[c][ecoX]++; + QString opening = EcoPositions::findEcoName(ecoX); + if (!opening.isEmpty()) + { + openingsX[c].append(ecoX); + openingsXX[c][opening]++; + } } } @@ -149,14 +155,15 @@ void PlayerInfo::update() for(int i = 0; i < 2; ++i) { - auto& counts = m_opening[i]; for (auto it = openingsX[i].cbegin(); it != openingsX[i].cend(); ++it) { - const auto& eco = it.key(); - counts.append(OpeningCountItem(eco, it.value())); - - QString opening = EcoPositions::findEcoName(eco); - m_MapOpeningToECOCodes[i][opening].append(eco); + QString opening = EcoPositions::findEcoName(*it); + m_MapOpeningToECOCodes[i][opening].append(*it); + } + auto& counts = m_opening[i]; + for (auto it = openingsXX[i].cbegin(); it != openingsXX[i].cend(); ++it) + { + counts.append(OpeningCountItem(it.key(), it.value())); } // comparison function for sorting m_opening[c] auto cmp = [](const OpeningCountItem& lhs, const OpeningCountItem& rhs) {