mirror of
https://git.suyu.dev/suyu/suyu.git
synced 2024-12-01 19:22:46 +01:00
yuzu: Use new setting method for stop emulation
This commit is contained in:
parent
a34565727b
commit
6c246f2ac5
6 changed files with 36 additions and 9 deletions
|
@ -45,6 +45,7 @@ SWITCHABLE(CpuAccuracy, true);
|
||||||
SWITCHABLE(FullscreenMode, true);
|
SWITCHABLE(FullscreenMode, true);
|
||||||
SWITCHABLE(GpuAccuracy, true);
|
SWITCHABLE(GpuAccuracy, true);
|
||||||
SWITCHABLE(Language, true);
|
SWITCHABLE(Language, true);
|
||||||
|
SWITCHABLE(MemoryLayout, true);
|
||||||
SWITCHABLE(NvdecEmulation, false);
|
SWITCHABLE(NvdecEmulation, false);
|
||||||
SWITCHABLE(Region, true);
|
SWITCHABLE(Region, true);
|
||||||
SWITCHABLE(RendererBackend, true);
|
SWITCHABLE(RendererBackend, true);
|
||||||
|
@ -61,6 +62,10 @@ SWITCHABLE(u32, false);
|
||||||
SWITCHABLE(u8, false);
|
SWITCHABLE(u8, false);
|
||||||
SWITCHABLE(u8, true);
|
SWITCHABLE(u8, true);
|
||||||
|
|
||||||
|
// Used in UISettings
|
||||||
|
// TODO see if we can move this to uisettings.cpp
|
||||||
|
SWITCHABLE(ConfirmStop, true);
|
||||||
|
|
||||||
#undef SETTING
|
#undef SETTING
|
||||||
#undef SWITCHABLE
|
#undef SWITCHABLE
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -67,6 +67,7 @@ SWITCHABLE(CpuAccuracy, true);
|
||||||
SWITCHABLE(FullscreenMode, true);
|
SWITCHABLE(FullscreenMode, true);
|
||||||
SWITCHABLE(GpuAccuracy, true);
|
SWITCHABLE(GpuAccuracy, true);
|
||||||
SWITCHABLE(Language, true);
|
SWITCHABLE(Language, true);
|
||||||
|
SWITCHABLE(MemoryLayout, true);
|
||||||
SWITCHABLE(NvdecEmulation, false);
|
SWITCHABLE(NvdecEmulation, false);
|
||||||
SWITCHABLE(Region, true);
|
SWITCHABLE(Region, true);
|
||||||
SWITCHABLE(RendererBackend, true);
|
SWITCHABLE(RendererBackend, true);
|
||||||
|
@ -83,6 +84,10 @@ SWITCHABLE(u32, false);
|
||||||
SWITCHABLE(u8, false);
|
SWITCHABLE(u8, false);
|
||||||
SWITCHABLE(u8, true);
|
SWITCHABLE(u8, true);
|
||||||
|
|
||||||
|
// Used in UISettings
|
||||||
|
// TODO see if we can move this to uisettings.h
|
||||||
|
SWITCHABLE(ConfirmStop, true);
|
||||||
|
|
||||||
#undef SETTING
|
#undef SETTING
|
||||||
#undef SWITCHABLE
|
#undef SWITCHABLE
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -133,6 +133,8 @@ ENUM(CpuAccuracy, Auto, Accurate, Unsafe, Paranoid);
|
||||||
|
|
||||||
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb);
|
ENUM(MemoryLayout, Memory_4Gb, Memory_6Gb, Memory_8Gb);
|
||||||
|
|
||||||
|
ENUM(ConfirmStop, Ask_Always, Ask_Based_On_Game, Ask_Never);
|
||||||
|
|
||||||
ENUM(FullscreenMode, Borderless, Exclusive);
|
ENUM(FullscreenMode, Borderless, Exclusive);
|
||||||
|
|
||||||
ENUM(NvdecEmulation, Off, Cpu, Gpu);
|
ENUM(NvdecEmulation, Off, Cpu, Gpu);
|
||||||
|
|
|
@ -157,7 +157,7 @@ std::unique_ptr<TranslationMap> InitializeTranslations(QWidget* parent) {
|
||||||
INSERT(UISettings, select_user_on_boot, "Prompt for user on game boot", "");
|
INSERT(UISettings, select_user_on_boot, "Prompt for user on game boot", "");
|
||||||
INSERT(UISettings, pause_when_in_background, "Pause emulation when in background", "");
|
INSERT(UISettings, pause_when_in_background, "Pause emulation when in background", "");
|
||||||
INSERT(UISettings, confirm_before_closing, "Confirm exit while emulation is running", "");
|
INSERT(UISettings, confirm_before_closing, "Confirm exit while emulation is running", "");
|
||||||
INSERT(UISettings, confirm_before_stopping, "Confirm stopping emulation", "");
|
INSERT(UISettings, confirm_before_stopping, "Confirm before stopping emulation", "");
|
||||||
INSERT(UISettings, hide_mouse, "Hide mouse on inactivity", "");
|
INSERT(UISettings, hide_mouse, "Hide mouse on inactivity", "");
|
||||||
INSERT(UISettings, controller_applet_disabled, "Disable controller applet", "");
|
INSERT(UISettings, controller_applet_disabled, "Disable controller applet", "");
|
||||||
|
|
||||||
|
@ -384,6 +384,13 @@ std::unique_ptr<ComboboxTranslationMap> ComboboxEnumeration(QWidget* parent) {
|
||||||
translations->insert(
|
translations->insert(
|
||||||
{Settings::EnumMetadata<Settings::ConsoleMode>::Index(),
|
{Settings::EnumMetadata<Settings::ConsoleMode>::Index(),
|
||||||
{PAIR(ConsoleMode, Docked, "Docked"), PAIR(ConsoleMode, Handheld, "Handheld")}});
|
{PAIR(ConsoleMode, Docked, "Docked"), PAIR(ConsoleMode, Handheld, "Handheld")}});
|
||||||
|
translations->insert(
|
||||||
|
{Settings::EnumMetadata<Settings::ConfirmStop>::Index(),
|
||||||
|
{
|
||||||
|
PAIR(ConfirmStop, Ask_Always, "Always ask (Default)"),
|
||||||
|
PAIR(ConfirmStop, Ask_Based_On_Game, "Only if game specifies not to stop"),
|
||||||
|
PAIR(ConfirmStop, Ask_Never, "Never ask"),
|
||||||
|
}});
|
||||||
|
|
||||||
#undef PAIR
|
#undef PAIR
|
||||||
#undef CTX_PAIR
|
#undef CTX_PAIR
|
||||||
|
|
|
@ -3426,7 +3426,7 @@ void GMainWindow::OnPauseContinueGame() {
|
||||||
|
|
||||||
void GMainWindow::OnStopGame() {
|
void GMainWindow::OnStopGame() {
|
||||||
// Open (or not) the right confirm dialog based on current setting and game exit lock
|
// Open (or not) the right confirm dialog based on current setting and game exit lock
|
||||||
if (UISettings::values.confirm_before_stopping.GetValue() == UISettings::AskStopIndex::Always) {
|
if (UISettings::values.confirm_before_stopping.GetValue() == ConfirmStop::Ask_Always) {
|
||||||
if (system->GetExitLocked()) {
|
if (system->GetExitLocked()) {
|
||||||
if (!ConfirmForceLockedExit()) {
|
if (!ConfirmForceLockedExit()) {
|
||||||
return;
|
return;
|
||||||
|
@ -3438,7 +3438,7 @@ void GMainWindow::OnStopGame() {
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (UISettings::values.confirm_before_stopping.GetValue() ==
|
if (UISettings::values.confirm_before_stopping.GetValue() ==
|
||||||
UISettings::AskStopIndex::Game &&
|
ConfirmStop::Ask_Based_On_Game &&
|
||||||
system->GetExitLocked()) {
|
system->GetExitLocked()) {
|
||||||
if (!ConfirmForceLockedExit()) {
|
if (!ConfirmForceLockedExit()) {
|
||||||
return;
|
return;
|
||||||
|
@ -4081,13 +4081,15 @@ void GMainWindow::OnLoadAmiibo() {
|
||||||
bool GMainWindow::question(QWidget* parent, const QString& title, const QString& text,
|
bool GMainWindow::question(QWidget* parent, const QString& title, const QString& text,
|
||||||
QMessageBox::StandardButtons buttons,
|
QMessageBox::StandardButtons buttons,
|
||||||
QMessageBox::StandardButton defaultButton) {
|
QMessageBox::StandardButton defaultButton) {
|
||||||
ControllerNavigation* controller_navigation = new ControllerNavigation(system->HIDCore(), this);
|
|
||||||
|
|
||||||
QMessageBox* box_dialog = new QMessageBox(parent);
|
QMessageBox* box_dialog = new QMessageBox(parent);
|
||||||
box_dialog->setWindowTitle(title);
|
box_dialog->setWindowTitle(title);
|
||||||
box_dialog->setText(text);
|
box_dialog->setText(text);
|
||||||
box_dialog->setStandardButtons(buttons);
|
box_dialog->setStandardButtons(buttons);
|
||||||
box_dialog->setDefaultButton(defaultButton);
|
box_dialog->setDefaultButton(defaultButton);
|
||||||
|
|
||||||
|
ControllerNavigation* controller_navigation =
|
||||||
|
new ControllerNavigation(system->HIDCore(), box_dialog);
|
||||||
connect(controller_navigation, &ControllerNavigation::TriggerKeyboardEvent,
|
connect(controller_navigation, &ControllerNavigation::TriggerKeyboardEvent,
|
||||||
[box_dialog](Qt::Key key) {
|
[box_dialog](Qt::Key key) {
|
||||||
QKeyEvent* event = new QKeyEvent(QEvent::KeyPress, key, Qt::NoModifier);
|
QKeyEvent* event = new QKeyEvent(QEvent::KeyPress, key, Qt::NoModifier);
|
||||||
|
|
|
@ -16,7 +16,9 @@
|
||||||
#include "common/settings_enums.h"
|
#include "common/settings_enums.h"
|
||||||
|
|
||||||
using Settings::Category;
|
using Settings::Category;
|
||||||
|
using Settings::ConfirmStop;
|
||||||
using Settings::Setting;
|
using Settings::Setting;
|
||||||
|
using Settings::SwitchableSetting;
|
||||||
|
|
||||||
#ifndef CANNOT_EXPLICITLY_INSTANTIATE
|
#ifndef CANNOT_EXPLICITLY_INSTANTIATE
|
||||||
namespace Settings {
|
namespace Settings {
|
||||||
|
@ -56,8 +58,6 @@ enum class Theme {
|
||||||
MidnightBlueColorful,
|
MidnightBlueColorful,
|
||||||
};
|
};
|
||||||
|
|
||||||
enum AskStopIndex : int { Always, Game, Never };
|
|
||||||
|
|
||||||
using Themes = std::array<std::pair<const char*, const char*>, 6>;
|
using Themes = std::array<std::pair<const char*, const char*>, 6>;
|
||||||
extern const Themes themes;
|
extern const Themes themes;
|
||||||
|
|
||||||
|
@ -96,9 +96,15 @@ struct Values {
|
||||||
Setting<bool> confirm_before_closing{
|
Setting<bool> confirm_before_closing{
|
||||||
linkage, true, "confirmClose", Category::UiGeneral, Settings::Specialization::Default,
|
linkage, true, "confirmClose", Category::UiGeneral, Settings::Specialization::Default,
|
||||||
true, true};
|
true, true};
|
||||||
Setting<bool> confirm_before_stopping{
|
|
||||||
linkage, true, "confirmStop", Category::UiGeneral, Settings::Specialization::Default,
|
SwitchableSetting<ConfirmStop> confirm_before_stopping{linkage,
|
||||||
true, true};
|
ConfirmStop::Ask_Always,
|
||||||
|
"confirmStop",
|
||||||
|
Category::UiGeneral,
|
||||||
|
Settings::Specialization::Default,
|
||||||
|
true,
|
||||||
|
true};
|
||||||
|
|
||||||
Setting<bool> first_start{linkage, true, "firstStart", Category::Ui};
|
Setting<bool> first_start{linkage, true, "firstStart", Category::Ui};
|
||||||
Setting<bool> pause_when_in_background{linkage,
|
Setting<bool> pause_when_in_background{linkage,
|
||||||
false,
|
false,
|
||||||
|
|
Loading…
Reference in a new issue