Index: src/ch/OptionsDlg.cpp =================================================================== diff -u -r8f634460db3f225ca24f2e447b3730d4f0614166 -r306fbe693c70290af9de9a5779084a697de22d75 --- src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 8f634460db3f225ca24f2e447b3730d4f0614166) +++ src/ch/OptionsDlg.cpp (.../OptionsDlg.cpp) (revision 306fbe693c70290af9de9a5779084a697de22d75) @@ -39,7 +39,8 @@ // COptionsDlg dialog COptionsDlg::COptionsDlg(CWnd* pParent /*=nullptr*/) - :ictranslate::CLanguageDialog(IDD_OPTIONS_DIALOG, pParent, &m_bLock) + :ictranslate::CLanguageDialog(IDD_OPTIONS_DIALOG, pParent, &m_bLock), + m_spLog(logger::MakeLogger(GetLogFileData(), L"OptionsDlg")) { } @@ -132,7 +133,7 @@ COptionsDlg* pDlg=static_cast(lpParam); chcore::TBufferSizes tBufferSizes(pDlg->GetBoolProp(iIndex - iParam - 1), - pDlg->GetUintProp(iIndex - iParam + 5), + pDlg->GetUintProp(iIndex - iParam + 7), pDlg->GetUintProp(iIndex - iParam), pDlg->GetUintProp(iIndex - iParam + 1), pDlg->GetUintProp(iIndex - iParam + 2), @@ -159,7 +160,7 @@ pItem->csProperties.SetAt(0, _itot(tBufferSizes.GetCDSize(), xx, 10)); pItem = (PROPERTYITEM*) pList->GetAt(pList->FindIndex(iIndex - iParam + 4)); pItem->csProperties.SetAt(0, _itot(tBufferSizes.GetLANSize(), xx, 10)); - pItem = (PROPERTYITEM*) pList->GetAt(pList->FindIndex(iIndex - iParam + 5)); + pItem = (PROPERTYITEM*) pList->GetAt(pList->FindIndex(iIndex - iParam + 7)); pItem->csProperties.SetAt(0, _itot(tBufferSizes.GetBufferCount(), xx, 10)); } } @@ -211,6 +212,7 @@ ApplyProperties(); SendClosingNotify(); + CLanguageDialog::OnOK(); } @@ -473,6 +475,18 @@ rConfig.ResumeNotifications(); rConfig.Write(); + + LOG_INFO(m_spLog) << L"Updating shell extension configuration"; + try + { + TShellExtensionConfigPtr spConfig = GetShellExtensionConfig(); + if(spConfig) + spConfig->PrepareConfig(); + } + catch(const std::exception& e) + { + LOG_INFO(m_spLog) << L"Failed to set shell extension configuration. Error: " << e.what(); + } } void COptionsDlg::OnCancel()