| |
44 |
44 |
: ictranslate::CLanguageDialog(CStatusDlg::IDD, pParent, &m_bLock) |
| |
45 |
45 |
{ |
| |
46 |
46 |
|
| |
47 |
47 |
|
| |
48 |
48 |
m_i64LastProcessed=0; |
| |
49 |
49 |
m_i64LastAllTasksProcessed=0; |
| |
50 |
50 |
m_pTasks=pTasks; |
| |
51 |
51 |
m_dwLastUpdate=0; |
| |
52 |
52 |
|
| |
53 |
53 |
RegisterStaticExControl(AfxGetInstanceHandle()); |
| |
54 |
54 |
} |
| |
55 |
55 |
|
| |
56 |
56 |
CStatusDlg::~CStatusDlg() |
| |
57 |
57 |
{ |
| |
58 |
58 |
|
| |
59 |
59 |
} |
| |
60 |
60 |
|
| |
61 |
61 |
void CStatusDlg::DoDataExchange(CDataExchange* pDX) |
| |
62 |
62 |
{ |
| |
63 |
63 |
CLanguageDialog::DoDataExchange(pDX); |
| |
64 |
|
|
| |
65 |
|
DDX_Control(pDX, IDC_TASK_PROGRESS, m_ctlCurrentProgress); |
| |
|
64 |
DDX_Control(pDX, IDC_TASKCOUNT_PROGRESS, m_ctlTaskCountProgress); |
| |
|
65 |
DDX_Control(pDX, IDC_TASKSIZE_PROGRESS, m_ctlTaskSizeProgress); |
| |
|
66 |
DDX_Control(pDX, IDC_CURRENTOBJECT_PROGRESS, m_ctlCurrentObjectProgress); |
| |
|
67 |
DDX_Control(pDX, IDC_SUBTASKCOUNT_PROGRESS, m_ctlSubTaskCountProgress); |
| |
|
68 |
DDX_Control(pDX, IDC_SUBTASKSIZE_PROGRESS, m_ctlSubTaskSizeProgress); |
| |
|
69 |
DDX_Control(pDX, IDC_GLOBAL_PROGRESS, m_ctlProgressAll); |
| |
66 |
70 |
DDX_Control(pDX, IDC_STATUS_LIST, m_ctlStatusList); |
| |
67 |
|
DDX_Control(pDX, IDC_ALL_PROGRESS, m_ctlProgressAll); |
| |
68 |
|
|
| |
69 |
71 |
} |
| |
70 |
72 |
|
| |
71 |
73 |
BEGIN_MESSAGE_MAP(CStatusDlg,ictranslate::CLanguageDialog) |
| |
72 |
74 |
|
| |
73 |
75 |
ON_WM_TIMER() |
| |
74 |
76 |
ON_BN_CLICKED(IDC_PAUSE_BUTTON, OnPauseButton) |
| |
75 |
77 |
ON_BN_CLICKED(IDC_CANCEL_BUTTON, OnCancelButton) |
| |
76 |
78 |
ON_BN_CLICKED(IDC_SET_PRIORITY_BUTTON, OnSetPriorityButton) |
| |
77 |
79 |
ON_BN_CLICKED(IDC_SET_BUFFERSIZE_BUTTON, OnSetBuffersizeButton) |
| |
78 |
80 |
ON_BN_CLICKED(IDC_START_ALL_BUTTON, OnStartAllButton) |
| |
79 |
81 |
ON_BN_CLICKED(IDC_RESTART_BUTTON, OnRestartButton) |
| |
80 |
82 |
ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton) |
| |
81 |
83 |
ON_BN_CLICKED(IDC_PAUSE_ALL_BUTTON, OnPauseAllButton) |
| |
82 |
84 |
ON_BN_CLICKED(IDC_RESTART_ALL_BUTTON, OnRestartAllButton) |
| |
83 |
85 |
ON_BN_CLICKED(IDC_CANCEL_ALL_BUTTON, OnCancelAllButton) |
| |
84 |
86 |
ON_BN_CLICKED(IDC_REMOVE_FINISHED_BUTTON, OnRemoveFinishedButton) |
| |
85 |
87 |
ON_NOTIFY(LVN_KEYDOWN, IDC_STATUS_LIST, OnKeydownStatusList) |
| |
86 |
88 |
ON_NOTIFY(LVN_CHANGEDSELECTION, IDC_STATUS_LIST, OnSelectionChanged) |
| |
87 |
89 |
ON_BN_CLICKED(IDC_SHOW_LOG_BUTTON, OnShowLogButton) |
| |
88 |
90 |
ON_BN_CLICKED(IDC_STICK_BUTTON, OnStickButton) |
|
| |
131 |
133 |
m_ctlStatusList.InsertColumn(3, &lvc); |
| |
132 |
134 |
|
| |
133 |
135 |
lvc.pszText=(PTSTR)GetResManager().LoadString(IDS_COLUMNPROGRESS_STRING); |
| |
134 |
136 |
lvc.cchTextMax = lstrlen(lvc.pszText); |
| |
135 |
137 |
lvc.cx = static_cast<int>(0.15*iWidth); |
| |
136 |
138 |
lvc.iSubItem=2; |
| |
137 |
139 |
m_ctlStatusList.InsertColumn(4, &lvc); |
| |
138 |
140 |
|
| |
139 |
141 |
|
| |
140 |
142 |
m_images.Create(16, 16, ILC_COLOR16 | ILC_MASK, 0, 3); |
| |
141 |
143 |
m_images.Add(AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_WORKING_ICON))); |
| |
142 |
144 |
m_images.Add(AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_ERROR_ICON))); |
| |
143 |
145 |
m_images.Add(AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_PAUSED_ICON))); |
| |
144 |
146 |
m_images.Add(AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_FINISHED_ICON))); |
| |
145 |
147 |
m_images.Add(AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_CANCELLED_ICON))); |
| |
146 |
148 |
m_images.Add(AfxGetApp()->LoadIcon(MAKEINTRESOURCE(IDI_WAITING_ICON))); |
| |
147 |
149 |
|
| |
148 |
150 |
m_ctlStatusList.SetImageList(&m_images, LVSIL_SMALL); |
| |
149 |
151 |
|
| |
150 |
152 |
|
| |
151 |
|
m_ctlCurrentProgress.SetRange32(0, 100); |
| |
|
153 |
m_ctlTaskCountProgress.SetRange32(0, 100); |
| |
152 |
154 |
m_ctlProgressAll.SetRange32(0, 100); |
| |
153 |
155 |
|
| |
154 |
156 |
|
| |
155 |
157 |
StickDialogToScreenEdge(); |
| |
156 |
158 |
|
| |
157 |
159 |
|
| |
158 |
160 |
|
| |
159 |
161 |
|
| |
160 |
162 |
RefreshStatus(); |
| |
161 |
163 |
|
| |
162 |
164 |
|
| |
163 |
165 |
size_t stIndex = 0; |
| |
164 |
166 |
while(stIndex < m_pTasks->GetSize()) |
| |
165 |
167 |
{ |
| |
166 |
168 |
if(m_pTasks->GetAt(stIndex) == m_spInitialSelection) |
| |
167 |
169 |
{ |
| |
168 |
170 |
m_ctlStatusList.SetItemState(boost::numeric_cast<int>(stIndex), LVIS_SELECTED, LVIS_SELECTED); |
| |
169 |
171 |
break; |
| |
170 |
172 |
} |
| |
171 |
173 |
|
| |
172 |
174 |
stIndex++; |
| |
173 |
175 |
} |
| |
174 |
176 |
|
| |
175 |
177 |
|
| |
176 |
178 |
SetTimer(777, GetPropValue<PP_STATUSREFRESHINTERVAL>(GetConfig()), NULL); |
| |
177 |
179 |
|
| |
178 |
180 |
return TRUE; |
| |
179 |
181 |
} |
| |
180 |
182 |
|
| |
181 |
183 |
void CStatusDlg::EnableControls(bool bEnable) |
| |
182 |
184 |
{ |
| |
183 |
185 |
|
| |
184 |
186 |
GetDlgItem(IDC_SET_BUFFERSIZE_BUTTON)->EnableWindow(bEnable); |
| |
185 |
187 |
GetDlgItem(IDC_SET_PRIORITY_BUTTON)->EnableWindow(bEnable); |
| |
186 |
188 |
|
| |
187 |
189 |
if (!bEnable) |
| |
188 |
190 |
{ |
| |
189 |
|
|
| |
|
191 |
GetDlgItem(IDC_TASKID_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTASKID_STRING)); |
| |
|
192 |
|
| |
190 |
193 |
GetDlgItem(IDC_OPERATION_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYOPERATIONTEXT_STRING)); |
| |
191 |
|
GetDlgItem(IDC_SOURCE_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSOURCETEXT_STRING)); |
| |
192 |
|
GetDlgItem(IDC_DESTINATION_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYDESTINATIONTEXT_STRING)); |
| |
|
194 |
GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSOURCETEXT_STRING)); |
| |
|
195 |
GetDlgItem(IDC_DESTINATIONOBJECT_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYDESTINATIONTEXT_STRING)); |
| |
193 |
196 |
GetDlgItem(IDC_BUFFERSIZE_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYBUFFERSIZETEXT_STRING)); |
| |
194 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPRIORITYTEXT_STRING)); |
| |
|
197 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPRIORITYTEXT_STRING)); |
| |
195 |
198 |
|
| |
196 |
|
GetDlgItem(IDC_PROGRESS_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPROCESSEDTEXT_STRING)); |
| |
197 |
|
GetDlgItem(IDC_TRANSFER_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTRANSFERTEXT_STRING)); |
| |
198 |
|
GetDlgItem(IDC_TIME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTIMETEXT_STRING)); |
| |
199 |
|
GetDlgItem(IDC_ASSOCIATEDFILES__STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYASSOCFILE_STRING)); |
| |
|
199 |
|
| |
|
200 |
GetDlgItem(IDC_SUBTASKNAME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSUBTASKNAME_STRING)); |
| |
|
201 |
GetDlgItem(IDC_SUBTASKPROCESSED_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPROCESSEDTEXT_STRING)); |
| |
|
202 |
GetDlgItem(IDC_SUBTASKTIME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTIMETEXT_STRING)); |
| |
|
203 |
GetDlgItem(IDC_SUBTASKTRANSFER_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTRANSFERTEXT_STRING)); |
| |
200 |
204 |
|
| |
201 |
|
m_ctlCurrentProgress.SetPos(0); |
| |
|
205 |
GetDlgItem(IDC_TASKPROCESSED_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPROCESSEDTEXT_STRING)); |
| |
|
206 |
GetDlgItem(IDC_TASKTRANSFER_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTRANSFERTEXT_STRING)); |
| |
|
207 |
GetDlgItem(IDC_TASKTIME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTIMETEXT_STRING)); |
| |
|
208 |
|
| |
|
209 |
m_ctlTaskCountProgress.SetPos(0); |
| |
202 |
210 |
} |
| |
203 |
211 |
} |
| |
204 |
212 |
|
| |
205 |
213 |
void CStatusDlg::OnTimer(UINT_PTR nIDEvent) |
| |
206 |
214 |
{ |
| |
207 |
215 |
if (nIDEvent == 777) |
| |
208 |
216 |
{ |
| |
209 |
217 |
|
| |
210 |
218 |
KillTimer(777); |
| |
211 |
219 |
|
| |
212 |
220 |
RefreshStatus(); |
| |
213 |
221 |
|
| |
214 |
222 |
|
| |
215 |
223 |
SetTimer(777, GetPropValue<PP_STATUSREFRESHINTERVAL>(GetConfig()), NULL); |
| |
216 |
224 |
} |
| |
217 |
225 |
|
| |
218 |
226 |
CLanguageDialog::OnTimer(nIDEvent); |
| |
219 |
227 |
} |
| |
220 |
228 |
|
| |
221 |
229 |
void CStatusDlg::AddTaskInfo(int nPos, const chcore::TTaskPtr& spTask, DWORD dwCurrentTime) |
| |
222 |
230 |
{ |
| |
223 |
231 |
_ASSERTE(spTask != NULL); |
| |
224 |
232 |
if(spTask == NULL) |
| |
225 |
233 |
return; |
| |
226 |
234 |
|
| |
227 |
|
|
| |
228 |
|
_itot(nPos, m_szData, 10); |
| |
229 |
|
|
| |
230 |
235 |
|
| |
231 |
236 |
chcore::TASK_DISPLAY_DATA td; |
| |
232 |
237 |
spTask->GetSnapshot(&td); |
| |
233 |
238 |
|
| |
234 |
|
|
| |
235 |
|
CString strStatusText = GetStatusString(td); |
| |
236 |
|
CString strTemp; |
| |
237 |
|
LVITEM lvi; |
| |
238 |
|
lvi.mask=LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; |
| |
239 |
|
lvi.iItem=nPos; |
| |
240 |
|
lvi.iSubItem=0; |
| |
241 |
|
lvi.pszText = (PTSTR)(PCTSTR)strStatusText; |
| |
242 |
|
lvi.cchTextMax = lstrlen(lvi.pszText); |
| |
243 |
|
lvi.lParam = spTask->GetSessionUniqueID(); |
| |
244 |
|
lvi.iImage=GetImageFromStatus(td.m_eTaskState); |
| |
245 |
|
if (nPos < m_ctlStatusList.GetItemCount()) |
| |
246 |
|
m_ctlStatusList.SetItem(&lvi); |
| |
247 |
|
else |
| |
248 |
|
m_ctlStatusList.InsertItem(&lvi); |
| |
|
239 |
|
| |
|
240 |
SetTaskListEntry(td, nPos, spTask); |
| |
249 |
241 |
|
| |
250 |
|
|
| |
251 |
|
lvi.mask=LVIF_TEXT; |
| |
252 |
|
lvi.iSubItem=1; |
| |
253 |
|
if(td.m_strFileName.IsEmpty()) |
| |
254 |
|
strTemp = GetResManager().LoadString(IDS_NONEINPUTFILE_STRING); |
| |
255 |
|
else |
| |
256 |
|
strTemp = td.m_strFileName; |
| |
257 |
|
lvi.pszText=strTemp.GetBuffer(0); |
| |
258 |
|
strTemp.ReleaseBuffer(); |
| |
259 |
|
lvi.cchTextMax=lstrlen(lvi.pszText); |
| |
260 |
|
m_ctlStatusList.SetItem(&lvi); |
| |
261 |
|
|
| |
262 |
|
|
| |
263 |
|
lvi.iSubItem=2; |
| |
264 |
|
strTemp = td.m_pathDstPath.ToString(); |
| |
265 |
|
lvi.pszText=strTemp.GetBuffer(0); |
| |
266 |
|
strTemp.ReleaseBuffer(); |
| |
267 |
|
lvi.cchTextMax=lstrlen(lvi.pszText); |
| |
268 |
|
m_ctlStatusList.SetItem(&lvi); |
| |
269 |
|
|
| |
270 |
|
|
| |
271 |
|
lvi.iSubItem=3; |
| |
272 |
|
_itot(boost::numeric_cast<int>(td.m_dPercent), m_szData, 10); |
| |
273 |
|
_tcscat(m_szData, _T(" %")); |
| |
274 |
|
lvi.pszText=m_szData; |
| |
275 |
|
lvi.cchTextMax=lstrlen(lvi.pszText); |
| |
276 |
|
m_ctlStatusList.SetItem(&lvi); |
| |
277 |
|
|
| |
278 |
242 |
|
| |
279 |
243 |
if(spTask == m_spSelectedItem) |
| |
280 |
|
{ |
| |
281 |
|
|
| |
282 |
|
GetDlgItem(IDC_OPERATION_STATIC)->SetWindowText(strStatusText); |
| |
283 |
|
|
| |
284 |
|
if(td.m_strFullFilePath.IsEmpty()) |
| |
285 |
|
GetDlgItem(IDC_SOURCE_STATIC)->SetWindowText(GetResManager().LoadString(IDS_NONEINPUTFILE_STRING)); |
| |
286 |
|
else |
| |
287 |
|
GetDlgItem(IDC_SOURCE_STATIC)->SetWindowText(td.m_strFullFilePath); |
| |
288 |
|
|
| |
289 |
|
|
| |
290 |
|
_sntprintf(m_szData, _MAX_PATH, _T("%d/%d ("), td.m_stIndex, td.m_stSize); |
| |
291 |
|
strTemp=CString(m_szData); |
| |
292 |
|
strTemp+=GetSizeString(td.m_ullProcessedSize, m_szData, _MAX_PATH)+CString(_T("/")); |
| |
293 |
|
strTemp+=GetSizeString(td.m_ullSizeAll, m_szData, _MAX_PATH)+CString(_T(")")); |
| |
294 |
|
GetDlgItem(IDC_PROGRESS_STATIC)->SetWindowText(strTemp); |
| |
295 |
|
|
| |
296 |
|
|
| |
297 |
|
if (m_i64LastProcessed == 0) |
| |
298 |
|
strTemp=GetSizeString( td.m_timeElapsed ? td.m_ullProcessedSize/td.m_timeElapsed : 0, m_szData, _MAX_PATH); |
| |
299 |
|
else |
| |
300 |
|
if ( (dwCurrentTime-m_dwLastUpdate) != 0) |
| |
301 |
|
strTemp=GetSizeString( (static_cast<double>(td.m_ullProcessedSize) - static_cast<double>(m_i64LastProcessed))/(static_cast<double>(dwCurrentTime-m_dwLastUpdate)/1000.0), m_szData, _MAX_PATH); |
| |
302 |
|
else |
| |
303 |
|
strTemp=GetSizeString( 0ULL, m_szData, _MAX_PATH); |
| |
304 |
|
|
| |
305 |
|
|
| |
306 |
|
GetDlgItem(IDC_TRANSFER_STATIC)->SetWindowText(strTemp+_T("/s (")+CString(GetResManager().LoadString(IDS_AVERAGEWORD_STRING)) |
| |
307 |
|
+CString(GetSizeString(td.m_timeElapsed ? td.m_ullProcessedSize/td.m_timeElapsed : 0, m_szData, _MAX_PATH))+_T("/s )") |
| |
308 |
|
); |
| |
309 |
|
|
| |
310 |
|
|
| |
311 |
|
FormatTime(td.m_timeElapsed, m_szTimeBuffer1, 40); |
| |
312 |
|
time_t timeTotal = (td.m_ullProcessedSize == 0) ? 0 : (long)(td.m_ullSizeAll * td.m_timeElapsed / td.m_ullProcessedSize); |
| |
313 |
|
FormatTime(timeTotal, m_szTimeBuffer2, 40); |
| |
314 |
|
FormatTime(std::max((time_t)0l, timeTotal - td.m_timeElapsed), m_szTimeBuffer3, 40); |
| |
315 |
|
|
| |
316 |
|
_sntprintf(m_szData, _MAX_PATH, _T("%s / %s (%s)"), m_szTimeBuffer1, m_szTimeBuffer2, m_szTimeBuffer3); |
| |
317 |
|
GetDlgItem(IDC_TIME_STATIC)->SetWindowText(m_szData); |
| |
318 |
|
|
| |
319 |
|
|
| |
320 |
|
m_i64LastProcessed=td.m_ullProcessedSize; |
| |
321 |
|
|
| |
322 |
|
|
| |
323 |
|
m_ctlCurrentProgress.SetPos(boost::numeric_cast<int>(td.m_dPercent)); |
| |
324 |
|
|
| |
325 |
|
SetBufferSizesString(td.m_iCurrentBufferSize, td.m_iCurrentBufferIndex); |
| |
326 |
|
|
| |
327 |
|
|
| |
328 |
|
|
| |
329 |
|
|
| |
330 |
|
{ |
| |
331 |
|
GetDlgItem(IDC_DESTINATION_STATIC)->SetWindowText(td.m_pathDstPath.ToString()); |
| |
332 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(td.m_nPriority))); |
| |
333 |
|
GetDlgItem(IDC_ASSOCIATEDFILES__STATIC)->SetWindowText(td.m_strUniqueName); |
| |
|
244 |
UpdateTaskStatsDetails(td, dwCurrentTime); |
| |
334 |
245 |
} |
| |
335 |
246 |
|
| |
336 |
|
|
| |
337 |
|
m_spLastSelected = spTask; |
| |
338 |
|
} |
| |
339 |
|
} |
| |
340 |
|
|
| |
341 |
247 |
void CStatusDlg::OnSetBuffersizeButton() |
| |
342 |
248 |
{ |
| |
343 |
249 |
chcore::TTaskPtr spTask = GetSelectedItemPointer(); |
| |
344 |
250 |
if(!spTask) |
| |
345 |
251 |
return; |
| |
346 |
252 |
|
| |
347 |
253 |
CBufferSizeDlg dlg; |
| |
348 |
254 |
chcore::TTaskStatsSnapshot tTaskStats; |
| |
349 |
255 |
spTask->GetTaskStats(tTaskStats); |
| |
350 |
256 |
|
| |
351 |
257 |
spTask->GetBufferSizes(dlg.m_bsSizes); |
| |
352 |
258 |
dlg.m_iActiveIndex = tTaskStats.GetCurrentSubTaskStats().GetCurrentBufferIndex(); |
| |
353 |
259 |
if(dlg.DoModal() == IDOK) |
| |
354 |
260 |
spTask->SetBufferSizes(dlg.m_bsSizes); |
| |
355 |
261 |
} |
| |
356 |
262 |
|
| |
357 |
263 |
chcore::TTaskPtr CStatusDlg::GetSelectedItemPointer() |
| |
358 |
264 |
{ |
| |
359 |
265 |
|
| |
360 |
266 |
if(m_ctlStatusList.GetSelectedCount() == 1) |
|
| |
447 |
353 |
GetDlgItem(IDC_SET_PRIORITY_BUTTON)->GetWindowRect(&rect); |
| |
448 |
354 |
|
| |
449 |
355 |
pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, rect.right+1, rect.top, this); |
| |
450 |
356 |
} |
| |
451 |
357 |
} |
| |
452 |
358 |
|
| |
453 |
359 |
BOOL CStatusDlg::OnCommand(WPARAM wParam, LPARAM lParam) |
| |
454 |
360 |
{ |
| |
455 |
361 |
if (HIWORD(wParam) == 0) |
| |
456 |
362 |
{ |
| |
457 |
363 |
if (LOWORD(wParam) >= ID_POPUP_TIME_CRITICAL && LOWORD(wParam) <= ID_POPUP_IDLE) |
| |
458 |
364 |
{ |
| |
459 |
365 |
|
| |
460 |
366 |
if ( (m_spSelectedItem=GetSelectedItemPointer()) == NULL ) |
| |
461 |
367 |
return ictranslate::CLanguageDialog::OnCommand(wParam, lParam); |
| |
462 |
368 |
|
| |
463 |
369 |
switch (LOWORD(wParam)) |
| |
464 |
370 |
{ |
| |
465 |
371 |
case ID_POPUP_TIME_CRITICAL: |
| |
466 |
372 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_TIME_CRITICAL); |
| |
467 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_TIME_CRITICAL))); |
| |
|
373 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_TIME_CRITICAL))); |
| |
468 |
374 |
break; |
| |
469 |
375 |
case ID_POPUP_HIGHEST: |
| |
470 |
376 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_HIGHEST); |
| |
471 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_HIGHEST))); |
| |
|
377 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_HIGHEST))); |
| |
472 |
378 |
break; |
| |
473 |
379 |
case ID_POPUP_ABOVE_NORMAL: |
| |
474 |
380 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_ABOVE_NORMAL); |
| |
475 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_ABOVE_NORMAL))); |
| |
|
381 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_ABOVE_NORMAL))); |
| |
476 |
382 |
break; |
| |
477 |
383 |
case ID_POPUP_NORMAL: |
| |
478 |
384 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_NORMAL); |
| |
479 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_NORMAL))); |
| |
|
385 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_NORMAL))); |
| |
480 |
386 |
break; |
| |
481 |
387 |
case ID_POPUP_BELOW_NORMAL: |
| |
482 |
388 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_BELOW_NORMAL); |
| |
483 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_BELOW_NORMAL))); |
| |
|
389 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_BELOW_NORMAL))); |
| |
484 |
390 |
break; |
| |
485 |
391 |
case ID_POPUP_LOWEST: |
| |
486 |
392 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_LOWEST); |
| |
487 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_LOWEST))); |
| |
|
393 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_LOWEST))); |
| |
488 |
394 |
break; |
| |
489 |
395 |
case ID_POPUP_IDLE: |
| |
490 |
396 |
m_spSelectedItem->SetPriority(THREAD_PRIORITY_IDLE); |
| |
491 |
|
GetDlgItem(IDC_PRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_IDLE))); |
| |
|
397 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_IDLE))); |
| |
492 |
398 |
break; |
| |
493 |
399 |
} |
| |
494 |
400 |
} |
| |
495 |
401 |
} |
| |
496 |
402 |
return ictranslate::CLanguageDialog::OnCommand(wParam, lParam); |
| |
497 |
403 |
} |
| |
498 |
404 |
|
| |
499 |
405 |
void CStatusDlg::OnPauseButton() |
| |
500 |
406 |
{ |
| |
501 |
407 |
chcore::TTaskPtr spTask = GetSelectedItemPointer(); |
| |
502 |
408 |
if(spTask) |
| |
503 |
409 |
{ |
| |
504 |
410 |
TRACE("PauseProcessing call...\n"); |
| |
505 |
411 |
spTask->PauseProcessing(); |
| |
506 |
412 |
|
| |
507 |
413 |
RefreshStatus(); |
| |
508 |
414 |
} |
| |
509 |
415 |
} |
| |
510 |
416 |
|
| |
511 |
417 |
void CStatusDlg::OnResumeButton() |
|
| |
648 |
554 |
long lDays = boost::numeric_cast<long>(timeSeconds/86400); |
| |
649 |
555 |
timeSeconds %= 86400; |
| |
650 |
556 |
long lHours = boost::numeric_cast<long>(timeSeconds/3600); |
| |
651 |
557 |
timeSeconds %= 3600; |
| |
652 |
558 |
long lMinutes = boost::numeric_cast<long>(timeSeconds/60); |
| |
653 |
559 |
timeSeconds %= 60; |
| |
654 |
560 |
|
| |
655 |
561 |
if(lDays != 0) |
| |
656 |
562 |
_sntprintf(lpszBuffer, stMaxBufferSize, _T("%02d:%02d:%02d:%02d"), lDays, lHours, lMinutes, timeSeconds); |
| |
657 |
563 |
else |
| |
658 |
564 |
{ |
| |
659 |
565 |
if (lHours != 0) |
| |
660 |
566 |
_sntprintf(lpszBuffer, stMaxBufferSize, _T("%02d:%02d:%02d"), lHours, lMinutes, timeSeconds); |
| |
661 |
567 |
else |
| |
662 |
568 |
_sntprintf(lpszBuffer, stMaxBufferSize, _T("%02d:%02d"), lMinutes, timeSeconds); |
| |
663 |
569 |
} |
| |
664 |
570 |
|
| |
665 |
571 |
return lpszBuffer; |
| |
666 |
572 |
} |
| |
667 |
573 |
|
| |
|
574 |
LPTSTR CStatusDlg::FormatTimeMiliseconds(unsigned long long timeMiliSeconds, LPTSTR lpszBuffer, size_t stMaxBufferSize) |
| |
|
575 |
{ |
| |
|
576 |
time_t timeSeconds = timeMiliSeconds / 1000; |
| |
|
577 |
return FormatTime(timeSeconds, lpszBuffer, stMaxBufferSize); |
| |
|
578 |
} |
| |
|
579 |
|
| |
668 |
580 |
void CStatusDlg::RefreshStatus() |
| |
669 |
581 |
{ |
| |
670 |
582 |
|
| |
671 |
583 |
m_spSelectedItem=GetSelectedItemPointer(); |
| |
672 |
584 |
|
| |
673 |
585 |
|
| |
674 |
586 |
DWORD dwCurrentTime=GetTickCount(); |
| |
675 |
587 |
|
| |
676 |
588 |
|
| |
677 |
589 |
m_ctlStatusList.LimitItems(boost::numeric_cast<int>(m_pTasks->GetSize())); |
| |
678 |
590 |
|
| |
679 |
591 |
|
| |
680 |
592 |
for(size_t stIndex = 0; stIndex < m_pTasks->GetSize(); ++stIndex) |
| |
681 |
593 |
{ |
| |
682 |
594 |
AddTaskInfo(boost::numeric_cast<int>(stIndex), m_pTasks->GetAt(stIndex), dwCurrentTime); |
| |
683 |
595 |
} |
| |
684 |
596 |
|
| |
685 |
597 |
|
| |
686 |
598 |
chcore::TTaskManagerStatsSnapshot tTMStats; |
| |
687 |
599 |
m_pTasks->GetStatsSnapshot(tTMStats); |
| |
688 |
600 |
|
| |
689 |
601 |
|
| |
690 |
602 |
if (m_pTasks->GetSize() != 0) |
| |
691 |
603 |
_sntprintf(m_szData, _MAX_PATH, _T("%s [%.0f %%]"), GetResManager().LoadString(IDS_STATUSTITLE_STRING), tTMStats.GetGlobalProgressInPercent()); |
| |
692 |
604 |
else |
| |
693 |
605 |
_sntprintf(m_szData, _MAX_PATH, _T("%s"), GetResManager().LoadString(IDS_STATUSTITLE_STRING)); |
| |
694 |
606 |
|
| |
695 |
607 |
|
| |
696 |
608 |
CString strTemp; |
| |
697 |
609 |
GetWindowText(strTemp); |
| |
698 |
610 |
if (strTemp != CString(m_szData)) |
| |
699 |
611 |
SetWindowText(m_szData); |
| |
700 |
612 |
|
| |
701 |
613 |
|
| |
702 |
614 |
m_ctlProgressAll.SetPos(boost::numeric_cast<int>(tTMStats.GetGlobalProgressInPercent())); |
| |
703 |
615 |
|
| |
704 |
616 |
|
| |
705 |
617 |
strTemp=GetSizeString(tTMStats.GetProcessedSize(), m_szData, _MAX_PATH)+CString(_T("/")); |
| |
706 |
618 |
strTemp+=GetSizeString(tTMStats.GetTotalSize(), m_szData, _MAX_PATH); |
| |
707 |
|
GetDlgItem(IDC_OVERALL_PROGRESS_STATIC)->SetWindowText(strTemp); |
| |
|
619 |
GetDlgItem(IDC_GLOBALPROCESSED_STATIC)->SetWindowText(strTemp); |
| |
708 |
620 |
|
| |
709 |
621 |
|
| |
710 |
622 |
if (m_i64LastAllTasksProcessed == 0) |
| |
711 |
623 |
m_i64LastAllTasksProcessed=tTMStats.GetProcessedSize(); |
| |
712 |
624 |
|
| |
713 |
625 |
if (dwCurrentTime-m_dwLastUpdate != 0) |
| |
714 |
626 |
strTemp=GetSizeString( (static_cast<double>(tTMStats.GetProcessedSize()) - static_cast<double>(m_i64LastAllTasksProcessed))/static_cast<double>(static_cast<double>(dwCurrentTime-m_dwLastUpdate)/1000.0), m_szData, _MAX_PATH); |
| |
715 |
627 |
else |
| |
716 |
628 |
strTemp=GetSizeString( 0ULL, m_szData, _MAX_PATH); |
| |
717 |
629 |
|
| |
718 |
|
GetDlgItem(IDC_OVERALL_TRANSFER_STATIC)->SetWindowText(strTemp+_T("/s")); |
| |
|
630 |
GetDlgItem(IDC_GLOBALTRANSFER_STATIC)->SetWindowText(strTemp+_T("/s")); |
| |
719 |
631 |
m_i64LastAllTasksProcessed=tTMStats.GetProcessedSize(); |
| |
720 |
632 |
m_dwLastUpdate=dwCurrentTime; |
| |
721 |
633 |
|
| |
722 |
634 |
|
| |
723 |
635 |
if (m_ctlStatusList.GetSelectedCount() == 0) |
| |
724 |
636 |
{ |
| |
725 |
637 |
EnableControls(false); |
| |
726 |
|
m_spLastSelected.reset(); |
| |
727 |
638 |
m_i64LastProcessed=0; |
| |
728 |
639 |
} |
| |
729 |
640 |
else |
| |
730 |
641 |
EnableControls(); |
| |
731 |
642 |
|
| |
732 |
643 |
|
| |
733 |
644 |
ApplyButtonsState(); |
| |
734 |
645 |
} |
| |
735 |
646 |
|
| |
736 |
647 |
void CStatusDlg::OnSelectionChanged(NMHDR* , LRESULT* ) |
| |
737 |
648 |
{ |
| |
738 |
649 |
TRACE("Received LVN_CHANGEDSELECTION\n"); |
| |
739 |
650 |
RefreshStatus(); |
| |
740 |
651 |
} |
| |
741 |
652 |
|
| |
742 |
653 |
void CStatusDlg::OnCancel() |
| |
743 |
654 |
{ |
| |
744 |
655 |
PostCloseMessage(); |
| |
745 |
656 |
CLanguageDialog::OnCancel(); |
| |
746 |
657 |
} |
|
| |
851 |
762 |
|
| |
852 |
763 |
lvc.pszText=(PTSTR)GetResManager().LoadString(IDS_COLUMNPROGRESS_STRING); |
| |
853 |
764 |
lvc.cchTextMax = lstrlen(lvc.pszText); |
| |
854 |
765 |
lvc.cx = static_cast<int>(0.15*iWidth); |
| |
855 |
766 |
lvc.iSubItem=2; |
| |
856 |
767 |
m_ctlStatusList.InsertColumn(4, &lvc); |
| |
857 |
768 |
|
| |
858 |
769 |
RefreshStatus(); |
| |
859 |
770 |
} |
| |
860 |
771 |
|
| |
861 |
772 |
|
| |
862 |
773 |
|
| |
863 |
774 |
|
| |
864 |
775 |
|
| |
865 |
776 |
|
| |
866 |
777 |
|
| |
867 |
778 |
void CStatusDlg::PrepareResizableControls() |
| |
868 |
779 |
{ |
| |
869 |
780 |
ClearResizableControls(); |
| |
870 |
781 |
|
| |
871 |
|
AddResizableControl(IDC_001_STATIC, 0, 0, 0.5, 0.0); |
| |
|
782 |
|
| |
|
783 |
AddResizableControl(IDC_TASKLIST_LABEL_STATIC, 0, 0, 0.5, 0.0); |
| |
872 |
784 |
AddResizableControl(IDC_STATUS_LIST, 0, 0, 0.5, 1.0); |
| |
873 |
|
AddResizableControl(IDC_ROLL_UNROLL_BUTTON, 0.5, 0, 0, 0); |
| |
874 |
785 |
|
| |
|
786 |
|
| |
875 |
787 |
AddResizableControl(IDC_PAUSE_BUTTON, 0, 1.0, 0, 0); |
| |
876 |
788 |
AddResizableControl(IDC_RESTART_BUTTON, 0, 1.0, 0, 0); |
| |
877 |
789 |
AddResizableControl(IDC_RESUME_BUTTON, 0, 1.0, 0, 0); |
| |
878 |
790 |
AddResizableControl(IDC_CANCEL_BUTTON, 0, 1.0, 0, 0); |
| |
879 |
791 |
AddResizableControl(IDC_DELETE_BUTTON, 0, 1.0, 0, 0); |
| |
880 |
792 |
AddResizableControl(IDC_PAUSE_ALL_BUTTON, 0, 1.0, 0, 0); |
| |
881 |
793 |
AddResizableControl(IDC_START_ALL_BUTTON, 0, 1.0, 0, 0); |
| |
882 |
794 |
AddResizableControl(IDC_CANCEL_ALL_BUTTON, 0, 1.0, 0, 0); |
| |
883 |
795 |
AddResizableControl(IDC_REMOVE_FINISHED_BUTTON, 0, 1.0, 0, 0); |
| |
884 |
796 |
AddResizableControl(IDC_RESTART_ALL_BUTTON, 0, 1.0, 0, 0); |
| |
885 |
797 |
|
| |
886 |
|
AddResizableControl(IDC_STICK_BUTTON, 1.0, 1.0, 0, 0); |
| |
|
798 |
|
| |
|
799 |
AddResizableControl(IDC_GLOBAL_GROUP_STATIC, 0.0, 1.0, 0.5, 0); |
| |
887 |
800 |
|
| |
888 |
|
|
| |
889 |
|
AddResizableControl(IDC_014_STATIC, 0.5, 0.0, 0.0, 0); |
| |
890 |
|
AddResizableControl(IDC_015_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
801 |
AddResizableControl(IDC_GLOBALPROCESSED_LABEL_STATIC, 0.0, 1.0, 0.0, 0.0); |
| |
|
802 |
AddResizableControl(IDC_GLOBALPROCESSED_STATIC, 0.0, 1.0, 0.5, 0); |
| |
|
803 |
AddResizableControl(IDC_GLOBALTRANSFER_LABEL_STATIC, 0.0, 1.0, 0.0, 0.0); |
| |
|
804 |
AddResizableControl(IDC_GLOBALTRANSFER_STATIC, 0.0, 1.0, 0.5, 0); |
| |
|
805 |
AddResizableControl(IDC_GLOBALPROGRESS_LABEL_STATIC, 0.0, 1.0, 0.0, 0.0); |
| |
|
806 |
AddResizableControl(IDC_GLOBAL_PROGRESS, 0.0, 1.0, 0.5, 0.0); |
| |
891 |
807 |
|
| |
892 |
|
AddResizableControl(IDC_018_STATIC, 0.5, 0.0, 0.25, 0); |
| |
893 |
|
AddResizableControl(IDC_019_STATIC, 0.5, 0.0, 0.25, 0); |
| |
894 |
|
AddResizableControl(IDC_016_STATIC, 0.75, 0.0, 0.25, 0); |
| |
895 |
|
AddResizableControl(IDC_017_STATIC, 0.75, 0.0, 0.25, 0); |
| |
|
808 |
|
| |
|
809 |
AddResizableControl(IDC_TASKINFORMATION_GROUP_STATIC, 0.5, 0.0, 0.5, 0); |
| |
896 |
810 |
|
| |
897 |
|
|
| |
898 |
|
AddResizableControl(IDC_002_STATIC, 0.5, 0.0, 0.0, 0); |
| |
899 |
|
AddResizableControl(IDC_003_STATIC, 0.5, 0.0, 0.0, 0); |
| |
900 |
|
AddResizableControl(IDC_004_STATIC, 0.5, 0.0, 0.0, 0); |
| |
901 |
|
AddResizableControl(IDC_005_STATIC, 0.5, 0.0, 0.0, 0); |
| |
902 |
|
AddResizableControl(IDC_006_STATIC, 0.5, 0.0, 0.0, 0); |
| |
903 |
|
AddResizableControl(IDC_007_STATIC, 0.5, 0.0, 0.0, 0); |
| |
904 |
|
AddResizableControl(IDC_009_STATIC, 0.5, 0.0, 0.0, 0); |
| |
905 |
|
AddResizableControl(IDC_010_STATIC, 0.5, 0.0, 0.0, 0); |
| |
906 |
|
AddResizableControl(IDC_011_STATIC, 0.5, 0.0, 0.0, 0); |
| |
907 |
|
AddResizableControl(IDC_012_STATIC, 0.5, 0.0, 0.0, 0); |
| |
908 |
|
AddResizableControl(IDC_013_STATIC, 0.5, 0.0, 0.0, 0); |
| |
909 |
|
AddResizableControl(IDC_020_STATIC, 0.5, 0.0, 0.0, 0); |
| |
910 |
|
AddResizableControl(IDC_021_STATIC, 0.5, 0.0, 0.0, 0); |
| |
911 |
|
AddResizableControl(IDC_SHOW_LOG_BUTTON, 0.5, 0.0, 0.5, 0); |
| |
912 |
|
AddResizableControl(IDC_SHOW_LOG_BUTTON, 0.5, 0.0, 0.0, 0.0); |
| |
|
811 |
|
| |
|
812 |
AddResizableControl(IDC_TASKID_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
813 |
AddResizableControl(IDC_TASKID_STATIC, 0.5, 0.0, 0.5, 0); |
| |
913 |
814 |
|
| |
914 |
|
|
| |
915 |
|
AddResizableControl(IDC_ALL_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
916 |
|
AddResizableControl(IDC_TASK_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
917 |
|
|
| |
918 |
|
|
| |
919 |
|
AddResizableControl(IDC_ASSOCIATEDFILES__STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
815 |
AddResizableControl(IDC_OPERATION_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
920 |
816 |
AddResizableControl(IDC_OPERATION_STATIC, 0.5, 0.0, 0.5, 0); |
| |
921 |
|
AddResizableControl(IDC_SOURCE_STATIC, 0.5, 0.0, 0.5, 0); |
| |
922 |
|
AddResizableControl(IDC_DESTINATION_STATIC, 0.5, 0.0, 0.5, 0); |
| |
923 |
|
AddResizableControl(IDC_PROGRESS_STATIC, 0.5, 0.0, 0.5, 0); |
| |
924 |
|
AddResizableControl(IDC_TIME_STATIC, 0.5, 0.0, 0.5, 0); |
| |
925 |
|
AddResizableControl(IDC_TRANSFER_STATIC, 0.5, 0.0, 0.5, 0); |
| |
926 |
|
AddResizableControl(IDC_OVERALL_PROGRESS_STATIC, 0.5, 0.0, 0.5, 0); |
| |
927 |
|
AddResizableControl(IDC_OVERALL_TRANSFER_STATIC, 0.5, 0.0, 0.5, 0); |
| |
928 |
|
AddResizableControl(IDC_BUFFERSIZE_STATIC, 0.5, 0.0, 0.5, 0); |
| |
929 |
|
AddResizableControl(IDC_PRIORITY_STATIC, 0.5, 0.0, 0.5, 0); |
| |
930 |
817 |
|
| |
|
818 |
AddResizableControl(IDC_SOURCEOBJECT_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
819 |
AddResizableControl(IDC_SOURCEOBJECT_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
820 |
|
| |
|
821 |
AddResizableControl(IDC_DESTINATIONOBJECT_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
822 |
AddResizableControl(IDC_DESTINATIONOBJECT_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
823 |
|
| |
|
824 |
AddResizableControl(IDC_BUFFERSIZE_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
825 |
AddResizableControl(IDC_BUFFERSIZE_STATIC, 0.5, 0.0, 0.5, 0); |
| |
931 |
826 |
AddResizableControl(IDC_SET_BUFFERSIZE_BUTTON, 1.0, 0.0, 0.0, 0.0); |
| |
|
827 |
|
| |
|
828 |
AddResizableControl(IDC_THREADPRIORITY_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
829 |
AddResizableControl(IDC_THREADPRIORITY_STATIC, 0.5, 0.0, 0.5, 0); |
| |
932 |
830 |
AddResizableControl(IDC_SET_PRIORITY_BUTTON, 1.0, 0.0, 0.0, 0.0); |
| |
933 |
831 |
|
| |
|
832 |
|
| |
|
833 |
AddResizableControl(IDC_CURRENTPHASE_GROUP_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
834 |
|
| |
|
835 |
AddResizableControl(IDC_SUBTASKNAME_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
836 |
AddResizableControl(IDC_SUBTASKNAME_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
837 |
|
| |
|
838 |
AddResizableControl(IDC_SUBTASKPROCESSED_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
839 |
AddResizableControl(IDC_SUBTASKPROCESSED_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
840 |
|
| |
|
841 |
AddResizableControl(IDC_SUBTASKTIME_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
842 |
AddResizableControl(IDC_SUBTASKTIME_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
843 |
|
| |
|
844 |
AddResizableControl(IDC_SUBTASKTRANSFER_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
845 |
AddResizableControl(IDC_SUBTASKTRANSFER_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
846 |
|
| |
|
847 |
AddResizableControl(IDC_CURRENTOBJECT_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
848 |
AddResizableControl(IDC_CURRENTOBJECT_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
|
849 |
|
| |
|
850 |
AddResizableControl(IDC_SUBTASKCOUNT_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
851 |
AddResizableControl(IDC_SUBTASKCOUNT_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
|
852 |
|
| |
|
853 |
AddResizableControl(IDC_SUBTASKSIZE_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
854 |
AddResizableControl(IDC_SUBTASKSIZE_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
|
855 |
|
| |
|
856 |
|
| |
|
857 |
AddResizableControl(IDC_ENTIRETASK_GROUP_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
858 |
|
| |
|
859 |
AddResizableControl(IDC_TASKPROCESSED_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
860 |
AddResizableControl(IDC_TASKPROCESSED_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
861 |
|
| |
|
862 |
AddResizableControl(IDC_TASKTIME_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
863 |
AddResizableControl(IDC_TASKTIME_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
864 |
|
| |
|
865 |
AddResizableControl(IDC_TASKTRANSFER_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
866 |
AddResizableControl(IDC_TASKTRANSFER_STATIC, 0.5, 0.0, 0.5, 0); |
| |
|
867 |
|
| |
|
868 |
AddResizableControl(IDC_TASKCOUNT_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
869 |
AddResizableControl(IDC_TASKCOUNT_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
|
870 |
|
| |
|
871 |
AddResizableControl(IDC_TASKSIZE_LABEL_STATIC, 0.5, 0.0, 0.0, 0); |
| |
|
872 |
AddResizableControl(IDC_TASKSIZE_PROGRESS, 0.5, 0.0, 0.5, 0); |
| |
|
873 |
|
| |
|
874 |
AddResizableControl(IDC_SHOW_LOG_BUTTON, 1.0, 0.0, 0.0, 0); |
| |
|
875 |
AddResizableControl(IDC_STICK_BUTTON, 1.0, 1.0, 0, 0); |
| |
|
876 |
|
| |
934 |
877 |
InitializeResizableControls(); |
| |
935 |
878 |
} |
| |
936 |
879 |
|
| |
937 |
880 |
CString CStatusDlg::GetStatusString(const chcore::TASK_DISPLAY_DATA& rTaskDisplayData) |
| |
938 |
881 |
{ |
| |
939 |
882 |
CString strStatusText; |
| |
940 |
883 |
|
| |
941 |
884 |
|
| |
942 |
885 |
switch(rTaskDisplayData.m_eTaskState) |
| |
943 |
886 |
{ |
| |
944 |
887 |
case chcore::eTaskState_Error: |
| |
945 |
888 |
{ |
| |
946 |
889 |
strStatusText = GetResManager().LoadString(IDS_STATUS_ERROR_STRING); |
| |
947 |
890 |
strStatusText += _T("/"); |
| |
948 |
891 |
break; |
| |
949 |
892 |
} |
| |
950 |
893 |
case chcore::eTaskState_Paused: |
| |
951 |
894 |
{ |
| |
952 |
895 |
strStatusText = GetResManager().LoadString(IDS_STATUS_PAUSED_STRING); |
| |
953 |
896 |
strStatusText += _T("/"); |
|
| |
998 |
941 |
else |
| |
999 |
942 |
strStatusText += GetResManager().LoadString(IDS_STATUS_UNKNOWN_STRING); |
| |
1000 |
943 |
|
| |
1001 |
944 |
if(rTaskDisplayData.m_pafFilters && !rTaskDisplayData.m_pafFilters->IsEmpty()) |
| |
1002 |
945 |
strStatusText += GetResManager().LoadString(IDS_FILTERING_STRING); |
| |
1003 |
946 |
|
| |
1004 |
947 |
|
| |
1005 |
948 |
if(rTaskDisplayData.m_bIgnoreDirectories) |
| |
1006 |
949 |
{ |
| |
1007 |
950 |
strStatusText += _T("/"); |
| |
1008 |
951 |
strStatusText += GetResManager().LoadString(IDS_STATUS_ONLY_FILES_STRING); |
| |
1009 |
952 |
} |
| |
1010 |
953 |
if(rTaskDisplayData.m_bCreateEmptyFiles) |
| |
1011 |
954 |
{ |
| |
1012 |
955 |
strStatusText += _T("/"); |
| |
1013 |
956 |
strStatusText += GetResManager().LoadString(IDS_STATUS_WITHOUT_CONTENTS_STRING); |
| |
1014 |
957 |
} |
| |
1015 |
958 |
|
| |
1016 |
959 |
return strStatusText; |
| |
1017 |
960 |
} |
| |
|
961 |
|
| |
|
962 |
void CStatusDlg::SetTaskListEntry(const chcore::TASK_DISPLAY_DATA &td, int nPos, const chcore::TTaskPtr& spTask) |
| |
|
963 |
{ |
| |
|
964 |
|
| |
|
965 |
CString strStatusText = GetStatusString(td); |
| |
|
966 |
CString strTemp; |
| |
|
967 |
LVITEM lvi; |
| |
|
968 |
lvi.mask = LVIF_TEXT | LVIF_PARAM | LVIF_IMAGE; |
| |
|
969 |
lvi.iItem = nPos; |
| |
|
970 |
lvi.iSubItem = 0; |
| |
|
971 |
lvi.pszText = (PTSTR)(PCTSTR)strStatusText; |
| |
|
972 |
lvi.cchTextMax = lstrlen(lvi.pszText); |
| |
|
973 |
lvi.lParam = spTask->GetSessionUniqueID(); |
| |
|
974 |
lvi.iImage = GetImageFromStatus(td.m_eTaskState); |
| |
|
975 |
if (nPos < m_ctlStatusList.GetItemCount()) |
| |
|
976 |
m_ctlStatusList.SetItem(&lvi); |
| |
|
977 |
else |
| |
|
978 |
m_ctlStatusList.InsertItem(&lvi); |
| |
|
979 |
|
| |
|
980 |
|
| |
|
981 |
lvi.mask=LVIF_TEXT; |
| |
|
982 |
lvi.iSubItem=1; |
| |
|
983 |
if(td.m_strFileName.IsEmpty()) |
| |
|
984 |
strTemp = GetResManager().LoadString(IDS_NONEINPUTFILE_STRING); |
| |
|
985 |
else |
| |
|
986 |
strTemp = td.m_strFileName; |
| |
|
987 |
lvi.pszText=strTemp.GetBuffer(0); |
| |
|
988 |
strTemp.ReleaseBuffer(); |
| |
|
989 |
lvi.cchTextMax=lstrlen(lvi.pszText); |
| |
|
990 |
m_ctlStatusList.SetItem(&lvi); |
| |
|
991 |
|
| |
|
992 |
|
| |
|
993 |
lvi.iSubItem=2; |
| |
|
994 |
strTemp = td.m_pathDstPath.ToString(); |
| |
|
995 |
lvi.pszText=strTemp.GetBuffer(0); |
| |
|
996 |
strTemp.ReleaseBuffer(); |
| |
|
997 |
lvi.cchTextMax=lstrlen(lvi.pszText); |
| |
|
998 |
m_ctlStatusList.SetItem(&lvi); |
| |
|
999 |
|
| |
|
1000 |
|
| |
|
1001 |
lvi.iSubItem=3; |
| |
|
1002 |
_itot(boost::numeric_cast<int>(td.m_dPercent), m_szData, 10); |
| |
|
1003 |
_tcscat(m_szData, _T(" %")); |
| |
|
1004 |
lvi.pszText=m_szData; |
| |
|
1005 |
lvi.cchTextMax=lstrlen(lvi.pszText); |
| |
|
1006 |
m_ctlStatusList.SetItem(&lvi); |
| |
|
1007 |
} |
| |
|
1008 |
|
| |
|
1009 |
CString CStatusDlg::GetProcessedText(unsigned long long ullProcessedCount, unsigned long long ullTotalCount, unsigned long long ullProcessedSize, unsigned long long ullTotalSize) |
| |
|
1010 |
{ |
| |
|
1011 |
CString strTemp; |
| |
|
1012 |
_sntprintf(m_szData, _MAX_PATH, _T("%ld/%ld ("), ullProcessedCount, ullTotalCount); |
| |
|
1013 |
strTemp = CString(m_szData); |
| |
|
1014 |
strTemp += GetSizeString(ullProcessedSize, m_szData, _MAX_PATH) + CString(_T("/")); |
| |
|
1015 |
strTemp += GetSizeString(ullTotalSize, m_szData, _MAX_PATH) + CString(_T(")")); |
| |
|
1016 |
return strTemp; |
| |
|
1017 |
} |
| |
|
1018 |
|
| |
|
1019 |
void CStatusDlg::UpdateTaskStatsDetails(chcore::TASK_DISPLAY_DATA &td, DWORD dwCurrentTime) |
| |
|
1020 |
{ |
| |
|
1021 |
chcore::TSubTaskStatsSnapshot& tSubTaskStats = td.m_tTaskSnapshot.GetCurrentSubTaskStats(); |
| |
|
1022 |
|
| |
|
1023 |
|
| |
|
1024 |
CString strProcessedText = GetProcessedText(tSubTaskStats.GetProcessedCount(), tSubTaskStats.GetTotalCount(), tSubTaskStats.GetProcessedSize(), tSubTaskStats.GetTotalSize()); |
| |
|
1025 |
GetDlgItem(IDC_SUBTASKPROCESSED_STATIC)->SetWindowText(strProcessedText); |
| |
|
1026 |
|
| |
|
1027 |
|
| |
|
1028 |
m_ctlCurrentObjectProgress.SetProgress(tSubTaskStats.GetCurrentItemProcessedSize(), tSubTaskStats.GetCurrentItemTotalSize()); |
| |
|
1029 |
m_ctlSubTaskCountProgress.SetProgress(tSubTaskStats.GetProcessedCount(), tSubTaskStats.GetTotalCount()); |
| |
|
1030 |
m_ctlSubTaskSizeProgress.SetProgress(tSubTaskStats.GetProcessedSize(), tSubTaskStats.GetTotalSize()); |
| |
|
1031 |
|
| |
|
1032 |
|
| |
|
1033 |
unsigned long long timeTotalEstimated = tSubTaskStats.GetEstimatedTotalTime(); |
| |
|
1034 |
unsigned long long timeElapsed = tSubTaskStats.GetTimeElapsed(); |
| |
|
1035 |
unsigned long long timeRemaining = timeTotalEstimated - timeElapsed; |
| |
|
1036 |
|
| |
|
1037 |
FormatTimeMiliseconds(timeElapsed, m_szTimeBuffer1, 40); |
| |
|
1038 |
FormatTimeMiliseconds(timeTotalEstimated, m_szTimeBuffer2, 40); |
| |
|
1039 |
FormatTimeMiliseconds(timeRemaining, m_szTimeBuffer3, 40); |
| |
|
1040 |
|
| |
|
1041 |
_sntprintf(m_szData, _MAX_PATH, _T("%s / %s (%s)"), m_szTimeBuffer1, m_szTimeBuffer2, m_szTimeBuffer3); |
| |
|
1042 |
|
| |
|
1043 |
GetDlgItem(IDC_SUBTASKTIME_STATIC)->SetWindowText(m_szData); |
| |
|
1044 |
|
| |
|
1045 |
|
| |
|
1046 |
CString strSizeSpeed; |
| |
|
1047 |
CString strCountSpeed; |
| |
|
1048 |
|
| |
|
1049 |
GetSizeString(tSubTaskStats.GetSizeSpeed(), m_szData, _MAX_PATH); |
| |
|
1050 |
strSizeSpeed = m_szData; |
| |
|
1051 |
GetSizeString(tSubTaskStats.GetAvgSizeSpeed(), m_szData, _MAX_PATH); |
| |
|
1052 |
strSizeSpeed.AppendFormat(_T("/s (a: %s/s)"), m_szData); |
| |
|
1053 |
|
| |
|
1054 |
strCountSpeed.Format(_T("%.2f/s (a: %.2f/s)"), tSubTaskStats.GetCountSpeed(), tSubTaskStats.GetAvgCountSpeed()); |
| |
|
1055 |
GetDlgItem(IDC_SUBTASKTRANSFER_STATIC)->SetWindowText(strSizeSpeed + _T("; ") + strCountSpeed); |
| |
|
1056 |
|
| |
|
1057 |
|
| |
|
1058 |
|
| |
|
1059 |
CString strStatusText = GetStatusString(td); |
| |
|
1060 |
GetDlgItem(IDC_OPERATION_STATIC)->SetWindowText(strStatusText); |
| |
|
1061 |
|
| |
|
1062 |
if(td.m_strFullFilePath.IsEmpty()) |
| |
|
1063 |
GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(GetResManager().LoadString(IDS_NONEINPUTFILE_STRING)); |
| |
|
1064 |
else |
| |
|
1065 |
GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(td.m_strFullFilePath); |
| |
|
1066 |
|
| |
|
1067 |
|
| |
|
1068 |
strProcessedText = GetProcessedText(td.m_stIndex, td.m_stSize, td.m_ullProcessedSize, td.m_ullSizeAll); |
| |
|
1069 |
GetDlgItem(IDC_TASKPROCESSED_STATIC)->SetWindowText(strProcessedText); |
| |
|
1070 |
|
| |
|
1071 |
|
| |
|
1072 |
CString strSpeedText; |
| |
|
1073 |
if (m_i64LastProcessed == 0) |
| |
|
1074 |
strSpeedText=GetSizeString( td.m_timeElapsed ? td.m_ullProcessedSize/td.m_timeElapsed : 0, m_szData, _MAX_PATH); |
| |
|
1075 |
else |
| |
|
1076 |
{ |
| |
|
1077 |
if ( (dwCurrentTime-m_dwLastUpdate) != 0) |
| |
|
1078 |
strSpeedText=GetSizeString( (static_cast<double>(td.m_ullProcessedSize) - static_cast<double>(m_i64LastProcessed))/(static_cast<double>(dwCurrentTime-m_dwLastUpdate)/1000.0), m_szData, _MAX_PATH); |
| |
|
1079 |
else |
| |
|
1080 |
strSpeedText=GetSizeString( 0ULL, m_szData, _MAX_PATH); |
| |
|
1081 |
} |
| |
|
1082 |
|
| |
|
1083 |
|
| |
|
1084 |
GetDlgItem(IDC_TASKTRANSFER_STATIC)->SetWindowText(strSpeedText+_T("/s (")+CString(GetResManager().LoadString(IDS_AVERAGEWORD_STRING)) |
| |
|
1085 |
+CString(GetSizeString(td.m_timeElapsed ? td.m_ullProcessedSize/td.m_timeElapsed : 0, m_szData, _MAX_PATH))+_T("/s )") |
| |
|
1086 |
); |
| |
|
1087 |
|
| |
|
1088 |
|
| |
|
1089 |
FormatTime(td.m_timeElapsed, m_szTimeBuffer1, 40); |
| |
|
1090 |
time_t timeTotal = (td.m_ullProcessedSize == 0) ? 0 : (long)(td.m_ullSizeAll * td.m_timeElapsed / td.m_ullProcessedSize); |
| |
|
1091 |
FormatTime(timeTotal, m_szTimeBuffer2, 40); |
| |
|
1092 |
FormatTime(std::max((time_t)0l, timeTotal - td.m_timeElapsed), m_szTimeBuffer3, 40); |
| |
|
1093 |
|
| |
|
1094 |
_sntprintf(m_szData, _MAX_PATH, _T("%s / %s (%s)"), m_szTimeBuffer1, m_szTimeBuffer2, m_szTimeBuffer3); |
| |
|
1095 |
GetDlgItem(IDC_TASKTIME_STATIC)->SetWindowText(m_szData); |
| |
|
1096 |
|
| |
|
1097 |
|
| |
|
1098 |
m_i64LastProcessed=td.m_ullProcessedSize; |
| |
|
1099 |
|
| |
|
1100 |
|
| |
|
1101 |
m_ctlTaskCountProgress.SetPos(boost::numeric_cast<int>(td.m_dPercent)); |
| |
|
1102 |
|
| |
|
1103 |
SetBufferSizesString(td.m_iCurrentBufferSize, td.m_iCurrentBufferIndex); |
| |
|
1104 |
|
| |
|
1105 |
GetDlgItem(IDC_DESTINATIONOBJECT_STATIC)->SetWindowText(td.m_pathDstPath.ToString()); |
| |
|
1106 |
GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(td.m_nPriority))); |
| |
|
1107 |
GetDlgItem(IDC_TASKID_STATIC)->SetWindowText(td.m_strUniqueName); |
| |
|
1108 |
} |