diff --git a/checkin_notes b/checkin_notes
index 840997161f..e11f440428 100755
--- a/checkin_notes
+++ b/checkin_notes
@@ -1230,9 +1230,14 @@ Charlie 26 Jan 2007
Rom 26 Jan 2007
- Remove wxAnimate since it isn't used anywhere.
+ - MGR: Add a new menu item that'll shutdown the core client that the manager is
+ connected too. It'll prompt for a new computer afterwords.
- clientgui/
+ clientgui/common/
wxAnimate.cpp, .h (Removed)
+ clientgui/
+ AdvancedFrame.cpp, .h
+ Events.h
win_build/
boincmgr_curl.vcproj
boincmgr_curl_2003.vcproj
diff --git a/clientgui/AdvancedFrame.cpp b/clientgui/AdvancedFrame.cpp
index da18617e9f..018c4289ff 100644
--- a/clientgui/AdvancedFrame.cpp
+++ b/clientgui/AdvancedFrame.cpp
@@ -160,6 +160,7 @@ IMPLEMENT_DYNAMIC_CLASS(CAdvancedFrame, CBOINCBaseFrame)
BEGIN_EVENT_TABLE (CAdvancedFrame, CBOINCBaseFrame)
EVT_MENU(ID_FILERUNBENCHMARKS, CAdvancedFrame::OnRunBenchmarks)
EVT_MENU(ID_FILESELECTCOMPUTER, CAdvancedFrame::OnSelectComputer)
+ EVT_MENU(ID_SHUTDOWNCORECLIENT, CAdvancedFrame::OnClientShutdown)
EVT_MENU(ID_FILESWITCHGUI, CAdvancedFrame::OnSwitchGUI)
EVT_MENU(ID_READ_PREFS, CAdvancedFrame::Onread_prefs)
EVT_MENU(ID_READ_CONFIG, CAdvancedFrame::Onread_config)
@@ -431,6 +432,11 @@ bool CAdvancedFrame::CreateMenu() {
_("Select computer..."),
strMenuDescription
);
+ menuAdvanced->Append(
+ ID_SHUTDOWNCORECLIENT,
+ _("Shutdown connected client..."),
+ _("Shutdown the currently connected core client")
+ );
menuAdvanced->Append(
ID_FILERUNBENCHMARKS,
_("Run CPU &benchmarks"),
@@ -1055,16 +1061,43 @@ void CAdvancedFrame::OnSelectComputer(wxCommandEvent& WXUNUSED(event)) {
wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnSelectComputer - Function End"));
}
+
+void CAdvancedFrame::OnClientShutdown(wxCommandEvent& WXUNUSED(event)) {
+ wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnClientShutdown - Function Begin"));
+
+ CMainDocument* pDoc = wxGetApp().GetDocument();
+ wxCommandEvent evtSelectNewComputer(wxEVT_COMMAND_MENU_SELECTED, ID_FILESELECTCOMPUTER);
+
+ wxASSERT(pDoc);
+ wxASSERT(wxDynamicCast(pDoc, CMainDocument));
+
+ // Stop all timers
+ StopTimers();
+
+ pDoc->CoreClientQuit();
+
+ // Since the core cliet we were connected to just shutdown, prompt for a new one.
+ ProcessEvent(evtSelectNewComputer);
+
+ // Restart timers
+ StartTimers();
+
+ wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnClientShutdown - Function End"));
+}
+
+
void CAdvancedFrame::Onread_prefs(wxCommandEvent& WXUNUSED(event)) {
CMainDocument* pDoc = wxGetApp().GetDocument();
pDoc->rpc.read_global_prefs_override();
}
+
void CAdvancedFrame::Onread_config(wxCommandEvent& WXUNUSED(event)) {
CMainDocument* pDoc = wxGetApp().GetDocument();
pDoc->rpc.read_cc_config();
}
+
void CAdvancedFrame::OnSwitchGUI(wxCommandEvent& WXUNUSED(event)) {
wxLogTrace(wxT("Function Start/End"), wxT("CAdvancedFrame::OnSwitchGUI - Function Begin"));
diff --git a/clientgui/AdvancedFrame.h b/clientgui/AdvancedFrame.h
index bb6dc1bcd7..dd889e0492 100644
--- a/clientgui/AdvancedFrame.h
+++ b/clientgui/AdvancedFrame.h
@@ -56,23 +56,24 @@ public:
~CAdvancedFrame(void);
+ void OnSwitchGUI( wxCommandEvent& event );
+
void OnActivitySelection( wxCommandEvent& event );
void OnNetworkSelection( wxCommandEvent& event );
- void OnRunBenchmarks( wxCommandEvent& event );
- void OnSelectComputer( wxCommandEvent& event );
- void OnSwitchGUI( wxCommandEvent& event );
- void Onread_prefs( wxCommandEvent& event );
- void Onread_config( wxCommandEvent& event );
-
- void OnCommandsRetryCommunications( wxCommandEvent& event );
+ void OnProjectsAttachToProject( wxCommandEvent& event );
void OnProjectsAttachToAccountManager( wxCommandEvent& event );
void OnAccountManagerUpdate( wxCommandEvent& event );
void OnAccountManagerDetach( wxCommandEvent& event );
- void OnProjectsAttachToProject( wxCommandEvent& event );
void OnOptionsOptions( wxCommandEvent& event );
void OnDlgPreferences( wxCommandEvent& event );
+ void OnSelectComputer( wxCommandEvent& event );
+ void OnClientShutdown( wxCommandEvent& event );
+ void OnRunBenchmarks( wxCommandEvent& event );
+ void OnCommandsRetryCommunications( wxCommandEvent& event );
+ void Onread_prefs( wxCommandEvent& event );
+ void Onread_config( wxCommandEvent& event );
void OnHelp( wxHelpEvent& event );
void OnHelpBOINCManager( wxCommandEvent& event );
diff --git a/clientgui/Events.h b/clientgui/Events.h
index 9bd651a068..94b5244664 100644
--- a/clientgui/Events.h
+++ b/clientgui/Events.h
@@ -55,6 +55,7 @@
#define ID_ACTIVITYMENUSEPARATOR 6031
#define ID_FILECLOSEWINDOW 6032
#define ID_ADVPREFSDLG 6033
+#define ID_SHUTDOWNCORECLIENT 6034
#define ID_SIMPLEFRAME 6100
#define ID_SIMPLEMESSAGECHECKTIMER 6101
#define ID_SIMPLE_ATTACHTOPROJECT 6600
diff --git a/win_build/boincmgr_curl_2003.vcproj b/win_build/boincmgr_curl_2003.vcproj
index 8e1a84f8af..75fe3b7e50 100644
--- a/win_build/boincmgr_curl_2003.vcproj
+++ b/win_build/boincmgr_curl_2003.vcproj
@@ -894,10 +894,6 @@
RelativePath="..\clientgui\common\wxFNBDropTarget.h">
-
-