[WIP] Qt: Add config window controls (#655)

* Qt: Add config window controls

* Fix Windows build

* Fix audio slider

* Qt configs: Make thread-safe, properly update audio enable & renderdoc settings

* Qt configs: Add `connectCheckbox` function

* Qt configs: Add `connectCheckbox` function

* Rename spuLayout

* Add Discord RPC reloading

* Allow configuring the app icon

* Qt: Serialize icon & theme, properly set them

* Add rnap and rcow icons

* Qt: Fix forceShadergen config

---------

Co-authored-by: wheremyfoodat <44909372+wheremyfoodat@users.noreply.github.com>
This commit is contained in:
Jonian Guveli 2024-12-01 23:06:47 +02:00 committed by GitHub
parent c2b479889c
commit 156328fbfb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
22 changed files with 509 additions and 25 deletions

View file

@ -0,0 +1,32 @@
#pragma once
#include <string>
// Some UI settings that aren't fully frontend-dependent. Note: Not all frontends will support the same settings.
// Note: Any enums should ideally be ordered in the same order we want to show them in UI dropdown menus, so that we can cast indices to enums
// directly.
struct FrontendSettings {
enum class Theme : int {
System = 0,
Light = 1,
Dark = 2,
GreetingsCat = 3,
Cream = 4,
};
// Different panda-themed window icons
enum class WindowIcon : int {
Rpog = 0,
Rsyn = 1,
Rnap = 2,
Rcow = 3,
};
Theme theme = Theme::Dark;
WindowIcon icon = WindowIcon::Rpog;
static Theme themeFromString(std::string inString);
static const char* themeToString(Theme theme);
static WindowIcon iconFromString(std::string inString);
static const char* iconToString(WindowIcon icon);
};