Index: src/libchcore/TSubTaskCopyMove.cpp =================================================================== diff -u -r9b8cccbee0fcfeca28a112cc0253a7641f73f74f -ra5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8 --- src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision 9b8cccbee0fcfeca28a112cc0253a7641f73f74f) +++ src/libchcore/TSubTaskCopyMove.cpp (.../TSubTaskCopyMove.cpp) (revision a5f396da5ed5ffb3fcd9fdf22afb5a7fd07e1ab8) @@ -151,6 +151,7 @@ TSubTaskCopyMove::TSubTaskCopyMove(TSubTaskContext& tSubTaskContext) : TSubTaskBase(tSubTaskContext) { + m_tSubTaskStats.SetSubOperationType(eSubOperation_Copying); } void TSubTaskCopyMove::Reset() @@ -302,9 +303,15 @@ return TSubTaskBase::eSubResult_Continue; } -void TSubTaskCopyMove::GetStatsSnapshot(TSubTaskStatsSnapshot& rStats) const +void TSubTaskCopyMove::GetStatsSnapshot(TSubTaskStatsSnapshotPtr& spStats) const { - m_tSubTaskStats.GetSnapshot(rStats); + m_tSubTaskStats.GetSnapshot(spStats); + // if this subtask is not started yet, try to get the most fresh information for processing + if(!spStats->IsRunning() && spStats->GetTotalCount() == 0 && spStats->GetTotalSize() == 0) + { + spStats->SetTotalCount(GetContext().GetFilesCache().GetSize()); + spStats->SetTotalSize(GetContext().GetFilesCache().CalculateTotalSize()); + } } TBufferSizes::EBufferType TSubTaskCopyMove::GetBufferIndex(const TBufferSizes& rBufferSizes, const TFileInfoPtr& spFileInfo)