wxString CViewWork::GetKeyValue1(int iRowIndex) { CWork* work; if (GetWorkCacheAtIndex(work, m_iSortedIndexes[iRowIndex])) { return wxEmptyString; } if (m_iColumnIDToColumnIndex[COLUMN_NAME] < 0) { // Column is hidden, so SynchronizeCacheItem() did not set its value GetDocName(m_iSortedIndexes[iRowIndex], work->m_strName); } return work->m_strName; }
bool CViewWork::SynchronizeCacheItem(wxInt32 iRowIndex, wxInt32 iColumnIndex) { wxString strDocumentText = wxEmptyString; wxString strDocumentText2 = wxEmptyString; float fDocumentFloat = 0.0; time_t tDocumentTime = (time_t)0; CWork* work; strDocumentText.Empty(); if (GetWorkCacheAtIndex(work, m_iSortedIndexes[iRowIndex])) { return false; } switch (iColumnIndex) { case COLUMN_PROJECT: GetDocProjectName(m_iSortedIndexes[iRowIndex], strDocumentText); GetDocProjectURL(m_iSortedIndexes[iRowIndex], strDocumentText2); if (!strDocumentText.IsSameAs(work->m_strProjectName) || !strDocumentText2.IsSameAs(work->m_strProjectURL)) { work->m_strProjectName = strDocumentText; work->m_strProjectURL = strDocumentText2; return true; } break; case COLUMN_APPLICATION: GetDocApplicationName(m_iSortedIndexes[iRowIndex], strDocumentText); if (!strDocumentText.IsSameAs(work->m_strApplicationName)) { work->m_strApplicationName = strDocumentText; return true; } break; case COLUMN_NAME: GetDocName(m_iSortedIndexes[iRowIndex], strDocumentText); if (!strDocumentText.IsSameAs(work->m_strName)) { work->m_strName = strDocumentText; return true; } break; case COLUMN_CPUTIME: GetDocCPUTime(m_iSortedIndexes[iRowIndex], fDocumentFloat); if (fDocumentFloat != work->m_fCPUTime) { work->m_fCPUTime = fDocumentFloat; FormatCPUTime(fDocumentFloat, work->m_strCPUTime); return true; } break; case COLUMN_PROGRESS: GetDocProgress(m_iSortedIndexes[iRowIndex], fDocumentFloat); if (fDocumentFloat != work->m_fProgress) { work->m_fProgress = fDocumentFloat; FormatProgress(fDocumentFloat, work->m_strProgress); return true; } break; case COLUMN_TOCOMPLETION: GetDocTimeToCompletion(m_iSortedIndexes[iRowIndex], fDocumentFloat); if (fDocumentFloat != work->m_fTimeToCompletion) { work->m_fTimeToCompletion = fDocumentFloat; FormatTimeToCompletion(fDocumentFloat, work->m_strTimeToCompletion); return true; } break; case COLUMN_REPORTDEADLINE: GetDocReportDeadline(m_iSortedIndexes[iRowIndex], tDocumentTime); if (tDocumentTime != work->m_tReportDeadline) { work->m_tReportDeadline = tDocumentTime; FormatReportDeadline(tDocumentTime, work->m_strReportDeadline); return true; } break; case COLUMN_STATUS: int i = m_iSortedIndexes[iRowIndex]; RESULT* result = wxGetApp().GetDocument()->result(i); strDocumentText = result_description(result); if (!strDocumentText.IsSameAs(work->m_strStatus)) { work->m_strStatus = strDocumentText; return true; } break; } return false; }