| 87 | "Supported Image Types (*.bmp *.gif *.jpg *.jpeg *.png *.webp)"); |
| 88 | |
| 89 | InterfaceSettingsWidget::InterfaceSettingsWidget(SettingsWindow* settings_dialog, QWidget* parent) |
| 90 | : SettingsWidget(settings_dialog, parent) |
| 91 | { |
| 92 | SettingsInterface* sif = dialog()->getSettingsInterface(); |
| 93 | |
| 94 | setupTab(m_ui); |
| 95 | |
| 96 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.inhibitScreensaver, "EmuCore", "InhibitScreensaver", true); |
| 97 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.confirmShutdown, "UI", "ConfirmShutdown", true); |
| 98 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pauseOnFocusLoss, "UI", "PauseOnFocusLoss", false); |
| 99 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pauseOnControllerDisconnection, "UI", "PauseOnControllerDisconnection", false); |
| 100 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.promptOnStateLoadSaveFailure, "UI", "PromptOnStateLoadSaveFailure", true); |
| 101 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.savestateSelector, "EmuCore", "UseSavestateSelector", true); |
| 102 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.discordPresence, "EmuCore", "EnableDiscordPresence", false); |
| 103 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.preferEnglishGameList, "UI", "PreferEnglishGameList", false); |
| 104 | connect(m_ui.preferEnglishGameList, &QCheckBox::checkStateChanged, this, [this] { emit preferEnglishGameListChanged(); }); |
| 105 | |
| 106 | #ifdef __linux__ // Mouse locking is only supported on X11 |
| 107 | const bool mouse_lock_supported = QGuiApplication::platformName().toLower() == "xcb"; |
| 108 | #else |
| 109 | const bool mouse_lock_supported = true; |
| 110 | #endif |
| 111 | |
| 112 | if (mouse_lock_supported) |
| 113 | { |
| 114 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.mouseLock, "EmuCore", "EnableMouseLock", false); |
| 115 | connect(m_ui.mouseLock, &QCheckBox::checkStateChanged, [](Qt::CheckState state) { |
| 116 | if (state == Qt::Checked) |
| 117 | Common::AttachMousePositionCb([](int x, int y) { g_main_window->checkMousePosition(x, y); }); |
| 118 | else |
| 119 | Common::DetachMousePositionCb(); |
| 120 | }); |
| 121 | } |
| 122 | else |
| 123 | { |
| 124 | m_ui.mouseLock->setEnabled(false); |
| 125 | } |
| 126 | |
| 127 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.startFullscreen, "UI", "StartFullscreen", false); |
| 128 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.doubleClickTogglesFullscreen, "UI", "DoubleClickTogglesFullscreen", true); |
| 129 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.hideMouseCursor, "UI", "HideMouseCursor", false); |
| 130 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.renderToSeparateWindow, "UI", "RenderToSeparateWindow", false); |
| 131 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.hideMainWindow, "UI", "HideMainWindowWhenRunning", false); |
| 132 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableWindowResizing, "UI", "DisableWindowResize", false); |
| 133 | SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.startFullscreenUI, "UI", "StartBigPictureMode", false); |
| 134 | connect(m_ui.renderToSeparateWindow, &QCheckBox::checkStateChanged, this, &InterfaceSettingsWidget::onRenderToSeparateWindowChanged); |
| 135 | |
| 136 | SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.theme, "UI", "Theme", THEME_NAMES, THEME_VALUES, |
| 137 | QtHost::GetDefaultThemeName(), "InterfaceSettingsWidget"); |
| 138 | connect(m_ui.theme, &QComboBox::currentIndexChanged, [this]() { emit themeChanged(); }); |
| 139 | |
| 140 | SettingWidgetBinder::BindWidgetToFloatSetting(sif, m_ui.backgroundOpacity, "UI", "GameListBackgroundOpacity", 100.0f); |
| 141 | SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.backgroundScale, "UI", "GameListBackgroundMode", BACKGROUND_SCALE_NAMES, QtUtils::ScalingMode::Fit); |
| 142 | connect(m_ui.backgroundBrowse, &QPushButton::clicked, [this]() { onSetGameListBackgroundTriggered(); }); |
| 143 | connect(m_ui.backgroundReset, &QPushButton::clicked, [this]() { onClearGameListBackgroundTriggered(); }); |
| 144 | connect(m_ui.backgroundOpacity, &QSpinBox::editingFinished, [this]() { emit backgroundChanged(); }); |
| 145 | connect(m_ui.backgroundScale, &QComboBox::currentIndexChanged, [this]() { emit backgroundChanged(); }); |
| 146 |
nothing calls this directly
no test coverage detected