bool CDlgOptions::SaveSettings() { CMainDocument* pDoc = wxGetApp().GetDocument(); CBOINCBaseFrame* pFrame = wxGetApp().GetFrame(); CSkinAdvanced* pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced(); long lBuffer = 0; wxString strBuffer = wxEmptyString; wxASSERT(pDoc); wxASSERT(pFrame); wxASSERT(pSkinAdvanced); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); wxASSERT(wxDynamicCast(pFrame, CBOINCBaseFrame)); wxASSERT(wxDynamicCast(pSkinAdvanced, CSkinAdvanced)); // General Tab if (pFrame->GetSelectedLanguage() != m_LanguageSelectionCtrl->GetSelection()) { wxString strDialogTitle; wxString strDialogMessage; // %s is the application name // i.e. 'BOINC Manager', 'GridRepublic Manager' strDialogTitle.Printf( _("%s - Language Selection"), pSkinAdvanced->GetApplicationName().c_str() ); // %s is the application name // i.e. 'BOINC Manager', 'GridRepublic Manager' strDialogMessage.Printf( _("The %s's default language has been changed, in order for this change to take affect you must restart the %s."), pSkinAdvanced->GetApplicationName().c_str(), pSkinAdvanced->GetApplicationName().c_str() ); pFrame->ShowAlert( strDialogTitle, strDialogMessage, wxOK | wxICON_INFORMATION ); } pFrame->SetSelectedLanguage(m_LanguageSelectionCtrl->GetSelection()); switch(m_ReminderFrequencyCtrl->GetSelection()) { case 0: pFrame->SetReminderFrequency(1); break; case 1: pFrame->SetReminderFrequency(60); break; case 2: pFrame->SetReminderFrequency(360); break; case 3: pFrame->SetReminderFrequency(1440); break; case 4: pFrame->SetReminderFrequency(10080); break; case 5: pFrame->SetReminderFrequency(0); break; } wxGetApp().SetBOINCMGRDisplayExitMessage(m_EnableBOINCManagerExitMessageCtrl->GetValue()); #ifdef __WXMSW__ wxGetApp().SetBOINCMGRDisableAutoStart(!m_EnableBOINCManagerAutoStartCtrl->GetValue()); // Connection Tab pFrame->SetDialupConnectionName(GetDefaultDialupConnection()); #endif // Proxy Tabs if (m_bRetrievedProxyConfiguration) { pDoc->proxy_info.use_http_proxy = m_EnableHTTPProxyCtrl->GetValue(); pDoc->proxy_info.http_server_name = (const char*)m_HTTPAddressCtrl->GetValue().mb_str(); pDoc->proxy_info.http_user_name = (const char*)m_HTTPUsernameCtrl->GetValue().mb_str(); pDoc->proxy_info.http_user_passwd = (const char*)m_HTTPPasswordCtrl->GetValue().mb_str(); if(pDoc->proxy_info.use_http_proxy) { pDoc->proxy_info.noproxy_hosts = (const char*)m_HTTPNoProxiesCtrl->GetValue().mb_str(); } strBuffer = m_HTTPPortCtrl->GetValue(); strBuffer.ToLong((long*)&lBuffer); pDoc->proxy_info.http_server_port = lBuffer; pDoc->proxy_info.use_socks_proxy = m_EnableSOCKSProxyCtrl->GetValue(); pDoc->proxy_info.socks_server_name = (const char*)m_SOCKSAddressCtrl->GetValue().mb_str(); pDoc->proxy_info.socks5_user_name = (const char*)m_SOCKSUsernameCtrl->GetValue().mb_str(); pDoc->proxy_info.socks5_user_passwd = (const char*)m_SOCKSPasswordCtrl->GetValue().mb_str(); if(pDoc->proxy_info.use_socks_proxy) { pDoc->proxy_info.noproxy_hosts = (const char*)m_SOCKSNoProxiesCtrl->GetValue().mb_str(); } strBuffer = m_SOCKSPortCtrl->GetValue(); strBuffer.ToLong((long*)&lBuffer); pDoc->proxy_info.socks_server_port = lBuffer; pDoc->SetProxyConfiguration(); } return true; }