From ac8986b80ae47f0fa8a20afcbc80885ba603a6c9 Mon Sep 17 00:00:00 2001 From: Rom Walton Date: Sun, 27 Nov 2005 01:28:56 +0000 Subject: [PATCH] *** empty log message *** svn path=/trunk/boinc/; revision=8961 --- checkin_notes | 15 +++ clientgui/BOINCTaskBar.cpp | 79 ++++++++-------- clientgui/DlgSelectComputer.cpp | 2 +- clientgui/MainDocument.cpp | 54 +++++++---- clientgui/MainDocument.h | 5 +- clientgui/MainFrame.cpp | 50 ++++++++-- clientgui/MainFrame.h | 34 +++++-- clientgui/ViewWork.cpp | 45 ++++----- locale/client/en_US/BOINC Manager.mo | Bin 540 -> 540 bytes locale/client/en_US/BOINC Manager.po | 134 ++++++++++++++------------- 10 files changed, 257 insertions(+), 161 deletions(-) diff --git a/checkin_notes b/checkin_notes index 64ffc6778f..a604625aeb 100755 --- a/checkin_notes +++ b/checkin_notes @@ -13970,3 +13970,18 @@ David 26 Nov 2005 html/user/ lookup_account.php + +Rom 26 Nov 2005 + - Bug Fix: Don't treat various forms of the local computer name as a + remote machine. + - Bug Fix: When any form of the local computer name is used + prepopulate the password field in the select computer dialog. + - Bug Fix: On connection failed messages provide an easy way to + retry the connection attempt. + + clientgui/ + BOINCTaskBar.cpp + DlgSelectComputer.cpp + MainDocument.cpp, .h + MainFrame.cpp, .h + ViewWork.cpp diff --git a/clientgui/BOINCTaskBar.cpp b/clientgui/BOINCTaskBar.cpp index 93a7102839..2c7091fb8e 100644 --- a/clientgui/BOINCTaskBar.cpp +++ b/clientgui/BOINCTaskBar.cpp @@ -258,49 +258,50 @@ void CTaskBarIcon::OnMouseMove(wxTaskBarIconEvent& WXUNUSED(event)) { wxASSERT(pDoc); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); - - pDoc->GetConnectedComputerName(strMachineName); - if (strMachineName.empty()) { - strTitle = strTitle + wxT(" - (localhost)"); - } else { + if (pDoc->IsConnected()) { + pDoc->GetConnectedComputerName(strMachineName); strTitle = strTitle + wxT(" - (") + strMachineName + wxT(")"); - } - pDoc->GetActivityState(bActivitiesSuspended, bNetworkSuspended); - if (bActivitiesSuspended) { - strMessage += _("BOINC is currently suspended...\n"); - } - - if (bNetworkSuspended) { - strMessage += _("BOINC networking is currently suspended...\n"); - } - - if (strMessage.Length() > 0) { - strMessage += wxT("\n"); - } - - iResultCount = pDoc->results.results.size(); - for (iIndex = 0; iIndex < iResultCount; iIndex++) { - RESULT* result = wxGetApp().GetDocument()->result(iIndex); - RESULT* state_result = NULL; - std::string project_name; - - bIsDownloaded = (result->state == RESULT_FILES_DOWNLOADED); - bIsActive = result->active_task; - bIsExecuting = (result->scheduler_state == CPU_SCHED_SCHEDULED); - if (!(bIsActive) || !(bIsDownloaded) || !(bIsExecuting)) continue; - - if (result) { - state_result = pDoc->state.lookup_result(result->project_url, result->name); - if (state_result) { - state_result->project->get_name(project_name); - strProjectName = wxString(project_name.c_str()); - } - fProgress = result->fraction_done; + pDoc->GetActivityState(bActivitiesSuspended, bNetworkSuspended); + if (bActivitiesSuspended) { + strMessage += _("BOINC is currently suspended...\n"); } - strBuffer.Printf(wxT("%s: %.2f%%\n"), strProjectName.c_str(), fProgress * 100); - strMessage += strBuffer; + if (bNetworkSuspended) { + strMessage += _("BOINC networking is currently suspended...\n"); + } + + if (strMessage.Length() > 0) { + strMessage += wxT("\n"); + } + + iResultCount = pDoc->results.results.size(); + for (iIndex = 0; iIndex < iResultCount; iIndex++) { + RESULT* result = wxGetApp().GetDocument()->result(iIndex); + RESULT* state_result = NULL; + std::string project_name; + + bIsDownloaded = (result->state == RESULT_FILES_DOWNLOADED); + bIsActive = result->active_task; + bIsExecuting = (result->scheduler_state == CPU_SCHED_SCHEDULED); + if (!(bIsActive) || !(bIsDownloaded) || !(bIsExecuting)) continue; + + if (result) { + state_result = pDoc->state.lookup_result(result->project_url, result->name); + if (state_result) { + state_result->project->get_name(project_name); + strProjectName = wxString(project_name.c_str()); + } + fProgress = result->fraction_done; + } + + strBuffer.Printf(wxT("%s: %.2f%%\n"), strProjectName.c_str(), fProgress * 100); + strMessage += strBuffer; + } + } else if (pDoc->IsReconnecting()) { + strMessage += _("BOINC Manager is currently reconnecting to a BOINC client...\n"); + } else { + strMessage += _("BOINC Manager is not currently connected to a BOINC client...\n"); } SetBalloon(m_iconTaskBarIcon, strTitle, strMessage); diff --git a/clientgui/DlgSelectComputer.cpp b/clientgui/DlgSelectComputer.cpp index 12ee3adc42..a20cae1577 100644 --- a/clientgui/DlgSelectComputer.cpp +++ b/clientgui/DlgSelectComputer.cpp @@ -188,7 +188,7 @@ void CDlgSelectComputer::OnComputerNameUpdated( wxCommandEvent& event ) wxASSERT(pDoc); wxASSERT(wxDynamicCast(pDoc, CMainDocument)); - if (m_ComputerNameCtrl->GetValue().Lower() == wxT("localhost")) { + if (pDoc->IsComputerNameLocal(m_ComputerNameCtrl->GetValue())) { pDoc->m_pNetworkConnection->GetLocalPassword(strPassword); m_ComputerPasswordCtrl->SetValue(strPassword); } diff --git a/clientgui/MainDocument.cpp b/clientgui/MainDocument.cpp index 689ba22274..6face562e8 100644 --- a/clientgui/MainDocument.cpp +++ b/clientgui/MainDocument.cpp @@ -70,8 +70,8 @@ void CNetworkConnection::GetLocalPassword(wxString& strPassword){ void* CNetworkConnection::Poll() { int retval; - std::string strComputer; - std::string strComputerPassword; + wxString strComputer = wxEmptyString; + wxString strComputerPassword = wxEmptyString; if (IsReconnecting()) { wxLogTrace(wxT("Function Status"), wxT("CNetworkConnection::Poll - Reconnection Detected")); @@ -81,9 +81,7 @@ void* CNetworkConnection::Poll() { retval = m_pDocument->rpc.authorize(m_strNewComputerPassword.c_str()); if (!retval) { wxLogTrace(wxT("Function Status"), wxT("CNetworkConnection::Poll - Connection Success")); - std::string host = m_strNewComputerName.c_str(); - std::string pwd = m_strNewComputerPassword.c_str(); - SetStateSuccess(host, pwd); + SetStateSuccess(m_strNewComputerName, m_strNewComputerPassword); } else if (ERR_AUTHENTICATOR == retval) { wxLogTrace(wxT("Function Status"), wxT("CNetworkConnection::Poll - RPC Authorization - ERR_AUTHENTICATOR")); SetStateErrorAuthentication(); @@ -110,15 +108,15 @@ void* CNetworkConnection::Poll() { strComputerPassword = m_strNewComputerPassword; } else { if (!m_strConnectedComputerName.empty()) { - strComputer = m_strConnectedComputerName.c_str(); - strComputerPassword = m_strConnectedComputerPassword.c_str(); + strComputer = m_strConnectedComputerName; + strComputerPassword = m_strConnectedComputerPassword; } } // a host value of NULL is special cased as binding to the localhost and // if we are connecting to the localhost we need to retry the connection // for awhile so that the users can respond to firewall prompts. - if (strComputer.empty() || (strComputer == _T("localhost"))) { + if (IsComputerNameLocal(strComputer)) { retval = m_pDocument->rpc.init_asynch(NULL, 60., true); } else { retval = m_pDocument->rpc.init_asynch(strComputer.c_str(), 60., false); @@ -154,6 +152,22 @@ int CNetworkConnection::GetConnectingComputerName(wxString& strMachine) { } +bool CNetworkConnection::IsComputerNameLocal(wxString& strMachine) { + if (strMachine.empty()) { + return true; + } else if (wxT("localhost") == strMachine.Lower()) { + return true; + } else if (wxT("localhost.localdomain") == strMachine.Lower()) { + return true; + } else if (::wxGetHostName().Lower() == strMachine.Lower()) { + return true; + } else if (::wxGetFullHostName().Lower() == strMachine.Lower()) { + return true; + } + return false; +} + + int CNetworkConnection::SetNewComputerName(const wxChar* szComputer) { m_strNewComputerName = szComputer; return 0; @@ -195,11 +209,7 @@ void CNetworkConnection::SetStateError() { m_bConnectEvent = false; - pFrame->ShowAlert( - _("BOINC Manager - Connection failed"), - _("Connection failed."), - wxICON_ERROR - ); + pFrame->ShowConnectionFailedAlert(); } } @@ -216,15 +226,15 @@ void CNetworkConnection::SetStateReconnecting() { } -void CNetworkConnection::SetStateSuccess(std::string& strComputer, std::string& strComputerPassword) { +void CNetworkConnection::SetStateSuccess(wxString& strComputer, wxString& strComputerPassword) { CMainFrame* pFrame = wxGetApp().GetFrame(); if (pFrame && !m_bFrameShutdownDetected) { wxASSERT(wxDynamicCast(pFrame, CMainFrame)); m_bConnected = true; m_bReconnecting = false; m_bReconnectOnError = true; - m_strConnectedComputerName = strComputer.c_str(); - m_strConnectedComputerPassword = strComputerPassword.c_str(); + m_strConnectedComputerName = strComputer; + m_strConnectedComputerPassword = strComputerPassword; m_strNewComputerName = wxEmptyString; m_strNewComputerPassword = wxEmptyString; @@ -401,6 +411,13 @@ int CMainDocument::Connect(const wxChar* szComputer, const wxChar* szComputerPas } +int CMainDocument::Reconnect() { + m_pNetworkConnection->ForceReconnect(); + m_pNetworkConnection->FireReconnectEvent(); + return 0; +} + + int CMainDocument::GetConnectedComputerName(wxString& strMachine) { m_pNetworkConnection->GetConnectedComputerName(strMachine); return 0; @@ -413,6 +430,11 @@ int CMainDocument::GetConnectingComputerName(wxString& strMachine) { } +bool CMainDocument::IsComputerNameLocal(wxString& strMachine) { + return m_pNetworkConnection->IsComputerNameLocal(strMachine); +} + + bool CMainDocument::IsConnected() { return m_pNetworkConnection->IsConnected(); } diff --git a/clientgui/MainDocument.h b/clientgui/MainDocument.h index c2245edfaf..23c9cdb479 100644 --- a/clientgui/MainDocument.h +++ b/clientgui/MainDocument.h @@ -39,13 +39,14 @@ public: int FrameShutdownDetected(); int GetConnectedComputerName(wxString& strMachine); int GetConnectingComputerName(wxString& strMachine); + bool IsComputerNameLocal(wxString& strMachine); void GetLocalPassword(wxString& strPassword); int SetNewComputerName(const wxChar* szComputer); int SetNewComputerPassword(const wxChar* szPassword); void SetStateError(); void SetStateErrorAuthentication(); void SetStateReconnecting(); - void SetStateSuccess(std::string& strComputer, std::string& strComputerPassword); + void SetStateSuccess(wxString& strComputer, wxString& strComputerPassword); void SetStateDisconnected(); bool IsConnectEventSignaled() { return m_bConnectEvent; }; bool IsConnected() { return m_bConnected; }; @@ -102,6 +103,7 @@ public: int ResetState(); int Connect(const wxChar* szComputer, const wxChar* szComputerPassword = wxEmptyString, bool bDisconnect = FALSE); + int Reconnect(); int CachedStateLock(); int CachedStateUnlock(); @@ -111,6 +113,7 @@ public: int GetConnectedComputerName(wxString& strMachine); int GetConnectingComputerName(wxString& strMachine); + bool IsComputerNameLocal(wxString& strMachine); bool IsConnected(); bool IsReconnecting(); diff --git a/clientgui/MainFrame.cpp b/clientgui/MainFrame.cpp index 643c706c3a..9f382d2d09 100644 --- a/clientgui/MainFrame.cpp +++ b/clientgui/MainFrame.cpp @@ -923,11 +923,7 @@ void CMainFrame::OnSelectComputer(wxCommandEvent& WXUNUSED(event)) { TRUE ); if (lRetVal) { - ShowAlert( - _("Connection failed."), - _("Connection failed."), - wxICON_ERROR - ); + ShowConnectionFailedAlert(); } // Insert a copy of the current combo box value to the head of the @@ -1300,7 +1296,11 @@ void CMainFrame::OnAlert(CMainFrameAlertEvent& event) { if ((IsShown() && !event.m_notification_only) || (IsShown() && !pTaskbar->IsBalloonsSupported())) { if (!event.m_notification_only) { - ::wxMessageBox(event.m_message, event.m_title, event.m_style, this); + int retval = 0; + retval = ::wxMessageBox(event.m_message, event.m_title, event.m_style, this); + if (event.m_alert_event_type == AlertProcessResponse) { + event.ProcessResponse(retval); + } } } else { // If the main window is hidden or minimzed use the system tray ballon @@ -1772,9 +1772,8 @@ void CMainFrame::OnFrameRender(wxTimerEvent &event) { else pDoc->GetConnectedComputerName(strComputerName); - if (strComputerName.empty()) { + if (pDoc->IsComputerNameLocal(strComputerName)) { strTitle += wxT(" - (localhost)"); - strComputerName += wxT("localhost"); } else { strStatusText += strComputerName; } @@ -1874,6 +1873,7 @@ void CMainFrame::SetFrameListPanelRenderTimerRate() { wxASSERT(m_pNotebook); wxASSERT(m_pFrameListPanelRenderTimer); wxASSERT(pDoc); + wxASSERT(wxDynamicCast(pDoc, CMainDocument)); // Keep timer at faster rate until we have been connected > 10 seconds if (!pDoc->IsConnected()) @@ -1933,6 +1933,22 @@ void CMainFrame::FireConnect() { } +void CMainFrame::ShowConnectionFailedAlert() { + wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::ShowConnectionFailedAlert - Function Begin")); + + ShowAlert( + _("BOINC Manager - Connection Failed"), + _("BOINC Manager is not able to connect to a BOINC client.\n" + "Would you like to try to connect again?"), + wxYES_NO | wxICON_QUESTION, + false, + AlertProcessResponse + ); + + wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::ShowConnectionFailedAlert - Function End")); +} + + void CMainFrame::ShowNotCurrentlyConnectedAlert() { wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::ShowNotCurrentlyConnectedAlert - Function Begin")); @@ -1948,8 +1964,8 @@ void CMainFrame::ShowNotCurrentlyConnectedAlert() { } -void CMainFrame::ShowAlert( const wxString title, const wxString message, const int style, const bool notification_only ) { - CMainFrameAlertEvent event(wxEVT_MAINFRAME_ALERT, this, title, message, style, notification_only); +void CMainFrame::ShowAlert( const wxString title, const wxString message, const int style, const bool notification_only, const MainFrameAlertEventType alert_event_type ) { + CMainFrameAlertEvent event(wxEVT_MAINFRAME_ALERT, this, title, message, style, notification_only, alert_event_type); AddPendingEvent(event); } @@ -1958,6 +1974,7 @@ void CMainFrame::ExecuteBrowserLink(const wxString &strLink) { wxHyperLink::ExecuteLink(strLink); } + #ifdef __WXMAC__ bool CMainFrame::Show(bool show) { @@ -1975,4 +1992,17 @@ bool CMainFrame::Show(bool show) { #endif // __WXMAC__ + +void CMainFrameAlertEvent::ProcessResponse(const int response) const { + CMainDocument* pDoc = wxGetApp().GetDocument(); + + wxASSERT(pDoc); + wxASSERT(wxDynamicCast(pDoc, CMainDocument)); + + if ((AlertProcessResponse == m_alert_event_type) && (wxYES == response)) { + pDoc->Reconnect(); + } +} + + const char *BOINC_RCSID_d881a56dc5 = "$Id$"; diff --git a/clientgui/MainFrame.h b/clientgui/MainFrame.h index e4d7c26e81..a31087647e 100644 --- a/clientgui/MainFrame.h +++ b/clientgui/MainFrame.h @@ -25,7 +25,6 @@ #pragma interface "MainFrame.cpp" #endif - class CStatusBar : public wxStatusBar { DECLARE_DYNAMIC_CLASS(CStatusBar) @@ -46,9 +45,15 @@ private: DECLARE_EVENT_TABLE() }; + class CMainFrameEvent; class CMainFrameAlertEvent; +enum MainFrameAlertEventType { + AlertNormal = 0, + AlertProcessResponse +}; + class CMainFrame : public wxFrame { DECLARE_DYNAMIC_CLASS(CMainFrame) @@ -98,8 +103,15 @@ public: void FireRefreshView(); void FireConnect(); + void ShowConnectionFailedAlert(); void ShowNotCurrentlyConnectedAlert(); - void ShowAlert( const wxString title, const wxString message, const int style, const bool notification_only = false ); + void ShowAlert( + const wxString title, + const wxString message, + const int style, + const bool notification_only = false, + const MainFrameAlertEventType alert_event_type = AlertNormal + ); void ExecuteBrowserLink( const wxString& strLink ); @@ -167,10 +179,17 @@ public: class CMainFrameAlertEvent : public wxEvent { public: + CMainFrameAlertEvent(wxEventType evtType, CMainFrame *frame, wxString title, wxString message, int style, bool notification_only, MainFrameAlertEventType alert_event_type) + : wxEvent(-1, evtType), m_title(title), m_message(message), m_style(style), m_notification_only(notification_only), m_alert_event_type(alert_event_type) + { + SetEventObject(frame); + } + CMainFrameAlertEvent(wxEventType evtType, CMainFrame *frame, wxString title, wxString message, int style, bool notification_only) : wxEvent(-1, evtType), m_title(title), m_message(message), m_style(style), m_notification_only(notification_only) { SetEventObject(frame); + m_alert_event_type = AlertNormal; } CMainFrameAlertEvent(const CMainFrameAlertEvent& event) @@ -180,14 +199,17 @@ public: m_message = event.m_message; m_style = event.m_style; m_notification_only = event.m_notification_only; + m_alert_event_type = event.m_alert_event_type; } virtual wxEvent *Clone() const { return new CMainFrameAlertEvent(*this); } + virtual void ProcessResponse(const int response) const; - wxString m_title; - wxString m_message; - int m_style; - bool m_notification_only; + wxString m_title; + wxString m_message; + int m_style; + bool m_notification_only; + MainFrameAlertEventType m_alert_event_type; }; diff --git a/clientgui/ViewWork.cpp b/clientgui/ViewWork.cpp index f02360ed19..641f202711 100644 --- a/clientgui/ViewWork.cpp +++ b/clientgui/ViewWork.cpp @@ -199,36 +199,31 @@ void CViewWork::OnWorkShowGraphics( wxCommandEvent& WXUNUSED(event) ) { pFrame->UpdateStatusText(_("Showing graphics for result...")); - pDoc->GetConnectedComputerName(strMachineName); - // TODO: implement hide as well as show - if (1) { #ifdef _WIN32 - if (!strMachineName.empty()) { - iAnswer = ::wxMessageBox( - _("Are you sure you want to display graphics on a remote machine?"), - _("Show graphics"), - wxYES_NO | wxICON_QUESTION, - this - ); - } else { - iAnswer = wxYES; - } -#else + pDoc->GetConnectedComputerName(strMachineName); + if (!pDoc->IsComputerNameLocal(strMachineName)) { + iAnswer = ::wxMessageBox( + _("Are you sure you want to display graphics on a remote machine?"), + _("Show graphics"), + wxYES_NO | wxICON_QUESTION, + this + ); + } else { iAnswer = wxYES; + } +#else + iAnswer = wxYES; #endif - if (wxYES == iAnswer) { - pDoc->WorkShowGraphics( - m_pListPane->GetFirstSelected(), - false, - wxGetApp().m_strDefaultWindowStation, - wxGetApp().m_strDefaultDesktop, - wxGetApp().m_strDefaultDisplay - ); - } - - pFrame->UpdateStatusText(wxT("")); + if (wxYES == iAnswer) { + pDoc->WorkShowGraphics( + m_pListPane->GetFirstSelected(), + false, + wxGetApp().m_strDefaultWindowStation, + wxGetApp().m_strDefaultDesktop, + wxGetApp().m_strDefaultDisplay + ); } pFrame->UpdateStatusText(wxT("")); diff --git a/locale/client/en_US/BOINC Manager.mo b/locale/client/en_US/BOINC Manager.mo index ced2c2a8d2fe05218fbf297e973691688e223eb0..ed4c8e963ea3602029572e576233f132406f4562 100755 GIT binary patch delta 14 VcmbQkGKXctL}qg\n" "Language-Team: BOINC Development Team \n" "MIME-Version: 1.0\n" @@ -176,56 +176,64 @@ msgstr "" msgid "BOINC Manager" msgstr "" -#: clientgui/BOINCTaskBar.cpp:271 +#: clientgui/BOINCTaskBar.cpp:267 msgid "BOINC is currently suspended...\n" msgstr "" -#: clientgui/BOINCTaskBar.cpp:275 +#: clientgui/BOINCTaskBar.cpp:271 msgid "BOINC networking is currently suspended...\n" msgstr "" -#: clientgui/BOINCTaskBar.cpp:376 +#: clientgui/BOINCTaskBar.cpp:302 +msgid "BOINC Manager is currently reconnecting to a BOINC client...\n" +msgstr "" + +#: clientgui/BOINCTaskBar.cpp:304 +msgid "BOINC Manager is not currently connected to a BOINC client...\n" +msgstr "" + +#: clientgui/BOINCTaskBar.cpp:377 #: clientgui/MainFrame.cpp:331 #: clientgui/mac/MacSysMenu.cpp:76 msgid "E&xit" msgstr "" -#: clientgui/BOINCTaskBar.cpp:395 -#: clientgui/BOINCTaskBar.cpp:402 +#: clientgui/BOINCTaskBar.cpp:396 +#: clientgui/BOINCTaskBar.cpp:403 msgid "&Open BOINC Manager..." msgstr "" -#: clientgui/BOINCTaskBar.cpp:406 +#: clientgui/BOINCTaskBar.cpp:407 #: clientgui/MainFrame.cpp:340 msgid "&Run always" msgstr "" -#: clientgui/BOINCTaskBar.cpp:407 +#: clientgui/BOINCTaskBar.cpp:408 #: clientgui/MainFrame.cpp:345 msgid "Run based on &preferences" msgstr "" -#: clientgui/BOINCTaskBar.cpp:408 +#: clientgui/BOINCTaskBar.cpp:409 #: clientgui/MainFrame.cpp:350 msgid "&Suspend" msgstr "" -#: clientgui/BOINCTaskBar.cpp:410 +#: clientgui/BOINCTaskBar.cpp:411 #: clientgui/MainFrame.cpp:358 msgid "&Network activity always available" msgstr "" -#: clientgui/BOINCTaskBar.cpp:411 +#: clientgui/BOINCTaskBar.cpp:412 #: clientgui/MainFrame.cpp:363 msgid "Network activity based on &preferences" msgstr "" -#: clientgui/BOINCTaskBar.cpp:412 +#: clientgui/BOINCTaskBar.cpp:413 #: clientgui/MainFrame.cpp:368 msgid "&Network activity suspended" msgstr "" -#: clientgui/BOINCTaskBar.cpp:414 +#: clientgui/BOINCTaskBar.cpp:415 #: clientgui/MainFrame.cpp:425 msgid "&About BOINC Manager..." msgstr "" @@ -631,29 +639,19 @@ msgstr "" msgid "Info about your team" msgstr "" -#: clientgui/MainDocument.cpp:180 +#: clientgui/MainDocument.cpp:194 msgid "BOINC Manager - Connection Error" msgstr "" -#: clientgui/MainDocument.cpp:181 +#: clientgui/MainDocument.cpp:195 msgid "The password you have provided is incorrect, please try again." msgstr "" -#: clientgui/MainDocument.cpp:199 -msgid "BOINC Manager - Connection failed" -msgstr "" - -#: clientgui/MainDocument.cpp:200 -#: clientgui/MainFrame.cpp:927 -#: clientgui/MainFrame.cpp:928 -msgid "Connection failed." -msgstr "" - -#: clientgui/MainDocument.cpp:306 +#: clientgui/MainDocument.cpp:316 msgid "Retrieving system state; please wait..." msgstr "" -#: clientgui/MainDocument.cpp:315 +#: clientgui/MainDocument.cpp:325 msgid "Retrieving host information; please wait..." msgstr "" @@ -780,19 +778,19 @@ msgstr "" msgid "&Help" msgstr "" -#: clientgui/MainFrame.cpp:1049 +#: clientgui/MainFrame.cpp:1045 msgid "Attaching to project..." msgstr "" -#: clientgui/MainFrame.cpp:1088 +#: clientgui/MainFrame.cpp:1084 msgid "Retrying communications for project(s)..." msgstr "" -#: clientgui/MainFrame.cpp:1178 +#: clientgui/MainFrame.cpp:1174 msgid "Language Selection..." msgstr "" -#: clientgui/MainFrame.cpp:1179 +#: clientgui/MainFrame.cpp:1175 msgid "The BOINC Managers default language has been changed, in order for this change to take affect you must restart the manager." msgstr "" @@ -841,28 +839,38 @@ msgstr "" msgid "BOINC failed to connect to the internet." msgstr "" -#: clientgui/MainFrame.cpp:1783 -#: clientgui/MainFrame.cpp:1786 +#: clientgui/MainFrame.cpp:1782 +#: clientgui/MainFrame.cpp:1785 #, c-format msgid "%s - (%s)" msgstr "" -#: clientgui/MainFrame.cpp:1784 +#: clientgui/MainFrame.cpp:1783 #, c-format msgid "Connecting to %s" msgstr "" -#: clientgui/MainFrame.cpp:1787 +#: clientgui/MainFrame.cpp:1786 #, c-format msgid "Connected to %s" msgstr "" #: clientgui/MainFrame.cpp:1940 -msgid "BOINC Manager - Connection Status" +msgid "BOINC Manager - Connection Failed" msgstr "" #: clientgui/MainFrame.cpp:1941 msgid "" +"BOINC Manager is not able to connect to a BOINC client.\n" +"Would you like to try to connect again?" +msgstr "" + +#: clientgui/MainFrame.cpp:1956 +msgid "BOINC Manager - Connection Status" +msgstr "" + +#: clientgui/MainFrame.cpp:1957 +msgid "" "BOINC Manager is not currently connected to a BOINC client.\n" "Please use the 'File\\Select Computer...' menu option to connect up to a BOINC client.\n" "To connect up to your local computer please use 'localhost' as the host name." @@ -1094,7 +1102,7 @@ msgstr "" #: clientgui/ViewProjects.cpp:114 #: clientgui/ViewProjects.cpp:560 #: clientgui/ViewWork.cpp:99 -#: clientgui/ViewWork.cpp:458 +#: clientgui/ViewWork.cpp:453 msgid "Suspend" msgstr "" @@ -1205,7 +1213,7 @@ msgid "Launching browser..." msgstr "" #: clientgui/ViewProjects.cpp:556 -#: clientgui/ViewWork.cpp:454 +#: clientgui/ViewWork.cpp:449 msgid "Resume" msgstr "" @@ -1230,7 +1238,7 @@ msgid "Web sites" msgstr "" #: clientgui/ViewProjects.cpp:721 -#: clientgui/ViewWork.cpp:666 +#: clientgui/ViewWork.cpp:661 msgid "Suspended by user" msgstr "" @@ -1358,12 +1366,12 @@ msgid "Retry in " msgstr "" #: clientgui/ViewTransfers.cpp:527 -#: clientgui/ViewWork.cpp:657 +#: clientgui/ViewWork.cpp:652 msgid "Download failed" msgstr "" #: clientgui/ViewTransfers.cpp:529 -#: clientgui/ViewWork.cpp:693 +#: clientgui/ViewWork.cpp:688 msgid "Upload failed" msgstr "" @@ -1373,22 +1381,22 @@ msgid "Suspended" msgstr "" #: clientgui/ViewTransfers.cpp:534 -#: clientgui/ViewWork.cpp:695 +#: clientgui/ViewWork.cpp:690 msgid "Uploading" msgstr "" #: clientgui/ViewTransfers.cpp:534 -#: clientgui/ViewWork.cpp:659 +#: clientgui/ViewWork.cpp:654 msgid "Downloading" msgstr "" #: clientgui/ViewWork.cpp:100 -#: clientgui/ViewWork.cpp:458 +#: clientgui/ViewWork.cpp:453 msgid "Suspend work for this result." msgstr "" #: clientgui/ViewWork.cpp:106 -#: clientgui/ViewWork.cpp:210 +#: clientgui/ViewWork.cpp:208 msgid "Show graphics" msgstr "" @@ -1440,71 +1448,71 @@ msgstr "" msgid "Showing graphics for result..." msgstr "" -#: clientgui/ViewWork.cpp:209 +#: clientgui/ViewWork.cpp:207 msgid "Are you sure you want to display graphics on a remote machine?" msgstr "" -#: clientgui/ViewWork.cpp:258 +#: clientgui/ViewWork.cpp:253 msgid "Aborting result..." msgstr "" -#: clientgui/ViewWork.cpp:261 +#: clientgui/ViewWork.cpp:256 #, c-format msgid "Are you sure you want to abort this result '%s'?" msgstr "" -#: clientgui/ViewWork.cpp:267 +#: clientgui/ViewWork.cpp:262 msgid "Abort result" msgstr "" -#: clientgui/ViewWork.cpp:454 +#: clientgui/ViewWork.cpp:449 msgid "Resume work for this result." msgstr "" -#: clientgui/ViewWork.cpp:653 +#: clientgui/ViewWork.cpp:648 msgid "New" msgstr "" -#: clientgui/ViewWork.cpp:664 -#: clientgui/ViewWork.cpp:686 +#: clientgui/ViewWork.cpp:659 +#: clientgui/ViewWork.cpp:681 msgid "Aborted by user" msgstr "" -#: clientgui/ViewWork.cpp:668 +#: clientgui/ViewWork.cpp:663 msgid "Activities suspended" msgstr "" -#: clientgui/ViewWork.cpp:671 +#: clientgui/ViewWork.cpp:666 msgid "Running" msgstr "" -#: clientgui/ViewWork.cpp:673 +#: clientgui/ViewWork.cpp:668 msgid "Preempted" msgstr "" -#: clientgui/ViewWork.cpp:675 -#: clientgui/ViewWork.cpp:678 +#: clientgui/ViewWork.cpp:670 +#: clientgui/ViewWork.cpp:673 msgid "Ready to run" msgstr "" -#: clientgui/ViewWork.cpp:688 +#: clientgui/ViewWork.cpp:683 msgid "Computation error" msgstr "" -#: clientgui/ViewWork.cpp:700 +#: clientgui/ViewWork.cpp:695 msgid "Acknowledged" msgstr "" -#: clientgui/ViewWork.cpp:702 +#: clientgui/ViewWork.cpp:697 msgid "Ready to report" msgstr "" -#: clientgui/ViewWork.cpp:704 +#: clientgui/ViewWork.cpp:699 #, c-format msgid "Error: invalid state '%d'" msgstr "" -#: clientgui/ViewWork.cpp:712 +#: clientgui/ViewWork.cpp:707 msgid "Activities suspended by user" msgstr ""