// SPDX-FileCopyrightText: Copyright 2024 shadPS4 Emulator Project // SPDX-License-Identifier: GPL-2.0-or-later #pragma once #include #include #include #include #include #include "common/config.h" #include "common/path_util.h" #include "gui_settings.h" #include "qt_gui/compatibility_info.h" namespace Ui { class SettingsDialog; } class SettingsDialog : public QDialog { Q_OBJECT public: explicit SettingsDialog(std::shared_ptr gui_settings, std::shared_ptr m_compat_info, QWidget* parent = nullptr); ~SettingsDialog(); bool eventFilter(QObject* obj, QEvent* event) override; void updateNoteTextEdit(const QString& groupName); int exec() override; signals: void LanguageChanged(const QString& locale); void CompatibilityChanged(); void BackgroundOpacityChanged(int opacity); private: void LoadValuesFromConfig(); void UpdateSettings(); void ResetInstallFolders(); void InitializeEmulatorLanguages(); void OnLanguageChanged(int index); void OnCursorStateChanged(s16 index); void closeEvent(QCloseEvent* event) override; void setDefaultValues(); std::unique_ptr ui; std::map languages; QString defaultTextEdit; int initialHeight; bool is_saving = false; std::shared_ptr m_gui_settings; };