Add GFX property tabs to game properties window, allowing them to be set to the user game ini. Additionally, refactor ConfigWidgets to reduce duplication. Refactor GameConfigWidget to use config system.

Creates a layer outside the game config layer system and passes it to the created gfx widows, so as to not interfere with the global config system.

Supports multiple game properties being open at once.
Supports editing while a game is playing, but the options only save and update the active game when the window is closed.
Right-clicking will remove a property from the game ini.
This commit is contained in:
TryTwo
2024-09-17 23:29:13 -07:00
parent 08df9a66e0
commit 84a937ae65
24 changed files with 573 additions and 464 deletions

View File

@ -10,6 +10,7 @@
class ConfigBool;
class ConfigChoice;
class ConfigSlider;
class GameConfigWidget;
class GraphicsWindow;
class QCheckBox;
class QComboBox;
@ -19,11 +20,17 @@ class ToolTipComboBox;
class ToolTipPushButton;
enum class StereoMode : int;
namespace Config
{
class Layer;
} // namespace Config
class EnhancementsWidget final : public QWidget
{
Q_OBJECT
public:
explicit EnhancementsWidget(GraphicsWindow* parent);
EnhancementsWidget(GameConfigWidget* parent, Config::Layer* layer);
private:
void LoadSettings();
@ -60,6 +67,7 @@ private:
ConfigBool* m_3d_swap_eyes;
ConfigBool* m_3d_per_eye_resolution;
Config::Layer* m_game_layer = nullptr;
int m_msaa_modes;
bool m_block_save;
};