diff --git a/idd/LGIddHelper/CConfigWindow.cpp b/idd/LGIddHelper/CConfigWindow.cpp index 21f8e5af..e9a0eb82 100644 --- a/idd/LGIddHelper/CConfigWindow.cpp +++ b/idd/LGIddHelper/CConfigWindow.cpp @@ -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; }