'Game Compatibility' read an issue from another operating system (#2559)

This commit is contained in:
DanielSvoboda 2025-02-28 03:34:01 -03:00 committed by GitHub
parent bf995d659b
commit 3b5d9459f3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -78,25 +78,38 @@ void CompatibilityInfoClass::UpdateCompatibilityDatabase(QWidget* parent, bool f
CompatibilityEntry CompatibilityInfoClass::GetCompatibilityInfo(const std::string& serial) { CompatibilityEntry CompatibilityInfoClass::GetCompatibilityInfo(const std::string& serial) {
QString title_id = QString::fromStdString(serial); QString title_id = QString::fromStdString(serial);
if (m_compatibility_database.contains(title_id)) { if (m_compatibility_database.contains(title_id)) {
{ QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject();
QJsonObject compatibility_obj = m_compatibility_database[title_id].toObject();
for (int os_int = 0; os_int != static_cast<int>(OSType::Last); os_int++) { // Set current_os automatically
QString os_string = OSTypeToString.at(static_cast<OSType>(os_int)); QString current_os;
if (compatibility_obj.contains(os_string)) { #ifdef Q_OS_WIN
QJsonObject compatibility_entry_obj = compatibility_obj[os_string].toObject(); current_os = "os-windows";
CompatibilityEntry compatibility_entry{ #elif defined(Q_OS_MAC)
LabelToCompatStatus.at(compatibility_entry_obj["status"].toString()), current_os = "os-macOS";
compatibility_entry_obj["version"].toString(), #elif defined(Q_OS_LINUX)
QDateTime::fromString(compatibility_entry_obj["last_tested"].toString(), current_os = "os-linux";
Qt::ISODate), #else
compatibility_entry_obj["url"].toString(), current_os = "os-unknown";
compatibility_entry_obj["issue_number"].toString()}; #endif
return compatibility_entry; // Check if the game is compatible with the current operating system
} if (compatibility_obj.contains(current_os)) {
} QJsonObject compatibility_entry_obj = compatibility_obj[current_os].toObject();
CompatibilityEntry compatibility_entry{
LabelToCompatStatus.at(compatibility_entry_obj["status"].toString()),
compatibility_entry_obj["version"].toString(),
QDateTime::fromString(compatibility_entry_obj["last_tested"].toString(),
Qt::ISODate),
compatibility_entry_obj["url"].toString(),
compatibility_entry_obj["issue_number"].toString()};
return compatibility_entry;
} else {
// If there is no entry for the current operating system, return "Unknown"
return CompatibilityEntry{CompatibilityStatus::Unknown, "",
QDateTime::currentDateTime(), "", 0};
} }
} }
// If title not found, return "Unknown"
return CompatibilityEntry{CompatibilityStatus::Unknown, "", QDateTime::currentDateTime(), "", return CompatibilityEntry{CompatibilityStatus::Unknown, "", QDateTime::currentDateTime(), "",
0}; 0};
} }
@ -200,4 +213,4 @@ const QString CompatibilityInfoClass::GetCompatStatusString(const CompatibilityS
default: default:
return tr("Unknown"); return tr("Unknown");
} }
} }