[idd] helper: implement deferred mode save and revert

This commit is contained in:
Quantum
2026-07-18 03:16:08 -04:00
committed by Geoffrey McRae
parent 064fef1f62
commit 83209fd3a9

View File

@@ -290,12 +290,6 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
m_modeBox->clear();
m_modeBox->setSel(updateModeList(index));
LRESULT result = m_settings.setModes(*m_modes);
if (result == ERROR_SUCCESS)
sendSettingChange();
else
DEBUG_ERROR_HR((HRESULT) result, "Failed to save modes");
}
else if (m_modeDelete && hwnd == *m_modeDelete && code == BN_CLICKED && m_modes)
{
@@ -309,12 +303,6 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
updateModeList();
onModeListSelectChange();
LRESULT result = m_settings.setModes(*m_modes);
if (result == ERROR_SUCCESS)
sendSettingChange();
else
DEBUG_ERROR_HR((HRESULT) result, "Failed to save modes");
}
else if (m_modeReset && hwnd == *m_modeReset && code == BN_CLICKED && m_modes)
{
@@ -322,39 +310,64 @@ LRESULT CConfigWindow::onCommand(WORD id, WORD code, HWND hwnd)
m_modeBox->clear();
updateModeList();
onModeListSelectChange();
LRESULT result = m_settings.setModes(*m_modes);
if (result == ERROR_SUCCESS)
sendSettingChange();
else
DEBUG_ERROR_HR((HRESULT)result, "Failed to save modes");
}
else if (m_defRefresh && hwnd == *m_defRefresh && code == EN_CHANGE && m_defaultRefresh)
{
int value;
try
{
value = m_defRefresh->getNumericValue();
m_defaultRefresh = m_defRefresh->getNumericValue();
}
catch (std::logic_error &)
{
return 0;
}
m_defaultRefresh = value;
LRESULT result = m_settings.setDefaultRefresh(value);
if (result == ERROR_SUCCESS)
sendSettingChange();
else
DEBUG_ERROR_HR((HRESULT)result, "Failed to default refresh");
}
else if (m_prefNoGPU && hwnd == *m_prefNoGPU && code == BN_CLICKED && m_noGPU)
{
DEBUG_INFO("GPU button clicked");
*m_noGPU ^= true;
m_settings.setNoGPU(*m_noGPU);
m_prefNoGPU->setChecked(*m_noGPU);
}
else if (m_modeSave && hwnd == *m_modeSave && code == BN_CLICKED)
{
bool updated = false;
if (m_modes)
{
LRESULT result = m_settings.setModes(*m_modes);
if (result == ERROR_SUCCESS)
updated = true;
else
DEBUG_ERROR_HR((HRESULT)result, "Failed to save modes");
}
if (m_defaultRefresh)
{
LRESULT result = m_settings.setDefaultRefresh(*m_defaultRefresh);
if (result == ERROR_SUCCESS)
updated = true;
else
DEBUG_ERROR_HR((HRESULT)result, "Failed to default refresh");
}
if (updated)
sendSettingChange();
}
else if (m_modeRevert && hwnd == *m_modeRevert && code == BN_CLICKED)
{
m_modes = m_settings.getModes();
m_defaultRefresh = m_settings.getDefaultRefresh();
if (m_modes)
{
m_modeBox->clear();
updateModeList();
}
if (m_defaultRefresh)
m_defRefresh->setNumericValue(*m_defaultRefresh);
else
m_defRefresh->disable();
}
return 0;
}