Index: src/ch/StatusDlg.cpp =================================================================== diff -u -N -rb1ecc12ba4c1f2a7b4acd6e82fc4193535e55ff0 -r70a5190f19728f132697e58b01599b46a5ca7f7e --- src/ch/StatusDlg.cpp (.../StatusDlg.cpp) (revision b1ecc12ba4c1f2a7b4acd6e82fc4193535e55ff0) +++ src/ch/StatusDlg.cpp (.../StatusDlg.cpp) (revision 70a5190f19728f132697e58b01599b46a5ca7f7e) @@ -1055,54 +1055,73 @@ void CStatusDlg::UpdateTaskStatsDetails(const chcore::TTaskStatsSnapshotPtr& spTaskStats) { + unsigned long long timeTotalEstimated = 0; + unsigned long long timeElapsed = 0; + unsigned long long timeRemaining = 0; + chcore::TSubTaskStatsSnapshotPtr spSubTaskStats = spTaskStats->GetSubTasksStats().GetCurrentSubTaskSnapshot(); - if(!spSubTaskStats) - return; + if(spSubTaskStats) + { + // text progress + CString strProcessedText = GetProcessedText(spSubTaskStats->GetProcessedCount(), spSubTaskStats->GetTotalCount(), spSubTaskStats->GetProcessedSize(), spSubTaskStats->GetTotalSize()); + GetDlgItem(IDC_SUBTASKPROCESSED_STATIC)->SetWindowText(strProcessedText); - // text progress - CString strProcessedText = GetProcessedText(spSubTaskStats->GetProcessedCount(), spSubTaskStats->GetTotalCount(), spSubTaskStats->GetProcessedSize(), spSubTaskStats->GetTotalSize()); - GetDlgItem(IDC_SUBTASKPROCESSED_STATIC)->SetWindowText(strProcessedText); + // progress bars + m_ctlCurrentObjectProgress.SetProgress(spSubTaskStats->GetCurrentItemProcessedSize(), spSubTaskStats->GetCurrentItemTotalSize()); + m_ctlSubTaskCountProgress.SetProgress(spSubTaskStats->GetProcessedCount(), spSubTaskStats->GetTotalCount()); + m_ctlSubTaskSizeProgress.SetProgress(spSubTaskStats->GetProcessedSize(), spSubTaskStats->GetTotalSize()); - // progress bars - m_ctlCurrentObjectProgress.SetProgress(spSubTaskStats->GetCurrentItemProcessedSize(), spSubTaskStats->GetCurrentItemTotalSize()); - m_ctlSubTaskCountProgress.SetProgress(spSubTaskStats->GetProcessedCount(), spSubTaskStats->GetTotalCount()); - m_ctlSubTaskSizeProgress.SetProgress(spSubTaskStats->GetProcessedSize(), spSubTaskStats->GetTotalSize()); + // time information + timeTotalEstimated = spSubTaskStats->GetEstimatedTotalTime(); + timeElapsed = spSubTaskStats->GetTimeElapsed(); + timeRemaining = timeTotalEstimated - timeElapsed; - // time information - unsigned long long timeTotalEstimated = spSubTaskStats->GetEstimatedTotalTime(); - unsigned long long timeElapsed = spSubTaskStats->GetTimeElapsed(); - unsigned long long timeRemaining = timeTotalEstimated - timeElapsed; + FormatTimeMiliseconds(timeElapsed, m_szTimeBuffer1, 40); + FormatTimeMiliseconds(timeTotalEstimated, m_szTimeBuffer2, 40); + FormatTimeMiliseconds(timeRemaining, m_szTimeBuffer3, 40); - FormatTimeMiliseconds(timeElapsed, m_szTimeBuffer1, 40); - FormatTimeMiliseconds(timeTotalEstimated, m_szTimeBuffer2, 40); - FormatTimeMiliseconds(timeRemaining, m_szTimeBuffer3, 40); + _sntprintf(m_szData, _MAX_PATH, _T("%s / %s (%s)"), m_szTimeBuffer1, m_szTimeBuffer2, m_szTimeBuffer3); + GetDlgItem(IDC_SUBTASKTIME_STATIC)->SetWindowText(m_szData); - _sntprintf(m_szData, _MAX_PATH, _T("%s / %s (%s)"), m_szTimeBuffer1, m_szTimeBuffer2, m_szTimeBuffer3); - GetDlgItem(IDC_SUBTASKTIME_STATIC)->SetWindowText(m_szData); + // speed information + CString strSpeed = GetSpeedString(spSubTaskStats->GetSizeSpeed(), spSubTaskStats->GetAvgSizeSpeed(), spSubTaskStats->GetCountSpeed(), spSubTaskStats->GetAvgCountSpeed()); + GetDlgItem(IDC_SUBTASKTRANSFER_STATIC)->SetWindowText(strSpeed); - // speed information - CString strSpeed = GetSpeedString(spSubTaskStats->GetSizeSpeed(), spSubTaskStats->GetAvgSizeSpeed(), spSubTaskStats->GetCountSpeed(), spSubTaskStats->GetAvgCountSpeed()); - GetDlgItem(IDC_SUBTASKTRANSFER_STATIC)->SetWindowText(strSpeed); + // subtask name + chcore::ESubOperationType eSubOperationType = spSubTaskStats->GetSubOperationType(); + CString strSubtaskName = GetSubtaskName(eSubOperationType); + GetDlgItem(IDC_SUBTASKNAME_STATIC)->SetWindowText(strSubtaskName); + // current path + chcore::TString strPath = spSubTaskStats->GetCurrentPath(); + if(strPath.IsEmpty()) + strPath = GetResManager().LoadString(IDS_NONEINPUTFILE_STRING); + + GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(strPath); // src object + + SetBufferSizesString(spTaskStats->GetCurrentBufferSize(), spSubTaskStats->GetCurrentBufferIndex()); + } + else + { + m_ctlCurrentObjectProgress.SetProgress(0, 100); + m_ctlSubTaskCountProgress.SetProgress(0, 100); + m_ctlSubTaskSizeProgress.SetProgress(0, 100); + + GetDlgItem(IDC_SUBTASKNAME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSUBTASKNAME_STRING)); + GetDlgItem(IDC_SUBTASKPROCESSED_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPROCESSEDTEXT_STRING)); + GetDlgItem(IDC_SUBTASKTIME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTIMETEXT_STRING)); + GetDlgItem(IDC_SUBTASKTRANSFER_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTRANSFERTEXT_STRING)); + GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSOURCETEXT_STRING)); + GetDlgItem(IDC_BUFFERSIZE_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYBUFFERSIZETEXT_STRING)); + } + ////////////////////////////////////////////////////// // data that can be changed by a thread CString strStatusText = GetStatusString(spTaskStats); GetDlgItem(IDC_OPERATION_STATIC)->SetWindowText(strStatusText); // operation - // subtask name - chcore::ESubOperationType eSubOperationType = spSubTaskStats->GetSubOperationType(); - CString strSubtaskName = GetSubtaskName(eSubOperationType); - GetDlgItem(IDC_SUBTASKNAME_STATIC)->SetWindowText(strSubtaskName); - - // current path - chcore::TString strPath = spSubTaskStats->GetCurrentPath(); - if(strPath.IsEmpty()) - strPath = GetResManager().LoadString(IDS_NONEINPUTFILE_STRING); - - GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(strPath); // src object - // count of processed data/overall count of data - strProcessedText = GetProcessedText(spTaskStats->GetProcessedCount(), spTaskStats->GetTotalCount(), + CString strProcessedText = GetProcessedText(spTaskStats->GetProcessedCount(), spTaskStats->GetTotalCount(), spTaskStats->GetProcessedSize(), spTaskStats->GetTotalSize()); GetDlgItem(IDC_TASKPROCESSED_STATIC)->SetWindowText(strProcessedText); @@ -1126,8 +1145,6 @@ m_ctlTaskCountProgress.SetProgress(spTaskStats->GetProcessedCount(), spTaskStats->GetTotalCount()); m_ctlTaskSizeProgress.SetProgress(spTaskStats->GetProcessedSize(), spTaskStats->GetTotalSize()); - SetBufferSizesString(spTaskStats->GetCurrentBufferSize(), spSubTaskStats->GetCurrentBufferIndex()); - GetDlgItem(IDC_DESTINATIONOBJECT_STATIC)->SetWindowText(spTaskStats->GetDestinationPath()); GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING + PriorityToIndex(spTaskStats->GetThreadPriority()))); GetDlgItem(IDC_TASKID_STATIC)->SetWindowText(spTaskStats->GetTaskName());