Merge pull request #8367 from Docteh/say_win11
Logging: Report Post Windows 10 2004 versions, like Windows 11
This commit is contained in:
		| @@ -198,6 +198,31 @@ static void RemoveCachedContents() { | |||||||
|     Common::FS::RemoveDirRecursively(offline_system_data); |     Common::FS::RemoveDirRecursively(offline_system_data); | ||||||
| } | } | ||||||
|  |  | ||||||
|  | static QString PrettyProductName() { | ||||||
|  | #ifdef _WIN32 | ||||||
|  |     // After Windows 10 Version 2004, Microsoft decided to switch to a different notation: 20H2 | ||||||
|  |     // With that notation change they changed the registry key used to denote the current version | ||||||
|  |     QSettings windows_registry( | ||||||
|  |         QStringLiteral("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion"), | ||||||
|  |         QSettings::NativeFormat); | ||||||
|  |     const QString release_id = windows_registry.value(QStringLiteral("ReleaseId")).toString(); | ||||||
|  |     if (release_id == QStringLiteral("2009")) { | ||||||
|  |         const u32 current_build = windows_registry.value(QStringLiteral("CurrentBuild")).toUInt(); | ||||||
|  |         const QString display_version = | ||||||
|  |             windows_registry.value(QStringLiteral("DisplayVersion")).toString(); | ||||||
|  |         const u32 ubr = windows_registry.value(QStringLiteral("UBR")).toUInt(); | ||||||
|  |         u32 version = 10; | ||||||
|  |         if (current_build >= 22000) { | ||||||
|  |             version = 11; | ||||||
|  |         } | ||||||
|  |         return QStringLiteral("Windows %1 Version %2 (Build %3.%4)") | ||||||
|  |             .arg(QString::number(version), display_version, QString::number(current_build), | ||||||
|  |                  QString::number(ubr)); | ||||||
|  |     } | ||||||
|  | #endif | ||||||
|  |     return QSysInfo::prettyProductName(); | ||||||
|  | } | ||||||
|  |  | ||||||
| GMainWindow::GMainWindow() | GMainWindow::GMainWindow() | ||||||
|     : ui{std::make_unique<Ui::MainWindow>()}, system{std::make_unique<Core::System>()}, |     : ui{std::make_unique<Ui::MainWindow>()}, system{std::make_unique<Core::System>()}, | ||||||
|       input_subsystem{std::make_shared<InputCommon::InputSubsystem>()}, |       input_subsystem{std::make_shared<InputCommon::InputSubsystem>()}, | ||||||
| @@ -259,7 +284,7 @@ GMainWindow::GMainWindow() | |||||||
|     } |     } | ||||||
|     LOG_INFO(Frontend, "Host CPU: {}", cpu_string); |     LOG_INFO(Frontend, "Host CPU: {}", cpu_string); | ||||||
| #endif | #endif | ||||||
|     LOG_INFO(Frontend, "Host OS: {}", QSysInfo::prettyProductName().toStdString()); |     LOG_INFO(Frontend, "Host OS: {}", PrettyProductName().toStdString()); | ||||||
|     LOG_INFO(Frontend, "Host RAM: {:.2f} GiB", |     LOG_INFO(Frontend, "Host RAM: {:.2f} GiB", | ||||||
|              Common::GetMemInfo().TotalPhysicalMemory / f64{1_GiB}); |              Common::GetMemInfo().TotalPhysicalMemory / f64{1_GiB}); | ||||||
|     LOG_INFO(Frontend, "Host Swap: {:.2f} GiB", Common::GetMemInfo().TotalSwapMemory / f64{1_GiB}); |     LOG_INFO(Frontend, "Host Swap: {:.2f} GiB", Common::GetMemInfo().TotalSwapMemory / f64{1_GiB}); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user