mirror of
https://github.com/stenzek/duckstation.git
synced 2026-02-08 23:34:32 +00:00
Qt: Don't manually populate combos for enums
This commit is contained in:
@@ -22,21 +22,12 @@ AudioSettingsWidget::AudioSettingsWidget(SettingsWindow* dialog, QWidget* parent
|
||||
|
||||
m_ui.setupUi(this);
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(AudioBackend::Count); i++)
|
||||
m_ui.audioBackend->addItem(QString::fromUtf8(AudioStream::GetBackendDisplayName(static_cast<AudioBackend>(i))));
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(AudioStretchMode::Count); i++)
|
||||
{
|
||||
m_ui.stretchMode->addItem(
|
||||
QString::fromUtf8(AudioStream::GetStretchModeDisplayName(static_cast<AudioStretchMode>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.audioBackend, "Audio", "Backend",
|
||||
&AudioStream::ParseBackendName, &AudioStream::GetBackendName,
|
||||
AudioStream::DEFAULT_BACKEND);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.stretchMode, "Audio", "StretchMode",
|
||||
&AudioStream::ParseStretchMode, &AudioStream::GetStretchModeName,
|
||||
AudioStreamParameters::DEFAULT_STRETCH_MODE);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.audioBackend, "Audio", "Backend", &AudioStream::ParseBackendName, &AudioStream::GetBackendName,
|
||||
&AudioStream::GetBackendDisplayName, AudioStream::DEFAULT_BACKEND, AudioBackend::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.stretchMode, "Audio", "StretchMode", &AudioStream::ParseStretchMode, &AudioStream::GetStretchModeName,
|
||||
&AudioStream::GetStretchModeDisplayName, AudioStreamParameters::DEFAULT_STRETCH_MODE, AudioStretchMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.bufferMS, "Audio", "BufferMS",
|
||||
AudioStreamParameters::DEFAULT_BUFFER_MS);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.outputLatencyMS, "Audio", "OutputLatencyMS",
|
||||
|
||||
@@ -25,33 +25,19 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
|
||||
|
||||
m_ui.setupUi(this);
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(ConsoleRegion::Count); i++)
|
||||
{
|
||||
m_ui.region->addItem(QtUtils::GetIconForRegion(static_cast<ConsoleRegion>(i)),
|
||||
QString::fromUtf8(Settings::GetConsoleRegionDisplayName(static_cast<ConsoleRegion>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(ForceVideoTimingMode::Count); i++)
|
||||
{
|
||||
const ForceVideoTimingMode mode = static_cast<ForceVideoTimingMode>(i);
|
||||
const QIcon region_icon =
|
||||
QtUtils::GetIconForRegion((mode == ForceVideoTimingMode::Disabled) ?
|
||||
ConsoleRegion::Auto :
|
||||
((mode == ForceVideoTimingMode::NTSC) ? ConsoleRegion::NTSC_U : ConsoleRegion::PAL));
|
||||
m_ui.forceVideoTiming->addItem(region_icon, QString::fromUtf8(Settings::GetForceVideoTimingDisplayName(mode)));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(CPUExecutionMode::Count); i++)
|
||||
{
|
||||
m_ui.cpuExecutionMode->addItem(
|
||||
QString::fromUtf8(Settings::GetCPUExecutionModeDisplayName(static_cast<CPUExecutionMode>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.region, "Console", "Region", &Settings::ParseConsoleRegionName,
|
||||
&Settings::GetConsoleRegionName, Settings::DEFAULT_CONSOLE_REGION);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.forceVideoTiming, "GPU", "ForceVideoTiming",
|
||||
&Settings::ParseForceVideoTimingName, &Settings::GetForceVideoTimingName,
|
||||
Settings::DEFAULT_FORCE_VIDEO_TIMING_MODE);
|
||||
&Settings::GetConsoleRegionName, &Settings::GetConsoleRegionDisplayName,
|
||||
Settings::DEFAULT_CONSOLE_REGION, ConsoleRegion::Count,
|
||||
&QtUtils::GetIconForRegion);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.forceVideoTiming, "GPU", "ForceVideoTiming", &Settings::ParseForceVideoTimingName,
|
||||
&Settings::GetForceVideoTimingName, &Settings::GetForceVideoTimingDisplayName,
|
||||
Settings::DEFAULT_FORCE_VIDEO_TIMING_MODE, ForceVideoTimingMode::Count, +[](ForceVideoTimingMode mode) {
|
||||
return QtUtils::GetIconForRegion(
|
||||
(mode == ForceVideoTimingMode::Disabled) ?
|
||||
ConsoleRegion::Auto :
|
||||
((mode == ForceVideoTimingMode::NTSC) ? ConsoleRegion::NTSC_U : ConsoleRegion::PAL));
|
||||
});
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.fastBoot, "BIOS", "PatchFastBoot", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.fastForwardBoot, "BIOS", "FastForwardBoot", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.enable8MBRAM, "Console", "Enable8MBRAM", false);
|
||||
@@ -62,7 +48,8 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.cpuExecutionMode, "CPU", "ExecutionMode",
|
||||
&Settings::ParseCPUExecutionMode, &Settings::GetCPUExecutionModeName,
|
||||
Settings::DEFAULT_CPU_EXECUTION_MODE);
|
||||
&Settings::GetCPUExecutionModeDisplayName,
|
||||
Settings::DEFAULT_CPU_EXECUTION_MODE, CPUExecutionMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.enableCPUClockSpeedControl, "CPU", "OverclockEnable", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.recompilerICache, "CPU", "RecompilerICache", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.cdromLoadImageToRAM, "CDROM", "LoadImageToRAM", false);
|
||||
|
||||
@@ -59,22 +59,28 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
// Rendering Tab
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.renderer, "GPU", "Renderer", &Settings::ParseRendererName,
|
||||
&Settings::GetRendererName, Settings::DEFAULT_GPU_RENDERER);
|
||||
&Settings::GetRendererName, &Settings::GetRendererDisplayName,
|
||||
Settings::DEFAULT_GPU_RENDERER, GPURenderer::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.textureFiltering, "GPU", "TextureFilter",
|
||||
&Settings::ParseTextureFilterName, &Settings::GetTextureFilterName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER);
|
||||
&Settings::GetTextureFilterDisplayName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER, GPUTextureFilter::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.spriteTextureFiltering, "GPU", "SpriteTextureFilter",
|
||||
&Settings::ParseTextureFilterName, &Settings::GetTextureFilterName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER);
|
||||
&Settings::GetTextureFilterDisplayName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER, GPUTextureFilter::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuDitheringMode, "GPU", "DitheringMode",
|
||||
&Settings::ParseGPUDitheringModeName, &Settings::GetGPUDitheringModeName,
|
||||
Settings::DEFAULT_GPU_DITHERING_MODE);
|
||||
&Settings::GetGPUDitheringModeDisplayName,
|
||||
Settings::DEFAULT_GPU_DITHERING_MODE, GPUDitheringMode::MaxCount);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuDownsampleMode, "GPU", "DownsampleMode",
|
||||
&Settings::ParseDownsampleModeName, &Settings::GetDownsampleModeName,
|
||||
Settings::DEFAULT_GPU_DOWNSAMPLE_MODE);
|
||||
&Settings::GetDownsampleModeDisplayName,
|
||||
Settings::DEFAULT_GPU_DOWNSAMPLE_MODE, GPUDownsampleMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayAspectRatio, "Display", "AspectRatio",
|
||||
&Settings::ParseDisplayAspectRatio, &Settings::GetDisplayAspectRatioName,
|
||||
Settings::DEFAULT_DISPLAY_ASPECT_RATIO);
|
||||
&Settings::GetDisplayAspectRatioDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_ASPECT_RATIO, DisplayAspectRatio::Count);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.customAspectRatioNumerator, "Display",
|
||||
"CustomAspectRatioNumerator", 1);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.customAspectRatioDenominator, "Display",
|
||||
@@ -82,13 +88,15 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.widescreenHack, "GPU", "WidescreenHack", false);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.displayDeinterlacing, "GPU", "DeinterlacingMode", &Settings::ParseDisplayDeinterlacingMode,
|
||||
&Settings::GetDisplayDeinterlacingModeName, Settings::DEFAULT_DISPLAY_DEINTERLACING_MODE);
|
||||
&Settings::GetDisplayDeinterlacingModeName, &Settings::GetDisplayDeinterlacingModeDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_DEINTERLACING_MODE, DisplayDeinterlacingMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayCropMode, "Display", "CropMode",
|
||||
&Settings::ParseDisplayCropMode, &Settings::GetDisplayCropModeName,
|
||||
Settings::DEFAULT_DISPLAY_CROP_MODE);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayScaling, "Display", "Scaling",
|
||||
&Settings::ParseDisplayScaling, &Settings::GetDisplayScalingName,
|
||||
Settings::DEFAULT_DISPLAY_SCALING);
|
||||
&Settings::GetDisplayCropModeDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_CROP_MODE, DisplayCropMode::MaxCount);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.displayScaling, "Display", "Scaling", &Settings::ParseDisplayScaling, &Settings::GetDisplayScalingName,
|
||||
&Settings::GetDisplayScalingDisplayName, Settings::DEFAULT_DISPLAY_SCALING, DisplayScalingMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.gpuDownsampleScale, "GPU", "DownsampleScale", 1);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpEnable, "GPU", "PGXPEnable", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.pgxpDepthBuffer, "GPU", "PGXPDepthBuffer", false);
|
||||
@@ -123,13 +131,16 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.exclusiveFullscreenControl, "Display", "ExclusiveFullscreenControl",
|
||||
&Settings::ParseDisplayExclusiveFullscreenControl, &Settings::GetDisplayExclusiveFullscreenControlName,
|
||||
Settings::DEFAULT_DISPLAY_EXCLUSIVE_FULLSCREEN_CONTROL);
|
||||
&Settings::GetDisplayExclusiveFullscreenControlDisplayName, Settings::DEFAULT_DISPLAY_EXCLUSIVE_FULLSCREEN_CONTROL,
|
||||
DisplayExclusiveFullscreenControl::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayAlignment, "Display", "Alignment",
|
||||
&Settings::ParseDisplayAlignment, &Settings::GetDisplayAlignmentName,
|
||||
Settings::DEFAULT_DISPLAY_ALIGNMENT);
|
||||
&Settings::GetDisplayAlignmentDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_ALIGNMENT, DisplayAlignment::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.displayRotation, "Display", "Rotation",
|
||||
&Settings::ParseDisplayRotation, &Settings::GetDisplayRotationName,
|
||||
Settings::DEFAULT_DISPLAY_ROTATION);
|
||||
&Settings::GetDisplayRotationDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_ROTATION, DisplayRotation::Count);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.disableMailboxPresentation, "Display",
|
||||
"DisableMailboxPresentation", false);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.automaticallyResizeWindow, "Display", "AutoResizeWindow",
|
||||
@@ -139,10 +150,12 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
#endif
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuLineDetectMode, "GPU", "LineDetectMode",
|
||||
&Settings::ParseLineDetectModeName, &Settings::GetLineDetectModeName,
|
||||
Settings::DEFAULT_GPU_LINE_DETECT_MODE);
|
||||
&Settings::GetLineDetectModeDisplayName,
|
||||
Settings::DEFAULT_GPU_LINE_DETECT_MODE, GPULineDetectMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.gpuWireframeMode, "GPU", "WireframeMode",
|
||||
Settings::ParseGPUWireframeMode, Settings::GetGPUWireframeModeName,
|
||||
Settings::DEFAULT_GPU_WIREFRAME_MODE);
|
||||
&Settings::GetGPUWireframeModeDisplayName,
|
||||
Settings::DEFAULT_GPU_WIREFRAME_MODE, GPUWireframeMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.gpuThread, "GPU", "UseThread", true);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.maxQueuedFrames, "GPU", "MaxQueuedFrames",
|
||||
Settings::DEFAULT_GPU_MAX_QUEUED_FRAMES);
|
||||
@@ -214,16 +227,19 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.screenshotSize, "Display", "ScreenshotMode", &Settings::ParseDisplayScreenshotMode,
|
||||
&Settings::GetDisplayScreenshotModeName, Settings::DEFAULT_DISPLAY_SCREENSHOT_MODE);
|
||||
&Settings::GetDisplayScreenshotModeName, &Settings::GetDisplayScreenshotModeDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_SCREENSHOT_MODE, DisplayScreenshotMode::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(
|
||||
sif, m_ui.screenshotFormat, "Display", "ScreenshotFormat", &Settings::ParseDisplayScreenshotFormat,
|
||||
&Settings::GetDisplayScreenshotFormatName, Settings::DEFAULT_DISPLAY_SCREENSHOT_FORMAT);
|
||||
&Settings::GetDisplayScreenshotFormatName, &Settings::GetDisplayScreenshotFormatDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_SCREENSHOT_FORMAT, DisplayScreenshotFormat::Count);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.screenshotQuality, "Display", "ScreenshotQuality",
|
||||
Settings::DEFAULT_DISPLAY_SCREENSHOT_QUALITY);
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(sif, m_ui.mediaCaptureBackend, "MediaCapture", "Backend",
|
||||
&MediaCapture::ParseBackendName, &MediaCapture::GetBackendName,
|
||||
Settings::DEFAULT_MEDIA_CAPTURE_BACKEND);
|
||||
&MediaCapture::GetBackendDisplayName,
|
||||
Settings::DEFAULT_MEDIA_CAPTURE_BACKEND, MediaCaptureBackend::MaxCount);
|
||||
SettingWidgetBinder::BindWidgetToBoolSetting(sif, m_ui.enableVideoCapture, "MediaCapture", "VideoCapture", true);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(sif, m_ui.videoCaptureWidth, "MediaCapture", "VideoWidth",
|
||||
Settings::DEFAULT_MEDIA_CAPTURE_VIDEO_WIDTH);
|
||||
@@ -672,57 +688,6 @@ GraphicsSettingsWidget::~GraphicsSettingsWidget() = default;
|
||||
|
||||
void GraphicsSettingsWidget::setupAdditionalUi()
|
||||
{
|
||||
// Rendering Tab
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPURenderer::Count); i++)
|
||||
{
|
||||
m_ui.renderer->addItem(QString::fromUtf8(Settings::GetRendererDisplayName(static_cast<GPURenderer>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPUTextureFilter::Count); i++)
|
||||
{
|
||||
m_ui.textureFiltering->addItem(
|
||||
QString::fromUtf8(Settings::GetTextureFilterDisplayName(static_cast<GPUTextureFilter>(i))));
|
||||
m_ui.spriteTextureFiltering->addItem(
|
||||
QString::fromUtf8(Settings::GetTextureFilterDisplayName(static_cast<GPUTextureFilter>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPUDitheringMode::MaxCount); i++)
|
||||
{
|
||||
m_ui.gpuDitheringMode->addItem(
|
||||
QString::fromUtf8(Settings::GetGPUDitheringModeDisplayName(static_cast<GPUDitheringMode>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPUDownsampleMode::Count); i++)
|
||||
{
|
||||
m_ui.gpuDownsampleMode->addItem(
|
||||
QString::fromUtf8(Settings::GetDownsampleModeDisplayName(static_cast<GPUDownsampleMode>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayAspectRatio::Count); i++)
|
||||
{
|
||||
m_ui.displayAspectRatio->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayAspectRatioDisplayName(static_cast<DisplayAspectRatio>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayDeinterlacingMode::Count); i++)
|
||||
{
|
||||
m_ui.displayDeinterlacing->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayDeinterlacingModeDisplayName(static_cast<DisplayDeinterlacingMode>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayCropMode::MaxCount); i++)
|
||||
{
|
||||
m_ui.displayCropMode->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayCropModeDisplayName(static_cast<DisplayCropMode>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayScalingMode::Count); i++)
|
||||
{
|
||||
m_ui.displayScaling->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayScalingDisplayName(static_cast<DisplayScalingMode>(i))));
|
||||
}
|
||||
|
||||
// OSD Tab
|
||||
|
||||
const std::vector<std::string_view> fsui_theme_names = FullscreenUI::GetThemeNames();
|
||||
@@ -732,60 +697,6 @@ void GraphicsSettingsWidget::setupAdditionalUi()
|
||||
m_ui.fullscreenUITheme->addItem(QtUtils::StringViewToQString(fsui_theme_names[i]),
|
||||
QString::fromUtf8(fsui_theme_values[i]));
|
||||
}
|
||||
|
||||
// Advanced Tab
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayExclusiveFullscreenControl::Count); i++)
|
||||
{
|
||||
m_ui.exclusiveFullscreenControl->addItem(QString::fromUtf8(
|
||||
Settings::GetDisplayExclusiveFullscreenControlDisplayName(static_cast<DisplayExclusiveFullscreenControl>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayAlignment::Count); i++)
|
||||
{
|
||||
m_ui.displayAlignment->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayAlignmentDisplayName(static_cast<DisplayAlignment>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayRotation::Count); i++)
|
||||
{
|
||||
m_ui.displayRotation->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayRotationDisplayName(static_cast<DisplayRotation>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPULineDetectMode::Count); i++)
|
||||
{
|
||||
m_ui.gpuLineDetectMode->addItem(
|
||||
QString::fromUtf8(Settings::GetLineDetectModeDisplayName(static_cast<GPULineDetectMode>(i))));
|
||||
}
|
||||
|
||||
// Capture Tab
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayScreenshotMode::Count); i++)
|
||||
{
|
||||
m_ui.screenshotSize->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayScreenshotModeDisplayName(static_cast<DisplayScreenshotMode>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayScreenshotFormat::Count); i++)
|
||||
{
|
||||
m_ui.screenshotFormat->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayScreenshotFormatDisplayName(static_cast<DisplayScreenshotFormat>(i))));
|
||||
}
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(MediaCaptureBackend::MaxCount); i++)
|
||||
{
|
||||
m_ui.mediaCaptureBackend->addItem(
|
||||
QString::fromUtf8(MediaCapture::GetBackendDisplayName(static_cast<MediaCaptureBackend>(i))));
|
||||
}
|
||||
|
||||
// Debugging Tab
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPUWireframeMode::Count); i++)
|
||||
{
|
||||
m_ui.gpuWireframeMode->addItem(
|
||||
QString::fromUtf8(Settings::GetGPUWireframeModeDisplayName(static_cast<GPUWireframeMode>(i))));
|
||||
}
|
||||
}
|
||||
|
||||
void GraphicsSettingsWidget::removePlatformSpecificUi()
|
||||
|
||||
@@ -43,6 +43,7 @@ template<typename T>
|
||||
struct SettingAccessor
|
||||
{
|
||||
static void addOption(T* widget, const char* value_name);
|
||||
static void addOption(T* widget, const char* value_name, const QIcon& icon);
|
||||
|
||||
static bool getBoolValue(const T* widget);
|
||||
static void setBoolValue(T* widget, bool value);
|
||||
@@ -77,8 +78,6 @@ struct SettingAccessor
|
||||
template<>
|
||||
struct SettingAccessor<QLineEdit>
|
||||
{
|
||||
static void addOption(QLineEdit* widget, const char* value_name) {}
|
||||
|
||||
static bool getBoolValue(const QLineEdit* widget) { return widget->text().toInt() != 0; }
|
||||
static void setBoolValue(QLineEdit* widget, bool value)
|
||||
{
|
||||
@@ -131,6 +130,10 @@ template<>
|
||||
struct SettingAccessor<QComboBox>
|
||||
{
|
||||
static void addOption(QComboBox* widget, const char* value_name) { widget->addItem(QString::fromUtf8(value_name)); }
|
||||
static void addOption(QComboBox* widget, const char* value_name, const QIcon& icon)
|
||||
{
|
||||
widget->addItem(icon, QString::fromUtf8(value_name));
|
||||
}
|
||||
|
||||
static bool isNullValue(const QComboBox* widget) { return (widget->currentIndex() == 0); }
|
||||
|
||||
@@ -225,8 +228,6 @@ struct SettingAccessor<QComboBox>
|
||||
template<>
|
||||
struct SettingAccessor<QCheckBox>
|
||||
{
|
||||
static void addOption(QCheckBox* widget, const char* value_name) {}
|
||||
|
||||
static bool getBoolValue(const QCheckBox* widget) { return widget->isChecked(); }
|
||||
static void setBoolValue(QCheckBox* widget, bool value) { widget->setChecked(value); }
|
||||
static void makeNullableBool(QCheckBox* widget, bool globalValue) { widget->setTristate(true); }
|
||||
@@ -300,8 +301,6 @@ struct SettingAccessor<QCheckBox>
|
||||
template<>
|
||||
struct SettingAccessor<QSlider>
|
||||
{
|
||||
static void addOption(QSlider* widget, const char* value_name) {}
|
||||
|
||||
static bool isNullable(const QSlider* widget) { return widget->property(NULLABLE_PROPERTY).toBool(); }
|
||||
|
||||
static bool getBoolValue(const QSlider* widget) { return widget->value() > 0; }
|
||||
@@ -416,8 +415,6 @@ struct SettingAccessor<QSlider>
|
||||
template<>
|
||||
struct SettingAccessor<QSpinBox>
|
||||
{
|
||||
static void addOption(QSpinBox* widget, const char* value_name) {}
|
||||
|
||||
static bool isNullable(const QSpinBox* widget) { return widget->property(NULLABLE_PROPERTY).toBool(); }
|
||||
|
||||
static void updateFont(QSpinBox* widget, bool isNull)
|
||||
@@ -555,8 +552,6 @@ struct SettingAccessor<QSpinBox>
|
||||
template<>
|
||||
struct SettingAccessor<QDoubleSpinBox>
|
||||
{
|
||||
static void addOption(QDoubleSpinBox* widget, const char* value_name) {}
|
||||
|
||||
static bool isNullable(const QDoubleSpinBox* widget) { return widget->property(NULLABLE_PROPERTY).toBool(); }
|
||||
|
||||
static void updateFont(QDoubleSpinBox* widget, bool isNull)
|
||||
@@ -695,8 +690,6 @@ struct SettingAccessor<QDoubleSpinBox>
|
||||
template<>
|
||||
struct SettingAccessor<QAction>
|
||||
{
|
||||
static void addOption(QAction* widget, const char* value_name) {}
|
||||
|
||||
static bool getBoolValue(const QAction* widget) { return widget->isChecked(); }
|
||||
static void setBoolValue(QAction* widget, bool value) { widget->setChecked(value); }
|
||||
static void makeNullableBool(QAction* widget, bool globalSetting) { widget->setEnabled(false); }
|
||||
@@ -1156,13 +1149,24 @@ inline void BindWidgetToEnumSetting(SettingsInterface* sif, WidgetType* widget,
|
||||
std::optional<DataType> (*from_string_function)(const char* str),
|
||||
const char* (*to_string_function)(DataType value),
|
||||
const char* (*to_display_name_function)(DataType value), DataType default_value,
|
||||
ValueCountType value_count)
|
||||
ValueCountType value_count, QIcon (*item_icon_function)(DataType value) = nullptr)
|
||||
{
|
||||
using Accessor = SettingAccessor<WidgetType>;
|
||||
using UnderlyingType = std::underlying_type_t<DataType>;
|
||||
|
||||
for (UnderlyingType i = 0; i < static_cast<UnderlyingType>(value_count); i++)
|
||||
Accessor::addOption(widget, to_display_name_function(static_cast<DataType>(i)));
|
||||
if (item_icon_function)
|
||||
{
|
||||
for (UnderlyingType i = 0; i < static_cast<UnderlyingType>(value_count); i++)
|
||||
{
|
||||
Accessor::addOption(widget, to_display_name_function(static_cast<DataType>(i)),
|
||||
item_icon_function(static_cast<DataType>(i)));
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
for (UnderlyingType i = 0; i < static_cast<UnderlyingType>(value_count); i++)
|
||||
Accessor::addOption(widget, to_display_name_function(static_cast<DataType>(i)));
|
||||
}
|
||||
|
||||
const std::string value(
|
||||
Host::GetBaseStringSettingValue(section.c_str(), key.c_str(), to_string_function(default_value)));
|
||||
|
||||
@@ -514,46 +514,30 @@ void SetupWizardDialog::setupGraphicsPage(bool initial)
|
||||
SettingWidgetBinder::DisconnectWidget(m_ui.spriteTextureFiltering);
|
||||
m_ui.spriteTextureFiltering->clear();
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPUTextureFilter::Count); i++)
|
||||
{
|
||||
m_ui.textureFiltering->addItem(
|
||||
QString::fromUtf8(Settings::GetTextureFilterDisplayName(static_cast<GPUTextureFilter>(i))));
|
||||
m_ui.spriteTextureFiltering->addItem(
|
||||
QString::fromUtf8(Settings::GetTextureFilterDisplayName(static_cast<GPUTextureFilter>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.textureFiltering, "GPU", "TextureFilter",
|
||||
&Settings::ParseTextureFilterName, &Settings::GetTextureFilterName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER);
|
||||
&Settings::GetTextureFilterDisplayName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER, GPUTextureFilter::Count);
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.spriteTextureFiltering, "GPU", "SpriteTextureFilter",
|
||||
&Settings::ParseTextureFilterName, &Settings::GetTextureFilterName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER);
|
||||
&Settings::GetTextureFilterDisplayName,
|
||||
Settings::DEFAULT_GPU_TEXTURE_FILTER, GPUTextureFilter::Count);
|
||||
|
||||
SettingWidgetBinder::DisconnectWidget(m_ui.gpuDitheringMode);
|
||||
m_ui.gpuDitheringMode->clear();
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(GPUDitheringMode::MaxCount); i++)
|
||||
{
|
||||
m_ui.gpuDitheringMode->addItem(
|
||||
QString::fromUtf8(Settings::GetGPUDitheringModeDisplayName(static_cast<GPUDitheringMode>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.gpuDitheringMode, "GPU", "DitheringMode",
|
||||
&Settings::ParseGPUDitheringModeName, &Settings::GetGPUDitheringModeName,
|
||||
Settings::DEFAULT_GPU_DITHERING_MODE);
|
||||
&Settings::GetGPUDitheringModeDisplayName,
|
||||
Settings::DEFAULT_GPU_DITHERING_MODE, GPUDitheringMode::MaxCount);
|
||||
|
||||
SettingWidgetBinder::DisconnectWidget(m_ui.displayAspectRatio);
|
||||
m_ui.displayAspectRatio->clear();
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayAspectRatio::Count); i++)
|
||||
{
|
||||
m_ui.displayAspectRatio->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayAspectRatioDisplayName(static_cast<DisplayAspectRatio>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.displayAspectRatio, "Display", "AspectRatio",
|
||||
&Settings::ParseDisplayAspectRatio, &Settings::GetDisplayAspectRatioName,
|
||||
Settings::DEFAULT_DISPLAY_ASPECT_RATIO);
|
||||
&Settings::GetDisplayAspectRatioDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_ASPECT_RATIO, DisplayAspectRatio::Count);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(nullptr, m_ui.customAspectRatioNumerator, "Display",
|
||||
"CustomAspectRatioNumerator", 1);
|
||||
SettingWidgetBinder::BindWidgetToIntSetting(nullptr, m_ui.customAspectRatioDenominator, "Display",
|
||||
@@ -565,28 +549,18 @@ void SetupWizardDialog::setupGraphicsPage(bool initial)
|
||||
SettingWidgetBinder::DisconnectWidget(m_ui.displayCropMode);
|
||||
m_ui.displayCropMode->clear();
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayCropMode::MaxCount); i++)
|
||||
{
|
||||
m_ui.displayCropMode->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayCropModeDisplayName(static_cast<DisplayCropMode>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.displayCropMode, "Display", "CropMode",
|
||||
&Settings::ParseDisplayCropMode, &Settings::GetDisplayCropModeName,
|
||||
Settings::DEFAULT_DISPLAY_CROP_MODE);
|
||||
&Settings::GetDisplayCropModeDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_CROP_MODE, DisplayCropMode::MaxCount);
|
||||
|
||||
SettingWidgetBinder::DisconnectWidget(m_ui.displayScaling);
|
||||
m_ui.displayScaling->clear();
|
||||
|
||||
for (u32 i = 0; i < static_cast<u32>(DisplayScalingMode::Count); i++)
|
||||
{
|
||||
m_ui.displayScaling->addItem(
|
||||
QString::fromUtf8(Settings::GetDisplayScalingDisplayName(static_cast<DisplayScalingMode>(i))));
|
||||
}
|
||||
|
||||
SettingWidgetBinder::BindWidgetToEnumSetting(nullptr, m_ui.displayScaling, "Display", "Scaling",
|
||||
&Settings::ParseDisplayScaling, &Settings::GetDisplayScalingName,
|
||||
Settings::DEFAULT_DISPLAY_SCALING);
|
||||
&Settings::GetDisplayScalingDisplayName,
|
||||
Settings::DEFAULT_DISPLAY_SCALING, DisplayScalingMode::Count);
|
||||
|
||||
if (initial)
|
||||
{
|
||||
@@ -648,11 +622,10 @@ void SetupWizardDialog::updateAchievementsLoginState()
|
||||
{
|
||||
const u64 login_unix_timestamp =
|
||||
StringUtil::FromChars<u64>(Host::GetBaseStringSettingValue("Cheevos", "LoginTimestamp", "0")).value_or(0);
|
||||
const QString login_timestamp = QtHost::FormatNumber(Host::NumberFormatType::ShortDateTime,
|
||||
static_cast<s64>(login_unix_timestamp));
|
||||
m_ui.loginStatus->setText(tr("Username: %1\nLogin token generated on %2.")
|
||||
.arg(QString::fromStdString(username))
|
||||
.arg(login_timestamp));
|
||||
const QString login_timestamp =
|
||||
QtHost::FormatNumber(Host::NumberFormatType::ShortDateTime, static_cast<s64>(login_unix_timestamp));
|
||||
m_ui.loginStatus->setText(
|
||||
tr("Username: %1\nLogin token generated on %2.").arg(QString::fromStdString(username)).arg(login_timestamp));
|
||||
m_ui.loginButton->setText(tr("Logout"));
|
||||
}
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user