Skip to content

Commit aee897e

Browse files
authored
Qt: Disable UI of settings forced via gamedb, part two (#3561)
Missed these in the previous commit.
1 parent d0840c0 commit aee897e

File tree

2 files changed

+16
-7
lines changed

2 files changed

+16
-7
lines changed

src/duckstation-qt/consolesettingswidget.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -142,7 +142,8 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
142142
connect(m_ui.cpuClockSpeed, &QSlider::valueChanged, this, &ConsoleSettingsWidget::onCPUClockSpeedValueChanged);
143143

144144
SettingWidgetBinder::SetAvailability(m_ui.fastBoot, !m_dialog->hasGameTrait(GameDatabase::Trait::ForceFullBoot));
145-
SettingWidgetBinder::SetAvailability(m_ui.fastForwardBoot, !m_dialog->hasGameTrait(GameDatabase::Trait::ForceFullBoot));
145+
SettingWidgetBinder::SetAvailability(m_ui.fastForwardBoot,
146+
!m_dialog->hasGameTrait(GameDatabase::Trait::ForceFullBoot));
146147
SettingWidgetBinder::SetAvailability(
147148
m_ui.cpuExecutionMode, !m_dialog->hasGameTrait(GameDatabase::Trait::ForceInterpreter), m_ui.cpuExecutionModeLabel);
148149
SettingWidgetBinder::SetAvailability(m_ui.cdromReadSpeedup,
@@ -151,6 +152,8 @@ ConsoleSettingsWidget::ConsoleSettingsWidget(SettingsWindow* dialog, QWidget* pa
151152
SettingWidgetBinder::SetAvailability(m_ui.cdromSeekSpeedup,
152153
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableCDROMSeekSpeedup),
153154
m_ui.cdromSeekSpeedupLabel);
155+
SettingWidgetBinder::SetForceEnabled(m_ui.recompilerICache,
156+
m_dialog->hasGameTrait(GameDatabase::Trait::ForceRecompilerICache));
154157

155158
calculateCPUClockValue();
156159
}
@@ -173,7 +176,8 @@ void ConsoleSettingsWidget::updateRecompilerICacheEnabled()
173176
Settings::GetCPUExecutionModeName(Settings::DEFAULT_CPU_EXECUTION_MODE))
174177
.c_str())
175178
.value_or(Settings::DEFAULT_CPU_EXECUTION_MODE);
176-
m_ui.recompilerICache->setEnabled(mode != CPUExecutionMode::Interpreter);
179+
m_ui.recompilerICache->setEnabled(mode != CPUExecutionMode::Interpreter &&
180+
!m_dialog->hasGameTrait(GameDatabase::Trait::ForceRecompilerICache));
177181
}
178182

179183
void ConsoleSettingsWidget::onEnableCPUClockSpeedControlChecked(int state)

src/duckstation-qt/graphicssettingswidget.cpp

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,8 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
127127
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableTextureFiltering) ||
128128
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableSpriteTextureFiltering));
129129
SettingWidgetBinder::SetAvailability(m_ui.pgxpEnable, !m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXP));
130+
SettingWidgetBinder::SetAvailability(m_ui.pgxpDepthBuffer,
131+
!m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXPDepthBuffer));
130132
SettingWidgetBinder::SetAvailability(m_ui.widescreenHack,
131133
!m_dialog->hasGameTrait(GameDatabase::Trait::DisableWidescreen));
132134

@@ -205,14 +207,18 @@ GraphicsSettingsWidget::GraphicsSettingsWidget(SettingsWindow* dialog, QWidget*
205207
!m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXPColorCorrection));
206208
SettingWidgetBinder::SetAvailability(m_ui.pgxpCulling,
207209
!m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXPCulling));
208-
SettingWidgetBinder::SetAvailability(m_ui.pgxpPreserveProjPrecision,
209-
!m_dialog->hasDatabaseEntry() ||
210-
m_dialog->getDatabaseEntry()->gpu_pgxp_preserve_proj_fp.value_or(true));
211210
SettingWidgetBinder::SetForceEnabled(m_ui.pgxpCPU, m_dialog->hasGameTrait(GameDatabase::Trait::ForcePGXPCPUMode));
212211
SettingWidgetBinder::SetForceEnabled(m_ui.pgxpVertexCache,
213212
m_dialog->hasGameTrait(GameDatabase::Trait::ForcePGXPVertexCache));
214213
SettingWidgetBinder::SetForceEnabled(m_ui.pgxpDisableOn2DPolygons,
215214
m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXPOn2DPolygons));
215+
if (auto dbentry = m_dialog->getDatabaseEntry(); dbentry && dbentry->gpu_pgxp_preserve_proj_fp.has_value())
216+
{
217+
if (*dbentry->gpu_pgxp_preserve_proj_fp)
218+
SettingWidgetBinder::SetForceEnabled(m_ui.pgxpPreserveProjPrecision, true);
219+
else
220+
SettingWidgetBinder::SetAvailability(m_ui.pgxpPreserveProjPrecision, false);
221+
}
216222

217223
// OSD Tab
218224

@@ -977,8 +983,7 @@ void GraphicsSettingsWidget::updatePGXPSettingsEnabled()
977983
!m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXPColorCorrection));
978984
m_ui.pgxpDepthBuffer->setEnabled(enabled && !m_dialog->hasGameTrait(GameDatabase::Trait::DisablePGXPDepthBuffer));
979985
m_ui.pgxpPreserveProjPrecision->setEnabled(
980-
enabled &&
981-
(!m_dialog->hasDatabaseEntry() || m_dialog->getDatabaseEntry()->gpu_pgxp_preserve_proj_fp.value_or(true)));
986+
enabled && (!m_dialog->hasDatabaseEntry() || !m_dialog->getDatabaseEntry()->gpu_pgxp_preserve_proj_fp.has_value()));
982987
m_ui.pgxpCPU->setEnabled(enabled && !m_dialog->hasGameTrait(GameDatabase::Trait::ForcePGXPCPUMode));
983988
m_ui.pgxpVertexCache->setEnabled(enabled && !m_dialog->hasGameTrait(GameDatabase::Trait::ForcePGXPVertexCache));
984989
m_ui.pgxpGeometryTolerance->setEnabled(enabled);

0 commit comments

Comments
 (0)