*** empty log message ***

svn path=/trunk/boinc/; revision=8791
This commit is contained in:
Rom Walton 2005-11-02 18:28:45 +00:00
parent ff725f9778
commit 6aa03769c4
8 changed files with 138 additions and 90 deletions

View File

@ -13515,3 +13515,19 @@ Charlie 1 Nov 2005
mac_build/ mac_build/
boinc.pbproj/ boinc.pbproj/
project.pbxproj project.pbxproj
Rom 2 Nov 2005
- Catch exceptions thrown by the STL library when vectors may not contain
the requested data. For some reason the list views are trying to
populate themselves with data during a connection cycle which means
the various tabs cache's are empty. We now just return an empty string
in this condition. This should clean up a few crash conditions on
platforms other than Windows.
clientgui/
BOINCBaseView.cpp
MainFrame.cpp
ViewProjects.cpp
ViewResources.cpp
ViewTransfers.cpp
ViewWork.cpp

View File

@ -338,9 +338,9 @@ int CBOINCBaseView::SyncronizeCache() {
int iRowTotal = 0; int iRowTotal = 0;
int iColumnIndex = 0; int iColumnIndex = 0;
int iColumnTotal = 0; int iColumnTotal = 0;
wxString strDocumentText = wxEmptyString; wxString strDocumentText = wxEmptyString;
wxString strListPaneText = wxEmptyString; wxString strListPaneText = wxEmptyString;
bool bNeedRefreshData = false; bool bNeedRefreshData = false;
iRowTotal = GetDocCount(); iRowTotal = GetDocCount();
iColumnTotal = m_pListPane->GetColumnCount(); iColumnTotal = m_pListPane->GetColumnCount();

View File

@ -1372,7 +1372,7 @@ void CMainFrame::OnConnect(CMainFrameEvent&) {
m_pFrameListPanelRenderTimer->Start(); m_pFrameListPanelRenderTimer->Start();
m_pDocumentPollTimer->Start(); m_pDocumentPollTimer->Start();
m_pNotebook->SetSelection(ID_LIST_MESSAGESVIEW - ID_LIST_BASE); m_pNotebook->SetSelection(ID_TASK_MESSAGESVIEW - ID_TASK_BASE);
} }
wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::OnConnect - Function End")); wxLogTrace(wxT("Function Start/End"), wxT("CMainFrame::OnConnect - Function End"));

View File

