Index: src/ch/OptionsDlg.cpp =================================================================== diff -u -N -r0d5b67ee96b435d63f7bf075dc8e28603793b187 -r58de8d7360813537b384eff808c031f9e63db4de --- src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 0d5b67ee96b435d63f7bf075dc8e28603793b187) +++ src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 58de8d7360813537b384eff808c031f9e63db4de) @@ -41,7 +41,8 @@ COptionsDlg::COptionsDlg(CWnd* pParent /*=nullptr*/) :ictranslate::CLanguageDialog(IDD_OPTIONS_DIALOG, pParent, &m_bLock), - m_spLog(logger::MakeLogger(GetLogFileData(), L"OptionsDlg")) + m_spLog(logger::MakeLogger(GetLogFileData(), L"OptionsDlg")), + m_autoRun(GetApp().GetAppName(), chcore::PathFromString(GetApp().GetFullProgramPath())) { } @@ -237,8 +238,9 @@ PROP_SEPARATOR(IDS_PROGRAM_STRING); PROP_BOOL(IDS_CLIPBOARDMONITORING_STRING, GetPropValue(GetConfig())); PROP_UINT(IDS_CLIPBOARDINTERVAL_STRING, GetPropValue(GetConfig())); - PROP_BOOL(IDS_AUTORUNPROGRAM_STRING, GetPropValue(GetConfig())); + PROP_BOOL(IDS_AUTORUNPROGRAM_STRING, IsAutorunEnabled()); + PROP_COMBO(IDS_CFG_CHECK_FOR_UPDATES_FREQUENCY, IDS_UPDATE_FREQUENCIES, GetPropValue(GetConfig())); PROP_COMBO(IDS_CFG_UPDATECHANNEL, IDS_CFGUPDATECHANNELITEMS_STRING, GetPropValue(GetConfig())); PROP_COMBO(IDS_CFG_USE_SECURE_CONNECTION, IDS_SECURE_CONNECTION_TYPES, GetPropValue(GetConfig())); @@ -370,7 +372,7 @@ SKIP_SEPARATOR(iPosition); SetPropValue(rConfig, GetBoolProp(iPosition++)); SetPropValue(rConfig, GetUintProp(iPosition++)); - SetPropValue(rConfig, GetBoolProp(iPosition++)); + EnableAutorun(GetBoolProp(iPosition++)); SetPropValue(rConfig, GetIndexProp(iPosition++)); SetPropValue(rConfig, GetBoolProp(iPosition++)); @@ -533,6 +535,33 @@ return strText; } +bool COptionsDlg::IsAutorunEnabled() const +{ + try + { + return m_autoRun.IsAutorunEnabled(); + } + catch (const std::exception& e) + { + LOG_ERROR(m_spLog) << L"Failed to determine if autorun is enabled. Assuming it is not. Error: " << e.what(); + return false; + } +} + +bool COptionsDlg::EnableAutorun(bool bEnable) +{ + try + { + m_autoRun.SetAutorun(bEnable); + return true; + } + catch (const std::exception& e) + { + LOG_ERROR(m_spLog) << L"Failed to change autorun to '" << bEnable << "'. Error: " << e.what(); + return false; + } +} + bool COptionsDlg::GetBoolProp(int iPosition) { int iSel = 0;