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; }
bool CDlgOptions::ReadSettings() { CMainDocument* pDoc = wxGetApp().GetDocument(); CBOINCBaseFrame* pFrame = wxGetApp().GetFrame(); wxString strBuffer = wxEmptyString; wxArrayString astrDialupConnections; wxASSERT(pDoc); wxASSERT(pFrame); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); wxASSERT(wxDynamicCast(pFrame, CBOINCBaseFrame)); // General Tab m_LanguageSelectionCtrl->Append(wxGetApp().GetSupportedLanguages()); m_LanguageSelectionCtrl->SetSelection(pFrame->GetSelectedLanguage()); m_ReminderFrequencyCtrl->Append(_("always")); m_ReminderFrequencyCtrl->Append(_("1 hour")); m_ReminderFrequencyCtrl->Append(_("6 hours")); m_ReminderFrequencyCtrl->Append(_("1 day")); m_ReminderFrequencyCtrl->Append(_("1 week")); m_ReminderFrequencyCtrl->Append(_("never")); switch(pFrame->GetReminderFrequency()) { case 1: m_ReminderFrequencyCtrl->SetSelection(0); break; case 60: m_ReminderFrequencyCtrl->SetSelection(1); break; case 360: m_ReminderFrequencyCtrl->SetSelection(2); break; case 1440: m_ReminderFrequencyCtrl->SetSelection(3); break; case 10080: m_ReminderFrequencyCtrl->SetSelection(4); break; case 0: m_ReminderFrequencyCtrl->SetSelection(5); break; } //m_ReminderFrequencyCtrl->SetValue(m_iReminderFrequency); m_EnableBOINCManagerExitMessageCtrl->SetValue(wxGetApp().GetBOINCMGRDisplayExitMessage() != 0); #ifdef __WXMSW__ m_EnableBOINCManagerAutoStartCtrl->SetValue(!wxGetApp().GetBOINCMGRDisableAutoStart()); // Connection Tab if (pFrame) { pFrame->GetDialupManager()->GetISPNames(astrDialupConnections); m_DialupConnectionsCtrl->Append(astrDialupConnections); SetDefaultDialupConnection(pFrame->GetDialupConnectionName()); } else { m_DialupSetDefaultCtrl->Disable(); m_DialupClearDefaultCtrl->Disable(); } #endif // Proxy Tabs m_bRetrievedProxyConfiguration = (0 == pDoc->GetProxyConfiguration()); if(!m_bRetrievedProxyConfiguration) { // We were unable to get the proxy configuration, so disable // the controls m_EnableHTTPProxyCtrl->Enable(false); m_EnableSOCKSProxyCtrl->Enable(false); } else { m_EnableHTTPProxyCtrl->Enable(true); m_EnableSOCKSProxyCtrl->Enable(true); } m_EnableHTTPProxyCtrl->SetValue(pDoc->proxy_info.use_http_proxy); m_HTTPAddressCtrl->SetValue(wxString(pDoc->proxy_info.http_server_name.c_str(), wxConvUTF8)); m_HTTPUsernameCtrl->SetValue(wxString(pDoc->proxy_info.http_user_name.c_str(), wxConvUTF8)); m_HTTPPasswordCtrl->SetValue(wxString(pDoc->proxy_info.http_user_passwd.c_str(), wxConvUTF8)); m_HTTPNoProxiesCtrl->SetValue(wxString(pDoc->proxy_info.noproxy_hosts.c_str(), wxConvUTF8)); strBuffer.Printf(wxT("%d"), pDoc->proxy_info.http_server_port); m_HTTPPortCtrl->SetValue(strBuffer); m_EnableSOCKSProxyCtrl->SetValue(pDoc->proxy_info.use_socks_proxy); m_SOCKSAddressCtrl->SetValue(wxString(pDoc->proxy_info.socks_server_name.c_str(), wxConvUTF8)); m_SOCKSUsernameCtrl->SetValue(wxString(pDoc->proxy_info.socks5_user_name.c_str(), wxConvUTF8)); m_SOCKSPasswordCtrl->SetValue(wxString(pDoc->proxy_info.socks5_user_passwd.c_str(), wxConvUTF8)); m_SOCKSNoProxiesCtrl->SetValue(wxString(pDoc->proxy_info.noproxy_hosts.c_str(),wxConvUTF8)); strBuffer.Printf(wxT("%d"), pDoc->proxy_info.socks_server_port); m_SOCKSPortCtrl->SetValue(strBuffer); return true; }