@ -398,31 +398,39 @@ wxInt32 CViewProjects::GetDocCount() {
wxString CViewProjects::OnListGetItemText(long item, long column) const { wxString CViewProjects::OnListGetItemText(long item, long column) const {
CProject* project = m_ProjectCache.at(item); CProject* project = NULL;
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
switch(column) { try {
case COLUMN_PROJECT: project = m_ProjectCache.at(item);
strBuffer = project->m_strProjectName; } catch ( std::out_of_range ) {
break; project = NULL;
case COLUMN_ACCOUNTNAME: }
strBuffer = project->m_strAccountName;
break; if (project) {
case COLUMN_TEAMNAME: switch(column) {
strBuffer = project->m_strTeamName; case COLUMN_PROJECT:
break; strBuffer = project->m_strProjectName;
case COLUMN_TOTALCREDIT: break;
strBuffer = project->m_strTotalCredit; case COLUMN_ACCOUNTNAME:
break; strBuffer = project->m_strAccountName;
case COLUMN_AVGCREDIT: break;
strBuffer = project->m_strAVGCredit; case COLUMN_TEAMNAME:
break; strBuffer = project->m_strTeamName;
case COLUMN_RESOURCESHARE: break;
strBuffer = project->m_strResourceShare; case COLUMN_TOTALCREDIT:
break; strBuffer = project->m_strTotalCredit;
case COLUMN_STATUS: break;
strBuffer = project->m_strStatus; case COLUMN_AVGCREDIT:
break; strBuffer = project->m_strAVGCredit;
break;
case COLUMN_RESOURCESHARE:
strBuffer = project->m_strResourceShare;
break;
case COLUMN_STATUS:
strBuffer = project->m_strStatus;
break;
}
} }
return strBuffer; return strBuffer;

View File

@ -108,17 +108,25 @@ wxInt32 CViewResources::GetDocCount() {
wxString CViewResources::OnListGetItemText(long item, long column) const { wxString CViewResources::OnListGetItemText(long item, long column) const {
CResource* resource = m_ResourceCache.at(item); CResource* resource = NULL;
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
switch(column) try {
{ resource = m_ResourceCache.at(item);
case COLUMN_PROJECT: } catch ( std::out_of_range ) {
strBuffer = resource->m_strProjectName; resource = NULL;
break; }
case COLUMN_DISKSPACE:
strBuffer = resource->m_strDiskSpace; if (resource) {
break; switch(column)
{
case COLUMN_PROJECT:
strBuffer = resource->m_strProjectName;
break;
case COLUMN_DISKSPACE:
strBuffer = resource->m_strDiskSpace;
break;
}
} }
return strBuffer; return strBuffer;

View File

@ -221,28 +221,36 @@ wxString CViewTransfers::OnListGetItemText(long item, long column) const {
CTransfer* transfer = m_TransferCache.at(item); CTransfer* transfer = m_TransferCache.at(item);
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
switch(column) { try {
case COLUMN_PROJECT: transfer = m_TransferCache.at(item);
strBuffer = transfer->m_strProjectName; } catch ( std::out_of_range ) {
break; transfer = NULL;
case COLUMN_FILE: }
strBuffer = transfer->m_strFileName;
break; if (transfer) {
case COLUMN_PROGRESS: switch(column) {
strBuffer = transfer->m_strProgress; case COLUMN_PROJECT:
break; strBuffer = transfer->m_strProjectName;
case COLUMN_SIZE: break;
strBuffer = transfer->m_strSize; case COLUMN_FILE:
break; strBuffer = transfer->m_strFileName;
case COLUMN_TIME: break;
strBuffer = transfer->m_strTime; case COLUMN_PROGRESS:
break; strBuffer = transfer->m_strProgress;
case COLUMN_SPEED: break;
strBuffer = transfer->m_strSpeed; case COLUMN_SIZE:
break; strBuffer = transfer->m_strSize;
case COLUMN_STATUS: break;
strBuffer = transfer->m_strStatus; case COLUMN_TIME:
break; strBuffer = transfer->m_strTime;
break;
case COLUMN_SPEED:
strBuffer = transfer->m_strSpeed;
break;
case COLUMN_STATUS:
strBuffer = transfer->m_strStatus;
break;
}
} }
return strBuffer; return strBuffer;

View File

@ -293,34 +293,42 @@ wxInt32 CViewWork::GetDocCount() {
wxString CViewWork::OnListGetItemText(long item, long column) const { wxString CViewWork::OnListGetItemText(long item, long column) const {
CWork* work = m_WorkCache.at(item); CWork* work = NULL;
wxString strBuffer = wxEmptyString; wxString strBuffer = wxEmptyString;
switch(column) { try {
case COLUMN_PROJECT: work = m_WorkCache.at(item);
strBuffer = work->m_strProjectName; } catch ( std::out_of_range ) {
break; work = NULL;
case COLUMN_APPLICATION: }
strBuffer = work->m_strApplicationName;
break; if (work) {
case COLUMN_NAME: switch(column) {
strBuffer = work->m_strName; case COLUMN_PROJECT:
break; strBuffer = work->m_strProjectName;
case COLUMN_CPUTIME: break;
strBuffer = work->m_strCPUTime; case COLUMN_APPLICATION:
break; strBuffer = work->m_strApplicationName;
case COLUMN_PROGRESS: break;
strBuffer = work->m_strProgress; case COLUMN_NAME:
break; strBuffer = work->m_strName;
case COLUMN_TOCOMPLETION: break;
strBuffer = work->m_strTimeToCompletion; case COLUMN_CPUTIME:
break; strBuffer = work->m_strCPUTime;
case COLUMN_REPORTDEADLINE: break;
strBuffer = work->m_strReportDeadline; case COLUMN_PROGRESS:
break; strBuffer = work->m_strProgress;
case COLUMN_STATUS: break;
strBuffer = work->m_strStatus; case COLUMN_TOCOMPLETION:
break; strBuffer = work->m_strTimeToCompletion;
break;
case COLUMN_REPORTDEADLINE:
strBuffer = work->m_strReportDeadline;
break;
case COLUMN_STATUS:
strBuffer = work->m_strStatus;
break;
}
} }
return strBuffer; return strBuffer;

View File

@ -147,9 +147,6 @@
Name="Source Files" Name="Source Files"
Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx" Filter="cpp;c;cxx;def;odl;idl;hpj;bat;asm;asmx"
UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}"> UniqueIdentifier="{4FC737F1-C7A5-4376-A066-2A32D752A2FF}">
<File
RelativePath="..\clientgui\BOINCBaseView.cpp">
</File>
<File <File
RelativePath="..\clientgui\BOINCGUIApp.cpp"> RelativePath="..\clientgui\BOINCGUIApp.cpp">
</File> </File>
@ -235,9 +232,6 @@
<File <File
RelativePath="..\clientgui\_wx_intellisense.h"> RelativePath="..\clientgui\_wx_intellisense.h">
</File> </File>
<File
RelativePath="..\clientgui\BOINCBaseView.h">
</File>
<File <File
RelativePath="..\clientgui\BOINCGUIApp.h"> RelativePath="..\clientgui\BOINCGUIApp.h">
</File> </File>
@ -519,6 +513,12 @@
<Filter <Filter
Name="Views" Name="Views"
Filter=""> Filter="">
<File
RelativePath="..\clientgui\BOINCBaseView.cpp">
</File>
<File
RelativePath="..\clientgui\BOINCBaseView.h">
</File>
<File <File
RelativePath="..\clientgui\ViewMessages.cpp"> RelativePath="..\clientgui\ViewMessages.cpp">
</File> </File>