aboutsummaryrefslogtreecommitdiff
path: root/src/yuzu/compatdb.cpp
diff options
context:
space:
mode:
authorlizzie <lizzie@eden-emu.dev>2026-07-12 09:32:11 +0200
committercrueter <crueter@eden-emu.dev>2026-07-12 09:32:11 +0200
commit7f85c6e2823d34bfa32cae6d52a44846f8553731 (patch)
treec0dd8f054bae5ae3b0cc34e00b07bacd03bf42e8 /src/yuzu/compatdb.cpp
parent39b2c79985b476c4b29b02a7b232bc3887d251ad (diff)
[qt] nuke game compat list (again) (#4201)
we have no use for it it's dead code most of the time users just complain about how the list isn't updated ok so what if we update it? great now its more noise added to the git, awesome even if we constantly update it, we introduce new breakage that makes keeping track of things extremely difficult either we integrate with emuready (would violate self containment principles) or we integrate with emuready in a similar fashion to eden news outlet (where we cache the list with some TTL of like 60 mins or whatever) that would be better respecting of "self containment" but would probably require having a quick way to update the list additively, probably filtered to the user's device instead of a global thing, and i dont think emuready has that granularity nor we have the "connect this to that" for the api stuffs another (which is what i propose here) is throw everything out of the window until someone can come up with something better Signed-off-by: lizzie <lizzie@eden-emu.dev> Reviewed-on: https://git.eden-emu.dev/eden-emu/eden/pulls/4201 Reviewed-by: Maufeat <sahyno1996@gmail.com> Reviewed-by: CamilleLaVey <camillelavey99@gmail.com>
Diffstat (limited to 'src/yuzu/compatdb.cpp')
-rw-r--r--src/yuzu/compatdb.cpp206
1 files changed, 0 insertions, 206 deletions
diff --git a/src/yuzu/compatdb.cpp b/src/yuzu/compatdb.cpp
deleted file mode 100644
index b47cdd2116..0000000000
--- a/src/yuzu/compatdb.cpp
+++ /dev/null
@@ -1,206 +0,0 @@
-// SPDX-FileCopyrightText: Copyright 2026 Eden Emulator Project
-// SPDX-License-Identifier: GPL-3.0-or-later
-
-// SPDX-FileCopyrightText: 2017 Citra Emulator Project
-// SPDX-License-Identifier: GPL-2.0-or-later
-
-#include <QButtonGroup>
-#include <QMessageBox>
-#include <QPushButton>
-#include <qtconcurrentrun.h>
-#include "common/logging.h"
-#include "ui_compatdb.h"
-#include "yuzu/compatdb.h"
-
-CompatDB::CompatDB(QWidget* parent)
- : QWizard(parent, Qt::WindowTitleHint | Qt::WindowCloseButtonHint | Qt::WindowSystemMenuHint),
- ui{std::make_unique<Ui::CompatDB>()} {
- ui->setupUi(this);
-
- connect(ui->radioButton_GameBoot_Yes, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_GameBoot_No, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Gameplay_Yes, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Gameplay_No, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_NoFreeze_Yes, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_NoFreeze_No, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Complete_Yes, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Complete_No, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Graphical_Major, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Graphical_Minor, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Graphical_No, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Audio_Major, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Audio_Minor, &QRadioButton::clicked, this, &CompatDB::EnableNext);
- connect(ui->radioButton_Audio_No, &QRadioButton::clicked, this, &CompatDB::EnableNext);
-
- connect(button(NextButton), &QPushButton::clicked, this, &CompatDB::Submit);
- connect(&testcase_watcher, &QFutureWatcher<bool>::finished, this,
- &CompatDB::OnTestcaseSubmitted);
-}
-
-CompatDB::~CompatDB() = default;
-
-enum class CompatDBPage {
- Intro = 0,
- GameBoot = 1,
- GamePlay = 2,
- Freeze = 3,
- Completion = 4,
- Graphical = 5,
- Audio = 6,
- Final = 7,
-};
-
-void CompatDB::Submit() {
- QButtonGroup* compatibility_GameBoot = new QButtonGroup(this);
- compatibility_GameBoot->addButton(ui->radioButton_GameBoot_Yes, 0);
- compatibility_GameBoot->addButton(ui->radioButton_GameBoot_No, 1);
-
- QButtonGroup* compatibility_Gameplay = new QButtonGroup(this);
- compatibility_Gameplay->addButton(ui->radioButton_Gameplay_Yes, 0);
- compatibility_Gameplay->addButton(ui->radioButton_Gameplay_No, 1);
-
- QButtonGroup* compatibility_NoFreeze = new QButtonGroup(this);
- compatibility_NoFreeze->addButton(ui->radioButton_NoFreeze_Yes, 0);
- compatibility_NoFreeze->addButton(ui->radioButton_NoFreeze_No, 1);
-
- QButtonGroup* compatibility_Complete = new QButtonGroup(this);
- compatibility_Complete->addButton(ui->radioButton_Complete_Yes, 0);
- compatibility_Complete->addButton(ui->radioButton_Complete_No, 1);
-
- QButtonGroup* compatibility_Graphical = new QButtonGroup(this);
- compatibility_Graphical->addButton(ui->radioButton_Graphical_Major, 0);
- compatibility_Graphical->addButton(ui->radioButton_Graphical_Minor, 1);
- compatibility_Graphical->addButton(ui->radioButton_Graphical_No, 2);
-
- QButtonGroup* compatibility_Audio = new QButtonGroup(this);
- compatibility_Audio->addButton(ui->radioButton_Audio_Major, 0);
- compatibility_Graphical->addButton(ui->radioButton_Audio_Minor, 1);
- compatibility_Audio->addButton(ui->radioButton_Audio_No, 2);
-
- const int compatibility = static_cast<int>(CalculateCompatibility());
-
- switch ((static_cast<CompatDBPage>(currentId()))) {
- case CompatDBPage::Intro:
- break;
- case CompatDBPage::GameBoot:
- if (compatibility_GameBoot->checkedId() == -1) {
- button(NextButton)->setEnabled(false);
- }
- break;
- case CompatDBPage::GamePlay:
- if (compatibility_Gameplay->checkedId() == -1) {
- button(NextButton)->setEnabled(false);
- }
- break;
- case CompatDBPage::Freeze:
- if (compatibility_NoFreeze->checkedId() == -1) {
- button(NextButton)->setEnabled(false);
- }
- break;
- case CompatDBPage::Completion:
- if (compatibility_Complete->checkedId() == -1) {
- button(NextButton)->setEnabled(false);
- }
- break;
- case CompatDBPage::Graphical:
- if (compatibility_Graphical->checkedId() == -1) {
- button(NextButton)->setEnabled(false);
- }
- break;
- case CompatDBPage::Audio:
- if (compatibility_Audio->checkedId() == -1) {
- button(NextButton)->setEnabled(false);
- }
- break;
- case CompatDBPage::Final:
- back();
- LOG_INFO(Frontend, "Compatibility Rating: {}", compatibility);
-
- button(NextButton)->setEnabled(false);
- button(NextButton)->setText(tr("Submitting"));
- button(CancelButton)->setVisible(false);
- break;
- default:
- LOG_ERROR(Frontend, "Unexpected page: {}", currentId());
- break;
- }
-}
-
-int CompatDB::nextId() const {
- switch ((static_cast<CompatDBPage>(currentId()))) {
- case CompatDBPage::Intro:
- return static_cast<int>(CompatDBPage::GameBoot);
- case CompatDBPage::GameBoot:
- if (ui->radioButton_GameBoot_No->isChecked()) {
- return static_cast<int>(CompatDBPage::Final);
- }
- return static_cast<int>(CompatDBPage::GamePlay);
- case CompatDBPage::GamePlay:
- if (ui->radioButton_Gameplay_No->isChecked()) {
- return static_cast<int>(CompatDBPage::Final);
- }
- return static_cast<int>(CompatDBPage::Freeze);
- case CompatDBPage::Freeze:
- if (ui->radioButton_NoFreeze_No->isChecked()) {
- return static_cast<int>(CompatDBPage::Final);
- }
- return static_cast<int>(CompatDBPage::Completion);
- case CompatDBPage::Completion:
- if (ui->radioButton_Complete_No->isChecked()) {
- return static_cast<int>(CompatDBPage::Final);
- }
- return static_cast<int>(CompatDBPage::Graphical);
- case CompatDBPage::Graphical:
- return static_cast<int>(CompatDBPage::Audio);
- case CompatDBPage::Audio:
- return static_cast<int>(CompatDBPage::Final);
- case CompatDBPage::Final:
- return -1;
- default:
- LOG_ERROR(Frontend, "Unexpected page: {}", currentId());
- return static_cast<int>(CompatDBPage::Intro);
- }
-}
-
-CompatibilityStatus CompatDB::CalculateCompatibility() const {
- if (ui->radioButton_GameBoot_No->isChecked()) {
- return CompatibilityStatus::WontBoot;
- }
-
- if (ui->radioButton_Gameplay_No->isChecked()) {
- return CompatibilityStatus::IntroMenu;
- }
-
- if (ui->radioButton_NoFreeze_No->isChecked() || ui->radioButton_Complete_No->isChecked()) {
- return CompatibilityStatus::Ingame;
- }
-
- if (ui->radioButton_Graphical_Major->isChecked() || ui->radioButton_Audio_Major->isChecked()) {
- return CompatibilityStatus::Ingame;
- }
-
- if (ui->radioButton_Graphical_Minor->isChecked() || ui->radioButton_Audio_Minor->isChecked()) {
- return CompatibilityStatus::Playable;
- }
-
- return CompatibilityStatus::Perfect;
-}
-
-void CompatDB::OnTestcaseSubmitted() {
- if (!testcase_watcher.result()) {
- QMessageBox::critical(this, tr("Communication error"),
- tr("An error occurred while sending the Testcase"));
- button(NextButton)->setEnabled(true);
- button(NextButton)->setText(tr("Next"));
- button(CancelButton)->setVisible(true);
- } else {
- next();
- // older versions of QT don't support the "NoCancelButtonOnLastPage" option, this is a
- // workaround
- button(CancelButton)->setVisible(false);
- }
-}
-
-void CompatDB::EnableNext() {
- button(NextButton)->setEnabled(true);
-}