*** empty log message ***

svn path=/trunk/boinc/; revision=10938
This commit is contained in:
Rom Walton 2006-08-17 20:10:43 +00:00
parent c9b799b3c7
commit b5dee1ac90
4 changed files with 38 additions and 25 deletions

View File

@ -8928,3 +8928,10 @@ Milos 17 Aug 2006
sg_DlgPreferences.cpp,h sg_DlgPreferences.cpp,h
sg_ProjectsComponent.cpp sg_ProjectsComponent.cpp
Rom 17 Aug 2006
- Bug Fix: Keep both the global state and the updated tasks records in sync within
the simple GUI.
clientgui/
MainDocument.cpp, .h
sg_BoincSimpleGUI.cpp

View File

@ -1238,6 +1238,17 @@ int CMainDocument::CachedSimpleGUIUpdate() {
} }
int CMainDocument::GetSimpleGUIWorkCount() {
int iCount = -1;
CachedSimpleGUIUpdate();
CachedStateUpdate();
if (!results.results.empty())
iCount = (int)results.results.size();
return iCount;
}
const char *BOINC_RCSID_aa03a835ba = "$Id$"; const char *BOINC_RCSID_aa03a835ba = "$Id$";

View File

@ -274,10 +274,12 @@ public:
// //
// Simple GUI Updates // Simple GUI Updates
// //
public:
int CachedSimpleGUIUpdate();
private: private:
wxDateTime m_dtCachedSimpleGUITimestamp; wxDateTime m_dtCachedSimpleGUITimestamp;
int CachedSimpleGUIUpdate();
public:
int GetSimpleGUIWorkCount();
}; };

View File

@ -227,26 +227,21 @@ void CSimpleFrame::OnProjectsAttachToProject() {
} }
void CSimpleFrame::OnFrameRender(wxTimerEvent& WXUNUSED(event)) { void CSimpleFrame::OnFrameRender(wxTimerEvent& WXUNUSED(event)) {
CMainDocument* pDoc = wxGetApp().GetDocument();
int retValue; int retValue;
CMainDocument* pDoc = wxGetApp().GetDocument();
//Update data //Update data
if(pDoc->IsConnected()){ if(pDoc->IsConnected()){
retValue = pDoc->CachedSimpleGUIUpdate(); // Update the document state, any subsequent calls will just used the
if(retValue==0){ // cached data.
pDoc->GetSimpleGUIWorkCount();
if(!clientGUIInitialized){ if(!clientGUIInitialized){
//Freeze();
InitSimpleClient(); InitSimpleClient();
initAfter(); initAfter();
// Thaw();
//Update();
clientGUIInitialized = true; clientGUIInitialized = true;
//Show(true); }
}else{ //check for changes in the interface
UpdateClientGUI(); UpdateClientGUI();
} }
}
}
} }
@ -271,8 +266,7 @@ void CSimpleFrame::InitSimpleClient()
// Do not update screen at this point // Do not update screen at this point
Freeze(); Freeze();
//create work unit tabs //create work unit tabs
//int resultCnt = pDoc->GetWorkCount(); int resultCnt = (int)pDoc->GetSimpleGUIWorkCount();
int resultCnt = (int)pDoc->results.results.size();
if(resultCnt > 0){ if(resultCnt > 0){
//init nootebok //init nootebok
InitNotebook(); InitNotebook();
@ -314,8 +308,7 @@ void CSimpleFrame::UpdateClientGUI(){
CMainDocument* pDoc = wxGetApp().GetDocument(); CMainDocument* pDoc = wxGetApp().GetDocument();
//update GUI //update GUI
//int resultCnt = pDoc->GetWorkCount(); int resultCnt = (int)pDoc->GetSimpleGUIWorkCount();
int resultCnt = (int)pDoc->results.results.size();
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
//assume they are all inactive //assume they are all inactive
for(int x = 0; x < (int)m_windows.size(); x ++) for(int x = 0; x < (int)m_windows.size(); x ++)