diff --git a/clientgui/DlgAdvPreferences.cpp b/clientgui/DlgAdvPreferences.cpp index 39f81ed75e..7934448272 100644 --- a/clientgui/DlgAdvPreferences.cpp +++ b/clientgui/DlgAdvPreferences.cpp @@ -182,16 +182,13 @@ void CDlgAdvPreferences::SetValidators() { /* some controls share the same tooltip, set them here */ void CDlgAdvPreferences::SetSpecialTooltips() { - wxString procDaysChkTT(_("Set this checkbox to specify work start and stop times for this day only")); - wxString procDaysTimeTT( _("specify work start and stop times in format HH:MM")); - wxString netDaysChkTT(_("Set this checkbox to specify times when data tranfer is permitted for this day only")); - wxString netDaysTimeTT(_("specify times when data tranfer is permitted in format HH:MM")); - + wxString procDaysTimeTT(_("On this day each week, compute only during these hours.")); + wxString netDaysTimeTT(_("On this day each week, transfer files only during these hours.")); for (int i=0; i<7; ++i) { - procDayChks[i]->SetToolTip(procDaysChkTT); + procDayChks[i]->SetToolTip(procDaysTimeTT); procDayStartTxts[i]->SetToolTip(procDaysTimeTT); procDayStopTxts[i]->SetToolTip(procDaysTimeTT); - netDayChks[i]->SetToolTip(netDaysChkTT); + netDayChks[i]->SetToolTip(netDaysTimeTT); netDayStartTxts[i]->SetToolTip(netDaysTimeTT); netDayStopTxts[i]->SetToolTip(netDaysTimeTT); } diff --git a/clientgui/DlgAdvPreferencesBase.cpp b/clientgui/DlgAdvPreferencesBase.cpp index 26fd5959ac..2a106ae6c1 100644 --- a/clientgui/DlgAdvPreferencesBase.cpp +++ b/clientgui/DlgAdvPreferencesBase.cpp @@ -108,11 +108,11 @@ CDlgAdvPreferencesBase::CDlgAdvPreferencesBase( wxWindow* parent, int id, wxStri topControlsSizer->Add( staticText321, 1, wxALL, 1 ); m_btnClear = new wxButton( topControlsStaticBox, ID_BTN_CLEAR, _("Clear"), wxDefaultPosition, wxDefaultSize, 0 ); - m_btnClear->SetToolTip( _("clear all local preferences and close the dialog") ); + m_btnClear->SetToolTip( _("Clear all local preferences and close the dialog.") ); #endif m_btnClear = new wxButton( topControlsStaticBox, ID_BTN_CLEAR, _("Use web prefs"), wxDefaultPosition, wxDefaultSize, 0 ); - m_btnClear->SetToolTip( _("restore web-based preferences and close the dialog") ); + m_btnClear->SetToolTip( _("Restore web-based preferences and close the dialog.") ); if (!usingLocalPrefs) { m_btnClear->Hide(); } @@ -153,18 +153,18 @@ CDlgAdvPreferencesBase::CDlgAdvPreferencesBase( wxWindow* parent, int id, wxStri wxBoxSizer* buttonSizer = new wxBoxSizer( wxHORIZONTAL ); m_btnOK = new wxButton( m_panelButtons, wxID_OK, _("OK"), wxDefaultPosition, wxDefaultSize, 0 ); - m_btnOK->SetToolTip( _("save all values and close the dialog") ); + m_btnOK->SetToolTip( _("Save all values and close the dialog.") ); m_btnOK->SetDefault(); buttonSizer->Add( m_btnOK, 0, wxALL, 5 ); m_btnCancel = new wxButton( m_panelButtons, wxID_CANCEL, _("Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); - m_btnCancel->SetToolTip( _("close the dialog without saving") ); + m_btnCancel->SetToolTip( _("Close the dialog without saving.") ); buttonSizer->Add( m_btnCancel, 0, wxALL, 5 ); m_btnHelp = new wxButton( m_panelButtons, ID_HELPBOINC, _("Help"), wxDefaultPosition, wxDefaultSize, 0 ); - m_btnHelp->SetToolTip( _("shows the preferences web page") ); + m_btnHelp->SetToolTip( _("Shows the preferences web page.") ); buttonSizer->Add( m_btnHelp, 0, wxALL, 5 ); @@ -179,6 +179,9 @@ CDlgAdvPreferencesBase::CDlgAdvPreferencesBase( wxWindow* parent, int id, wxStri wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) { + CSkinAdvanced* pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced(); + wxASSERT(pSkinAdvanced); + wxSize textCtrlSize = getTextCtrlSize(wxT("999.99")); wxPanel* processorTab = new wxPanel( notebook, ID_TABPAGE_PROC, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); @@ -195,8 +198,8 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) usageLimitsGridSizer->SetFlexibleDirection( wxHORIZONTAL ); usageLimitsGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - wxString MaxCPUPctTT(_("Example: 50% means use 4 cores on an 8-core CPU")); /*xgettext:no-c-format*/ + wxString MaxCPUPctTT(_("Keep some CPUs free for other applications. Example: 75% means use 6 cores on an 8-core CPU.")); wxStaticText* staticText20 = new wxStaticText( usageLimitsStaticBox, ID_DEFAULT, _("Use at most"), wxDefaultPosition, wxDefaultSize, 0 ); staticText20->SetToolTip(MaxCPUPctTT); @@ -211,7 +214,8 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) staticText21->SetToolTip(MaxCPUPctTT); usageLimitsGridSizer->Add( staticText21, 0, wxALL, 5 ); - wxString MaxCPUTimeTT(_("Suspend/resume computing every few seconds to reduce CPU temperature and energy usage. Example: 75% means compute for 3 seconds, wait for 1.")); + /*xgettext:no-c-format*/ + wxString MaxCPUTimeTT(_("Suspend/resume computing every few seconds to reduce CPU temperature and energy usage. Example: 75% means compute for 3 seconds, wait for 1 second, and repeat.")); wxStaticText* staticText22 = new wxStaticText( usageLimitsStaticBox, ID_DEFAULT, _("Use at most"), wxDefaultPosition, wxDefaultSize, 0 ); staticText22->SetToolTip(MaxCPUTimeTT); @@ -239,7 +243,7 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) _("Suspend when computer is on battery"), wxDefaultPosition, wxDefaultSize, 0 ); m_chkProcOnBatteries->SetToolTip( - _("check this if you don't want this computer to do work while it runs on batteries") + _("Check this to suspend computing on portables when running on battery power.") ); suspendComputingBoxSizer->Add( m_chkProcOnBatteries, 0, wxALL, 5 ); @@ -248,7 +252,7 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) _("Suspend when computer is in use"), wxDefaultPosition, wxDefaultSize, 0 ); m_chkProcInUse->SetToolTip( - _("check this if you don't want this computer to do work when you're using it") + _("Check this to suspend computing and file transfers when you're using the computer.") ); suspendComputingBoxSizer->Add( m_chkProcInUse, 0, wxALL, 5 ); @@ -257,7 +261,7 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) _("Suspend GPU computing when computer is in use"), wxDefaultPosition, wxDefaultSize, 0 ); m_chkGPUProcInUse->SetToolTip( - _("check this if you don't want your GPU to do work when you're using the computer") + _("Check this to suspend GPU computing when you're using the computer.") ); suspendComputingBoxSizer->Add( m_chkGPUProcInUse, 0, wxALL, 5 ); @@ -266,15 +270,15 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) procIdleSizer->AddGrowableCol( 3 ); procIdleSizer->SetFlexibleDirection( wxHORIZONTAL ); procIdleSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - wxString ProcIdleForTT(_("do work only after you haven't used the computer for this number of minutes")); + wxString ProcIdleForTT(_("This determines when the computer is considered 'in use'.")); wxStaticText* staticText24 = new wxStaticText( suspendComputingStaticBox, ID_DEFAULT, _("'In use' means mouse/keyboard input in last"), wxDefaultPosition, wxDefaultSize, 0 ); - procIdleSizer->Add(staticText24, 0, wxALL, 5 ); staticText24->SetToolTip(ProcIdleForTT); + procIdleSizer->Add(staticText24, 0, wxALL, 5 ); m_txtProcIdleFor = new wxTextCtrl( suspendComputingStaticBox, ID_TXTPROCIDLEFOR, wxT(""), wxDefaultPosition, getTextCtrlSize(wxT("999.99")), wxTE_RIGHT @@ -297,11 +301,12 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) maxLoadSizer->SetFlexibleDirection( wxHORIZONTAL ); maxLoadSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); - wxString MaxLoadTT(_("suspend work if processor usage exceeds this level")); + wxString MaxLoadCheckBoxText = wxEmptyString; + MaxLoadCheckBoxText.Printf(_("Suspend when non-%s CPU usage is above"), pSkinAdvanced->GetApplicationShortName().c_str()); + + wxString MaxLoadTT(_("Suspend computing when your computer is busy running other programs.")); m_chkMaxLoad = new wxCheckBox( - suspendComputingStaticBox, ID_CHKMAXLOAD, - _("Suspend when non-BOINC CPU usage is above"), wxDefaultPosition, wxDefaultSize, 0 - ); + suspendComputingStaticBox, ID_CHKMAXLOAD, MaxLoadCheckBoxText, wxDefaultPosition, wxDefaultSize, 0); m_chkMaxLoad->SetToolTip(MaxLoadTT); maxLoadSizer->Add( m_chkMaxLoad, 0, wxALL, 5 ); m_txtMaxLoad = new wxTextCtrl( @@ -311,8 +316,8 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) maxLoadSizer->Add( m_txtMaxLoad, 0, wxALL, 1 ); wxStaticText* staticText26 = new wxStaticText( suspendComputingStaticBox, ID_DEFAULT, _("percent"), wxDefaultPosition, wxDefaultSize, 0 ); - maxLoadSizer->Add(staticText26, 0, wxALL, 5 ); staticText26->SetToolTip(MaxLoadTT); + maxLoadSizer->Add(staticText26, 0, wxALL, 5 ); suspendComputingBoxSizer->Add( maxLoadSizer, 0, wxEXPAND, 5); @@ -333,33 +338,33 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) miscProcGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); // buffer sizes - wxString NetConnectIntervalTT(_("Try to maintain enough tasks to keep busy for this many days")); + wxString NetConnectIntervalTT(_("Store at least enough tasks to keep the computer busy for this long.")); wxStaticText* staticText30 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("Store at least"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); - miscProcGridSizer->Add( staticText30, 0, wxALL|wxEXPAND, 5 ); staticText30->SetToolTip(NetConnectIntervalTT); + miscProcGridSizer->Add( staticText30, 0, wxALL|wxEXPAND, 5 ); m_txtNetConnectInterval = new wxTextCtrl( miscProcStaticBox, ID_TXTNETCONNECTINTERVAL, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - miscProcGridSizer->Add( m_txtNetConnectInterval, 0, wxALL, 1 ); m_txtNetConnectInterval->SetToolTip(NetConnectIntervalTT); + miscProcGridSizer->Add( m_txtNetConnectInterval, 0, wxALL, 1 ); wxStaticText* staticText31 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("days of work"), wxDefaultPosition, wxDefaultSize, 0 ); - miscProcGridSizer->Add( staticText31, 0, wxALL, 5 ); staticText31->SetToolTip(NetConnectIntervalTT); + miscProcGridSizer->Add( staticText31, 0, wxALL, 5 ); - wxString NetAdditionalDaysTT(_("In addition, maintain enough tasks for up to this many days")); + wxString NetAdditionalDaysTT(_("Store additional tasks above the minimum level. Determines how much work is requested when contacting a project.")); wxStaticText* staticText331 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("Store up to an additional"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); - miscProcGridSizer->Add( staticText331, 0, wxALL|wxEXPAND, 5 ); staticText331->SetToolTip(NetAdditionalDaysTT); + miscProcGridSizer->Add( staticText331, 0, wxALL|wxEXPAND, 5 ); m_txtNetAdditionalDays = new wxTextCtrl( miscProcStaticBox, ID_TXTNETADDITIONALDAYS, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT @@ -370,36 +375,38 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) wxBoxSizer* workBufAdditonalDaysSizer = new wxBoxSizer( wxHORIZONTAL ); wxStaticText* staticText341 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("days of work"), wxDefaultPosition, wxDefaultSize, 0 ); - workBufAdditonalDaysSizer->Add( staticText341, 0, 0, 0 ); staticText341->SetToolTip(NetAdditionalDaysTT); + workBufAdditonalDaysSizer->Add( staticText341, 0, 0, 0 ); miscProcGridSizer->Add( workBufAdditonalDaysSizer, 0, wxALL, 5 ); - wxString ProcSwitchEveryTT(_("If you run several projects, BOINC may switch between them this often")); + wxString ProcSwitchEveryTT = wxEmptyString; + ProcSwitchEveryTT.Printf(_("If you run several projects, %s may switch between them this often."), pSkinAdvanced->GetApplicationShortName().c_str()); + wxStaticText* staticText18 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("Switch between tasks every"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); - miscProcGridSizer->Add( staticText18, 0, wxALL|wxEXPAND, 5 ); staticText18->SetToolTip(ProcSwitchEveryTT); + miscProcGridSizer->Add( staticText18, 0, wxALL|wxEXPAND, 5 ); m_txtProcSwitchEvery = new wxTextCtrl( miscProcStaticBox, ID_TXTPROCSWITCHEVERY, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - miscProcGridSizer->Add( m_txtProcSwitchEvery, 0, wxALL, 1 ); m_txtProcSwitchEvery->SetToolTip(ProcSwitchEveryTT); + miscProcGridSizer->Add( m_txtProcSwitchEvery, 0, wxALL, 1 ); wxStaticText* staticText19 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("minutes"), wxDefaultPosition, wxDefaultSize, 0 ); - miscProcGridSizer->Add( staticText19, 0, wxALL, 5 ); staticText19->SetToolTip(ProcSwitchEveryTT); + miscProcGridSizer->Add( staticText19, 0, wxALL, 5 ); - wxString DiskWriteToDiskTT(_("This controls how often tasks save their state to disk, so that they can be restarted later")); + wxString DiskWriteToDiskTT(_("This controls how often tasks save their state to disk, so that they can be restarted later.")); wxStaticText* staticText46 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("Request tasks to checkpoint at most every"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); - miscProcGridSizer->Add( staticText46, 0, wxALL|wxEXPAND, 5 ); staticText46->SetToolTip(DiskWriteToDiskTT); + miscProcGridSizer->Add( staticText46, 0, wxALL|wxEXPAND, 5 ); m_txtDiskWriteToDisk = new wxTextCtrl( miscProcStaticBox, ID_TXTDISKWRITETODISK, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - miscProcGridSizer->Add( m_txtDiskWriteToDisk, 0, wxALL, 1 ); m_txtDiskWriteToDisk->SetToolTip(DiskWriteToDiskTT); + miscProcGridSizer->Add( m_txtDiskWriteToDisk, 0, wxALL, 1 ); wxStaticText* staticText47 = new wxStaticText( miscProcStaticBox, ID_DEFAULT, _("seconds"), wxDefaultPosition, wxDefaultSize, 0 ); - miscProcGridSizer->Add( staticText47, 0, wxALL, 5 ); staticText47->SetToolTip(DiskWriteToDiskTT); + miscProcGridSizer->Add( staticText47, 0, wxALL, 5 ); miscProcBoxSizer->Add( miscProcGridSizer, 0, wxEXPAND, 1 ); miscProcBoxSizer->AddSpacer(1); // Ensure staticText22 is fully visible on Mac @@ -415,6 +422,9 @@ wxPanel* CDlgAdvPreferencesBase::createProcessorTab(wxNotebook* notebook) wxPanel* CDlgAdvPreferencesBase::createNetworkTab(wxNotebook* notebook) { + CSkinAdvanced* pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced(); + wxASSERT(pSkinAdvanced); + wxSize textCtrlSize = getTextCtrlSize(wxT("9999.99")); wxPanel* networkTab = new wxPanel( notebook, ID_TABPAGE_NET, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); @@ -432,42 +442,57 @@ wxPanel* CDlgAdvPreferencesBase::createNetworkTab(wxNotebook* notebook) // upload/download rates + wxString NetDownloadRateTT(_("Limit the download rate of file transfers.")); m_chkNetDownloadRate = new wxCheckBox( networkUsageLimitsStaticBox, ID_CHKNETDOWNLOADRATE, _("Limit download rate to"), wxDefaultPosition, wxDefaultSize, 0 ); + m_chkNetDownloadRate-> SetToolTip(NetDownloadRateTT); networkUsageLimitsGridSizer->Add( m_chkNetDownloadRate, 0, wxALL, 5 ); - + m_txtNetDownloadRate = new wxTextCtrl( networkUsageLimitsStaticBox, ID_TXTNETDOWNLOADRATE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); + m_txtNetDownloadRate-> SetToolTip(NetDownloadRateTT); networkUsageLimitsGridSizer->Add( m_txtNetDownloadRate, 0, wxALL, 1 ); wxStaticText* staticText33 = new wxStaticText( networkUsageLimitsStaticBox, ID_DEFAULT, _("Kbytes/second"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText33-> SetToolTip(NetDownloadRateTT); networkUsageLimitsGridSizer->Add( staticText33, 0, wxALL, 5 ); + wxString NetUploadRateTT(_("Limit the upload rate of file transfers.")); m_chkNetUploadRate = new wxCheckBox( networkUsageLimitsStaticBox, ID_CHKNETUPLOADRATE, _("Limit upload rate to"), wxDefaultPosition, wxDefaultSize, 0 ); + m_chkNetUploadRate-> SetToolTip(NetUploadRateTT); networkUsageLimitsGridSizer->Add( m_chkNetUploadRate, 0, wxALL, 5 ); m_txtNetUploadRate = new wxTextCtrl( networkUsageLimitsStaticBox, ID_TXTNETUPLOADRATE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); + m_txtNetUploadRate-> SetToolTip(NetUploadRateTT); networkUsageLimitsGridSizer->Add( m_txtNetUploadRate, 0, wxALL, 1 ); wxStaticText* staticText35 = new wxStaticText( networkUsageLimitsStaticBox, ID_DEFAULT, _("Kbytes/second"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText35-> SetToolTip(NetUploadRateTT); networkUsageLimitsGridSizer->Add( staticText35, 0, wxALL, 5 ); // long-term quota + wxString daily_xfer_limitTT = wxEmptyString; + daily_xfer_limitTT.Printf(_("Example: %s should transfer at most 2000 MB of data every 30 days."), pSkinAdvanced->GetApplicationShortName().c_str()); + m_chk_daily_xfer_limit = new wxCheckBox( networkUsageLimitsStaticBox, ID_CHKDAILYXFERLIMIT, _("Limit usage to"), wxDefaultPosition, wxDefaultSize, 0 ); + m_chk_daily_xfer_limit-> SetToolTip(daily_xfer_limitTT); networkUsageLimitsGridSizer->Add( m_chk_daily_xfer_limit, 0, wxALL, 5 ); m_txt_daily_xfer_limit_mb = new wxTextCtrl( networkUsageLimitsStaticBox, ID_TXTNETDOWNLOADRATE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); + m_txt_daily_xfer_limit_mb-> SetToolTip(daily_xfer_limitTT); networkUsageLimitsGridSizer->Add( m_txt_daily_xfer_limit_mb, 0, wxALL, 1 ); wxBoxSizer* networkTransferLimitSizer = new wxBoxSizer( wxHORIZONTAL ); wxStaticText* staticText_daily_xfer2 = new wxStaticText( networkUsageLimitsStaticBox, ID_DEFAULT, _("Mbytes every"), wxDefaultPosition, wxDefaultSize, 0 ); - + staticText_daily_xfer2-> SetToolTip(daily_xfer_limitTT); networkTransferLimitSizer->Add( staticText_daily_xfer2, 0, wxALL, 5 ); m_txt_daily_xfer_period_days = new wxTextCtrl( networkUsageLimitsStaticBox, ID_TXTNETUPLOADRATE, wxT(""), wxDefaultPosition, getTextCtrlSize(wxT("999.99")), wxTE_RIGHT ); + m_txt_daily_xfer_period_days-> SetToolTip(daily_xfer_limitTT); networkTransferLimitSizer->Add( m_txt_daily_xfer_period_days, 0, wxALL, 1 ); wxStaticText* staticText_daily_xfer4 = new wxStaticText( networkUsageLimitsStaticBox, ID_DEFAULT, _("days"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText_daily_xfer4-> SetToolTip(daily_xfer_limitTT); networkTransferLimitSizer->Add( staticText_daily_xfer4, 0, wxALL, 5 ); networkUsageLimitsGridSizer->Add( networkTransferLimitSizer, 0, wxALL, 0 ); @@ -475,7 +500,7 @@ wxPanel* CDlgAdvPreferencesBase::createNetworkTab(wxNotebook* notebook) networkUsageLimitsBoxSizer->Add( networkUsageLimitsGridSizer, 0, wxEXPAND, 1 ); networkUsageLimitsBoxSizer->Add( - new wxStaticText( networkUsageLimitsStaticBox, ID_DEFAULT, wxT("See also \"suspend when computer is in use\" in the \"Computing\" section."), wxDefaultPosition, wxDefaultSize, 0), + new wxStaticText( networkUsageLimitsStaticBox, ID_DEFAULT, wxT("See also \"Suspend when computer is in use\" in the \"Computing\" section."), wxDefaultPosition, wxDefaultSize, 0), 0, wxALL, 5 ); networkUsageLimitsBoxSizer->Add( @@ -489,22 +514,19 @@ wxPanel* CDlgAdvPreferencesBase::createNetworkTab(wxNotebook* notebook) wxStaticBoxSizer* connectOptionsSizer = new wxStaticBoxSizer( connectOptionsStaticBox, wxVERTICAL ); makeStaticBoxLabelItalic(connectOptionsStaticBox); + wxString NetSkipImageVerificationTT = wxEmptyString; + NetSkipImageVerificationTT.Printf(_("Check this only if your Internet provider modifies image files. Skipping verification reduces the security of %s."), pSkinAdvanced->GetApplicationShortName().c_str()); + m_chkNetSkipImageVerification = new wxCheckBox( connectOptionsStaticBox, ID_CHKNETSKIPIMAGEVERIFICATION, _("Skip data verification for image files"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_chkNetSkipImageVerification->SetToolTip( _("check this if your Internet provider modifies image files") ); - + m_chkNetSkipImageVerification->SetToolTip(NetSkipImageVerificationTT); connectOptionsSizer->Add( m_chkNetSkipImageVerification, 0, wxALL, 5 ); m_chkNetConfirmBeforeConnect = new wxCheckBox( connectOptionsStaticBox, ID_CHKNETCONFIRMBEFORECONNECT, _("Confirm before connecting to Internet"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_chkNetConfirmBeforeConnect->SetToolTip( _("if checked, a confirmation dialog will be displayed before trying to connect to the Internet") ); - + m_chkNetConfirmBeforeConnect->SetToolTip( _("Useful only if you have a modem, ISDN or VPN connection.") ); connectOptionsSizer->Add( m_chkNetConfirmBeforeConnect, 0, wxALL, 5 ); m_chkNetDisconnectWhenDone = new wxCheckBox( connectOptionsStaticBox, ID_CHKNETDISCONNECTWHENDONE, _("Disconnect when done"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_chkNetDisconnectWhenDone->SetToolTip( _("if checked, BOINC hangs up when network usage is done\n(only relevant for dialup-connection)") ); - + m_chkNetDisconnectWhenDone->SetToolTip( _("Useful only if you have a modem, ISDN or VPN connection.") ); connectOptionsSizer->Add( m_chkNetDisconnectWhenDone, 0, wxALL, 5 ); networkTabSizer->Add( connectOptionsSizer, 0, wxEXPAND, 1 ); @@ -518,6 +540,9 @@ wxPanel* CDlgAdvPreferencesBase::createNetworkTab(wxNotebook* notebook) wxPanel* CDlgAdvPreferencesBase::createDiskAndMemoryTab(wxNotebook* notebook) { + CSkinAdvanced* pSkinAdvanced = wxGetApp().GetSkinManager()->GetAdvanced(); + wxASSERT(pSkinAdvanced); + wxSize textCtrlSize = getTextCtrlSize(wxT("9999.99")); wxPanel* diskMemoryTab = new wxPanel( notebook, ID_TABPAGE_DISK, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL ); @@ -529,7 +554,9 @@ wxPanel* CDlgAdvPreferencesBase::createDiskAndMemoryTab(wxNotebook* notebook) wxStaticBoxSizer* diskUsageBoxSizer = new wxStaticBoxSizer( diskUsageStaticBox, wxVERTICAL ); makeStaticBoxLabelItalic(diskUsageStaticBox); - diskUsageBoxSizer->Add(new wxStaticText( diskUsageStaticBox, -1, _("BOINC will use the most restrictive of these three settings:"), wxDefaultPosition, wxDefaultSize, 0), + wxString MostRestrictiveText = wxEmptyString; + MostRestrictiveText.Printf(_("%s will use the most restrictive of these three settings:"), pSkinAdvanced->GetApplicationShortName().c_str()); + diskUsageBoxSizer->Add(new wxStaticText( diskUsageStaticBox, -1, MostRestrictiveText, wxDefaultPosition, wxDefaultSize, 0), 0, wxALL, 5 ); @@ -538,37 +565,48 @@ wxPanel* CDlgAdvPreferencesBase::createDiskAndMemoryTab(wxNotebook* notebook) diskUsageGridSizer->SetFlexibleDirection( wxHORIZONTAL ); diskUsageGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxString DiskMaxSpaceTT = wxEmptyString; + DiskMaxSpaceTT.Printf(_("Limit the total amount of disk space used by %s."), pSkinAdvanced->GetApplicationShortName().c_str()); + m_chkDiskMaxSpace = new wxCheckBox ( diskUsageStaticBox, ID_CHKDISKMAXSPACE, _("Use no more than"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); + m_chkDiskMaxSpace->SetToolTip(DiskMaxSpaceTT); diskUsageGridSizer->Add( m_chkDiskMaxSpace, 0, wxALL|wxEXPAND, 5 ); m_txtDiskMaxSpace = new wxTextCtrl( diskUsageStaticBox, ID_TXTDISKMAXSPACE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - m_txtDiskMaxSpace->SetToolTip( _("the maximum disk space used by BOINC (in Gigabytes)") ); - + m_txtDiskMaxSpace->SetToolTip(DiskMaxSpaceTT); diskUsageGridSizer->Add( m_txtDiskMaxSpace, 0, wxALL, 1 ); wxStaticText* staticText41 = new wxStaticText( diskUsageStaticBox, ID_DEFAULT, _("Gigabytes"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText41->SetToolTip(DiskMaxSpaceTT); diskUsageGridSizer->Add( staticText41, 0, wxALL, 5 ); + wxString DiskLeastFreeTT = wxEmptyString; + DiskLeastFreeTT.Printf(_("Limit disk usage to leave this much free space on the volume where %s stores data."), pSkinAdvanced->GetApplicationShortName().c_str()); + m_chkDiskLeastFree = new wxCheckBox ( diskUsageStaticBox, ID_CHKDISKLEASTFREE, _("Leave at least"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); + m_chkDiskLeastFree->SetToolTip(DiskLeastFreeTT); diskUsageGridSizer->Add( m_chkDiskLeastFree, 0, wxALL|wxEXPAND, 5 ); m_txtDiskLeastFree = new wxTextCtrl( diskUsageStaticBox, ID_TXTDISKLEASTFREE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - m_txtDiskLeastFree->SetToolTip( _("BOINC leaves at least this amount of disk space free (in Gigabytes)") ); - + m_txtDiskLeastFree->SetToolTip(DiskLeastFreeTT); diskUsageGridSizer->Add( m_txtDiskLeastFree, 0, wxALL, 1 ); wxStaticText* staticText43 = new wxStaticText( diskUsageStaticBox, ID_DEFAULT, _("Gigabytes free"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText43->SetToolTip(DiskLeastFreeTT); diskUsageGridSizer->Add( staticText43, 0, wxALL, 5 ); + wxString DiskMaxOfTotalTT = wxEmptyString; + DiskMaxOfTotalTT.Printf(_("Limit the percentage of disk space used by %s on the volume where it stores data."), pSkinAdvanced->GetApplicationShortName().c_str()); + m_chkDiskMaxOfTotal = new wxCheckBox ( diskUsageStaticBox, ID_CHKDISKMAXOFTOTAL, _("Use no more than"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); + m_chkDiskMaxOfTotal->SetToolTip(DiskMaxOfTotalTT); diskUsageGridSizer->Add( m_chkDiskMaxOfTotal, 0, wxALL|wxEXPAND, 5 ); m_txtDiskMaxOfTotal = new wxTextCtrl( diskUsageStaticBox, ID_TXTDISKMAXOFTOTAL, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - m_txtDiskMaxOfTotal->SetToolTip( _("BOINC uses at most this percentage of total disk space") ); - + m_txtDiskMaxOfTotal->SetToolTip(DiskMaxOfTotalTT); diskUsageGridSizer->Add( m_txtDiskMaxOfTotal, 0, wxALL, 1 ); /*xgettext:no-c-format*/ @@ -587,41 +625,59 @@ wxPanel* CDlgAdvPreferencesBase::createDiskAndMemoryTab(wxNotebook* notebook) memoryUsageGridSizer->SetFlexibleDirection( wxHORIZONTAL ); memoryUsageGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + wxString MemoryMaxInUseTT = wxEmptyString; + MemoryMaxInUseTT.Printf(_("Limit the memory used by %s when you're using the computer."), pSkinAdvanced->GetApplicationShortName().c_str()); + wxStaticText* staticText50 = new wxStaticText( memoryUsageStaticBox, ID_DEFAULT, _("When computer is in use, use at most"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); + staticText50->SetToolTip(MemoryMaxInUseTT); memoryUsageGridSizer->Add( staticText50, 0, wxALL|wxEXPAND, 5 ); textCtrlSize = getTextCtrlSize(wxT("100.00")); m_txtMemoryMaxInUse = new wxTextCtrl( memoryUsageStaticBox, ID_TXTMEMORYMAXINUSE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); + m_txtMemoryMaxInUse->SetToolTip(MemoryMaxInUseTT); memoryUsageGridSizer->Add( m_txtMemoryMaxInUse, 0, wxALL, 1 ); /*xgettext:no-c-format*/ wxStaticText* staticText51 = new wxStaticText( memoryUsageStaticBox, ID_DEFAULT, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText51->SetToolTip(MemoryMaxInUseTT); memoryUsageGridSizer->Add( staticText51, 0, wxALL, 5 ); + wxString MemoryMaxOnIdleTT = wxEmptyString; + MemoryMaxOnIdleTT.Printf(_("Limit the memory used by %s when you're not using the computer."), pSkinAdvanced->GetApplicationShortName().c_str()); + wxStaticText* staticText52 = new wxStaticText( memoryUsageStaticBox, ID_DEFAULT, _("When computer is not in use, use at most"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); + staticText52->SetToolTip(MemoryMaxOnIdleTT); memoryUsageGridSizer->Add( staticText52, 0, wxALL|wxEXPAND, 5 ); m_txtMemoryMaxOnIdle = new wxTextCtrl( memoryUsageStaticBox, ID_TXTMEMORYMAXONIDLE, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); + m_txtMemoryMaxOnIdle->SetToolTip(MemoryMaxOnIdleTT); memoryUsageGridSizer->Add( m_txtMemoryMaxOnIdle, 0, wxALL, 1 ); /*xgettext:no-c-format*/ wxStaticText* staticText53 = new wxStaticText( memoryUsageStaticBox, ID_DEFAULT, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText53->SetToolTip(MemoryMaxOnIdleTT); memoryUsageGridSizer->Add( staticText53, 0, wxALL, 5 ); + wxString DiskMaxSwapTT = wxEmptyString; + DiskMaxSwapTT.Printf(_("Limit the swap space (page file) used by %s."), pSkinAdvanced->GetApplicationShortName().c_str()); + wxStaticText* staticText48 = new wxStaticText( memoryUsageStaticBox, ID_DEFAULT, _("Page/swap file: use at most"), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT ); + staticText48->SetToolTip(DiskMaxSwapTT); memoryUsageGridSizer->Add( staticText48, 0, wxALL|wxEXPAND, 5 ); m_txtDiskMaxSwap = new wxTextCtrl( memoryUsageStaticBox, ID_TXTDISKWRITETODISK, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); + m_txtDiskMaxSwap->SetToolTip(DiskMaxSwapTT); memoryUsageGridSizer->Add( m_txtDiskMaxSwap, 0, wxALL, 1 ); + /*xgettext:no-c-format*/ wxStaticText* staticText49 = new wxStaticText( memoryUsageStaticBox, ID_DEFAULT, _("%"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText49->SetToolTip(DiskMaxSwapTT); memoryUsageGridSizer->Add( staticText49, 0, wxALL, 5 ); memoryUsageBoxSizer->Add( memoryUsageGridSizer, 0, wxEXPAND, 1 ); m_chkMemoryWhileSuspended = new wxCheckBox( memoryUsageStaticBox, ID_CHKMEMORYWHILESUSPENDED, _("Leave non-GPU tasks in memory while suspended"), wxDefaultPosition, wxDefaultSize, 0 ); - - m_chkMemoryWhileSuspended->SetToolTip( _("if checked, suspended work units are left in memory") ); + m_chkMemoryWhileSuspended->SetToolTip( _("If checked, suspended tasks stay in memory, and resume with no work lost. If unchecked, suspended tasks are removed from memory, and resume from their last checkpoint.") ); memoryUsageBoxSizer->Add( m_chkMemoryWhileSuspended, 0, wxALL, 5 ); @@ -653,20 +709,24 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook) wxBoxSizer* cpuTimesEveryDaySizer = new wxBoxSizer( wxHORIZONTAL ); + wxString ProcEveryDayTT(_("Compute only during a particular range of hours each day.")); m_chkProcEveryDay = new wxCheckBox( computingTimesStaticBox, ID_CHKPROCEVERYDAY, _("Compute only between"), wxDefaultPosition, wxDefaultSize, 0 ); + m_chkProcEveryDay->SetToolTip(ProcEveryDayTT); +// m_chkProcEveryDay->SetToolTip(_("Compute only during a particular range of hours each day.")); cpuTimesEveryDaySizer->Add( m_chkProcEveryDay, 0, wxLEFT|wxRIGHT, 5 ); m_txtProcEveryDayStart = new wxTextCtrl( computingTimesStaticBox, ID_TXTPROCEVERYDAYSTART, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - m_txtProcEveryDayStart->SetToolTip( _("allow work starting at this time") ); + m_txtProcEveryDayStart->SetToolTip(ProcEveryDayTT); cpuTimesEveryDaySizer->Add( m_txtProcEveryDayStart, 0, wxLEFT|wxRIGHT, 1 ); wxStaticText* staticText25 = new wxStaticText( computingTimesStaticBox, ID_DEFAULT, _("and"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE ); + staticText25->SetToolTip(ProcEveryDayTT); cpuTimesEveryDaySizer->Add( staticText25, 0, wxLEFT|wxRIGHT, 5 ); m_txtProcEveryDayStop = new wxTextCtrl( computingTimesStaticBox, ID_TXTPROCEVERYDAYSTOP, wxT(""), wxDefaultPosition, textCtrlSize, wxTE_RIGHT ); - m_txtProcEveryDayStop->SetToolTip( _("stop allowing work at this time") ); + m_txtProcEveryDayStop->SetToolTip(ProcEveryDayTT); cpuTimesEveryDaySizer->Add( m_txtProcEveryDayStop, 0, wxLEFT|wxRIGHT, 1 ); computingTimesStaticBoxSizer->Add( cpuTimesEveryDaySizer, 0, wxLEFT|wxRIGHT, 1 ); @@ -675,15 +735,18 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook) wxStaticBoxSizer* procSpecialTimesStaticBoxSizer = new wxStaticBoxSizer(procSpecialTimesStaticBox, wxVERTICAL); makeStaticBoxLabelItalic(procSpecialTimesStaticBox); - wxStaticText* staticText36 = new wxStaticText( procSpecialTimesStaticBox, ID_DEFAULT, _("Selected days will override the \"Every day\" times above"), wxDefaultPosition, wxDefaultSize, 0 ); + wxStaticText* staticText36 = new wxStaticText( procSpecialTimesStaticBox, ID_DEFAULT, _("Override the \"Every day\" times above on the days selected below:"), wxDefaultPosition, wxDefaultSize, 0 ); procSpecialTimesStaticBoxSizer->Add( staticText36, 0, wxALL, 0 ); - procSpecialTimesStaticBox->SetToolTip(_("On each selected \"override\" day, ignore the \"Every day\" times above and suspend if the time is outside the range shown for that day")); + procSpecialTimesStaticBoxSizer->AddSpacer(3); + +// procSpecialTimesStaticBox->SetToolTip(_("On each selected \"override\" day, ignore the \"Every day\" times above and suspend if the time is outside the range shown for that day")); wxFlexGridSizer* procDaysSizer = new wxFlexGridSizer( 4, 9, 0, 0 ); procDaysSizer->SetFlexibleDirection( wxHORIZONTAL ); procDaysSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED ); + // Tooltips for Day-of-Week overrides are set in CDlgAdvPreferences::SetSpecialTooltips() m_chkProcMonday = new wxCheckBox( procSpecialTimesStaticBox, ID_CHKPROCMONDAY, _("Monday"), wxDefaultPosition, wxDefaultSize, 0 ); procDaysSizer->Add( m_chkProcMonday, 0, wxLEFT, 5 ); @@ -765,20 +828,22 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook) wxBoxSizer* networkTimesEveryDaySizer = new wxBoxSizer( wxHORIZONTAL ); + wxString NetEveryDayTT(_("Transfer files only during a particular range of hours each day.")); m_chkNetEveryDay = new wxCheckBox( networkTimesStaticBox, ID_CHKNETEVERYDAY, _("Tranfer files only between"), wxDefaultPosition, wxDefaultSize, 0 ); + m_chkNetEveryDay->SetToolTip(NetEveryDayTT); networkTimesEveryDaySizer->Add( m_chkNetEveryDay, 0, wxLEFT|wxRIGHT, 5 ); m_txtNetEveryDayStart = new wxTextCtrl( networkTimesStaticBox, ID_TXTNETEVERYDAYSTART, wxT(""), wxDefaultPosition, textCtrlSize, 0 ); - m_txtNetEveryDayStart->SetToolTip( _("allow file tranfers starting at this time") ); + m_txtNetEveryDayStart->SetToolTip(NetEveryDayTT); networkTimesEveryDaySizer->Add( m_txtNetEveryDayStart, 0, wxLEFT|wxRIGHT, 1 ); wxStaticText* staticText37 = new wxStaticText( networkTimesStaticBox, ID_DEFAULT, _("and"), wxDefaultPosition, wxDefaultSize, 0 ); + staticText37->SetToolTip(NetEveryDayTT); networkTimesEveryDaySizer->Add( staticText37, 0, wxLEFT|wxRIGHT, 5 ); m_txtNetEveryDayStop = new wxTextCtrl( networkTimesStaticBox, ID_TXTNETEVERYDAYSTOP, wxT(""), wxDefaultPosition, textCtrlSize, 0 ); - m_txtNetEveryDayStop->SetToolTip( _("stop allowing file tranfers at this time") ); - + m_txtNetEveryDayStop->SetToolTip(NetEveryDayTT); networkTimesEveryDaySizer->Add( m_txtNetEveryDayStop, 0, wxLEFT|wxRIGHT, 1 ); networkTimesBoxSizer->Add( networkTimesEveryDaySizer, 0, wxLEFT|wxRIGHT, 1 ); @@ -787,11 +852,14 @@ wxPanel* CDlgAdvPreferencesBase::createDailySchedulesTab(wxNotebook* notebook) wxStaticBoxSizer* netSpecialTimesStaticBoxSizer = new wxStaticBoxSizer(netSpecialTimesStaticBox, wxVERTICAL); makeStaticBoxLabelItalic(netSpecialTimesStaticBox); - wxStaticText* staticText39 = new wxStaticText( netSpecialTimesStaticBox, ID_DEFAULT, _("Selected days will override the \"Every day\" times above"), wxDefaultPosition, wxDefaultSize, 0 ); + wxStaticText* staticText39 = new wxStaticText( netSpecialTimesStaticBox, ID_DEFAULT, _("Override the \"Every day\" times above on the days selected below:"), wxDefaultPosition, wxDefaultSize, 0 ); netSpecialTimesStaticBoxSizer->Add( staticText39, 0, wxALL, 0 ); - netSpecialTimesStaticBox->SetToolTip(_("On each selected \"override\" day, ignore the \"Every day\" times above and suspend if the time is outside the range shown for that day")); + netSpecialTimesStaticBoxSizer->AddSpacer(3); + +// netSpecialTimesStaticBox->SetToolTip(_("On each selected \"override\" day, ignore the \"Every day\" times above and suspend if the time is outside the range shown for that day")); + // Tooltips for Day-of-Week overrides are set in CDlgAdvPreferences::SetSpecialTooltips() wxFlexGridSizer* netDaysGridSizer = new wxFlexGridSizer( 4, 9, 0, 0 ); netDaysGridSizer->SetFlexibleDirection( wxHORIZONTAL ); netDaysGridSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );