Clone
ixen
committed
on 10 Dec 20
Removed rarely needed buttons from status dialog in favor of using those functionalities through context menu (CH-368).
src/ch/StatusDlg.cpp (+6 -43)
55 55 }
56 56
57 57 void CStatusDlg::DoDataExchange(CDataExchange* pDX)
58 58 {
59 59         CLanguageDialog::DoDataExchange(pDX);
60 60         DDX_Control(pDX, IDC_TASKCOUNT_PROGRESS, m_ctlTaskCountProgress);
61 61         DDX_Control(pDX, IDC_TASKSIZE_PROGRESS, m_ctlTaskSizeProgress);
62 62         DDX_Control(pDX, IDC_CURRENTOBJECT_PROGRESS, m_ctlCurrentObjectProgress);
63 63         DDX_Control(pDX, IDC_SUBTASKCOUNT_PROGRESS, m_ctlSubTaskCountProgress);
64 64         DDX_Control(pDX, IDC_SUBTASKSIZE_PROGRESS, m_ctlSubTaskSizeProgress);
65 65         DDX_Control(pDX, IDC_GLOBAL_PROGRESS, m_ctlProgressAll);
66 66         DDX_Control(pDX, IDC_STATUS_LIST, m_ctlStatusList);
67 67 }
68 68
69 69 BEGIN_MESSAGE_MAP(CStatusDlg,ictranslate::CLanguageDialog)
70 70         //{{AFX_MSG_MAP(CStatusDlg)
71 71         ON_WM_TIMER()
72 72         ON_BN_CLICKED(IDC_PAUSE_BUTTON, OnPauseButton)
73 73         ON_BN_CLICKED(IDC_CANCEL_BUTTON, OnCancelButton)
74 74         ON_BN_CLICKED(IDC_SET_PRIORITY_BUTTON, OnSetPriorityButton)
75           ON_BN_CLICKED(IDC_TASK_ADVANCED_BUTTON, OnTaskAdvancedOptions)
76 75         ON_BN_CLICKED(IDC_SET_BUFFERSIZE_BUTTON, OnSetBuffersizeButton)
77           ON_BN_CLICKED(IDC_START_ALL_BUTTON, OnStartAllButton)
78 76         ON_BN_CLICKED(IDC_RESTART_BUTTON, OnRestartButton)
79 77         ON_BN_CLICKED(IDC_DELETE_BUTTON, OnDeleteButton)
80           ON_BN_CLICKED(IDC_PAUSE_ALL_BUTTON, OnPauseAllButton)
81           ON_BN_CLICKED(IDC_RESTART_ALL_BUTTON, OnRestartAllButton)
82           ON_BN_CLICKED(IDC_CANCEL_ALL_BUTTON, OnCancelAllButton)
83 78         ON_BN_CLICKED(IDC_REMOVE_FINISHED_BUTTON, OnRemoveFinishedButton)
84 79         ON_NOTIFY(LVN_KEYDOWN, IDC_STATUS_LIST, OnKeydownStatusList)
85 80         ON_NOTIFY(LVN_CHANGEDSELECTION, IDC_STATUS_LIST, OnSelectionChanged)
86 81         ON_NOTIFY(NM_RCLICK, IDC_STATUS_LIST, OnStatusListRClick)
87 82         ON_BN_CLICKED(IDC_SHOW_LOG_BUTTON, OnShowLogButton)
88 83         ON_BN_CLICKED(IDC_STICK_BUTTON, OnStickButton)
89 84         ON_BN_CLICKED(IDC_RESUME_BUTTON, OnResumeButton)
90 85         //}}AFX_MSG_MAP
91 86 END_MESSAGE_MAP()
92 87
93 88 /////////////////////////////////////////////////////////////////////////////
94 89 // CStatusDlg message handlers
95 90
96 91 BOOL CStatusDlg::OnInitDialog()
97 92 {
98 93         CLanguageDialog::OnInitDialog();
99 94
100 95         PrepareResizableControls();
101 96
102 97         // set dialog icon
 
197 192                                 bSelected = true;
198 193                                 break;
199 194                         }
200 195                 }
201 196
202 197                 stIndex++;
203 198         }
204 199
205 200         if(!bSelected && m_pTasks->GetSize() > 0)
206 201         {
207 202                 stIndex = m_pTasks->GetSize() - 1;
208 203                 m_ctlStatusList.SetItemState(boost::numeric_cast<int>(stIndex), LVIS_SELECTED, LVIS_SELECTED);
209 204         }
210 205 }
211 206
212 207 void CStatusDlg::EnableControls(bool bEnable)
213 208 {
214 209         // enable/disable controls
215 210         GetDlgItem(IDC_SET_BUFFERSIZE_BUTTON)->EnableWindow(bEnable);
216 211         GetDlgItem(IDC_SET_PRIORITY_BUTTON)->EnableWindow(bEnable);
217           GetDlgItem(IDC_TASK_ADVANCED_BUTTON)->EnableWindow(bEnable);
218 212
219 213         if (!bEnable)
220 214         {
221 215                 GetDlgItem(IDC_TASKID_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTASKID_STRING));
222 216
223 217                 GetDlgItem(IDC_OPERATION_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYOPERATIONTEXT_STRING));
224 218                 GetDlgItem(IDC_SOURCEOBJECT_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSOURCETEXT_STRING));
225 219                 GetDlgItem(IDC_DESTINATIONOBJECT_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYDESTINATIONTEXT_STRING));
226 220                 GetDlgItem(IDC_BUFFERSIZE_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYBUFFERSIZETEXT_STRING));
227 221                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPRIORITYTEXT_STRING));
228 222                 
229 223                 // subtask
230 224                 GetDlgItem(IDC_SUBTASKNAME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYSUBTASKNAME_STRING));
231 225                 GetDlgItem(IDC_SUBTASKPROCESSED_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPROCESSEDTEXT_STRING));
232 226                 GetDlgItem(IDC_SUBTASKTIME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTIMETEXT_STRING));
233 227                 GetDlgItem(IDC_SUBTASKTRANSFER_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTRANSFERTEXT_STRING));
234 228
235 229                 GetDlgItem(IDC_TASKPROCESSED_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYPROCESSEDTEXT_STRING));
236 230                 GetDlgItem(IDC_TASKTRANSFER_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTRANSFERTEXT_STRING));
237 231                 GetDlgItem(IDC_TASKTIME_STATIC)->SetWindowText(GetResManager().LoadString(IDS_EMPTYTIMETEXT_STRING));
 
342 336         CMenu menu;
343 337         HMENU hMenu=GetResManager().LoadMenu(MAKEINTRESOURCE(IDR_PRIORITY_MENU));
344 338         if (!menu.Attach(hMenu))
345 339         {
346 340                 DestroyMenu(hMenu);
347 341                 return;
348 342         }
349 343         
350 344         CMenu* pPopup = menu.GetSubMenu(0);
351 345         ASSERT(pPopup != nullptr);
352 346         if(pPopup)
353 347         {
354 348                 // set point in which to set menu
355 349                 CRect rect;
356 350                 GetDlgItem(IDC_SET_PRIORITY_BUTTON)->GetWindowRect(&rect);
357 351
358 352                 pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, rect.right+1, rect.top, this);
359 353         }
360 354 }
361 355
362   void CStatusDlg::OnTaskAdvancedOptions()
363   {
364           CMenu menu;
365           HMENU hMenu = GetResManager().LoadMenu(MAKEINTRESOURCE(IDR_TASK_ADVANCED_MENU));
366           if(!menu.Attach(hMenu))
367           {
368                   DestroyMenu(hMenu);
369                   return;
370           }
371  
372           CMenu* pPopup = menu.GetSubMenu(0);
373           ASSERT(pPopup != nullptr);
374           if(pPopup)
375           {
376                   // set point in which to set menu
377                   CRect rect;
378                   GetDlgItem(IDC_TASK_ADVANCED_BUTTON)->GetWindowRect(&rect);
379  
380                   pPopup->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, rect.right + 1, rect.top, this);
381           }
382   }
383  
384 356 BOOL CStatusDlg::OnCommand(WPARAM wParam, LPARAM lParam)
385 357 {
386 358         if (HIWORD(wParam) == 0)
387 359         {
388 360                 if (LOWORD(wParam) >= ID_POPUP_TIME_CRITICAL && LOWORD(wParam) <= ID_POPUP_IDLE)
389 361                 {
390 362                         // processing priority
391 363                         chengine::TTaskPtr spSelectedTask = GetSelectedItemPointer();
392 364
393 365                         if(spSelectedTask == nullptr)
394 366                                 return ictranslate::CLanguageDialog::OnCommand(wParam, lParam);
395 367                         
396 368                         switch (LOWORD(wParam))
397 369                         {
398 370                         case ID_POPUP_TIME_CRITICAL:
399 371                                 spSelectedTask->SetPriority(THREAD_PRIORITY_TIME_CRITICAL);
400 372                                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_TIME_CRITICAL)));
401 373                                 break;
402 374                         case ID_POPUP_HIGHEST:
403 375                                 spSelectedTask->SetPriority(THREAD_PRIORITY_HIGHEST);
 
408 380                                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_ABOVE_NORMAL)));
409 381                                 break;
410 382                         case ID_POPUP_NORMAL:
411 383                                 spSelectedTask->SetPriority(THREAD_PRIORITY_NORMAL);
412 384                                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_NORMAL)));
413 385                                 break;
414 386                         case ID_POPUP_BELOW_NORMAL:
415 387                                 spSelectedTask->SetPriority(THREAD_PRIORITY_BELOW_NORMAL);
416 388                                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_BELOW_NORMAL)));
417 389                                 break;
418 390                         case ID_POPUP_LOWEST:
419 391                                 spSelectedTask->SetPriority(THREAD_PRIORITY_LOWEST);
420 392                                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_LOWEST)));
421 393                                 break;
422 394                         case ID_POPUP_IDLE:
423 395                                 spSelectedTask->SetPriority(THREAD_PRIORITY_IDLE);
424 396                                 GetDlgItem(IDC_THREADPRIORITY_STATIC)->SetWindowText(GetResManager().LoadString(IDS_PRIORITY0_STRING+PriorityToIndex(THREAD_PRIORITY_IDLE)));
425 397                                 break;
426 398                         }
427 399                 }
428                   else if(LOWORD(wParam) == ID_POPUP_RESET_APPLY_TO_ALL)
429                   {
430                           OnResetUserFeedback();
431 400         }
432           }
433 401         return ictranslate::CLanguageDialog::OnCommand(wParam, lParam);
434 402 }
435 403
436 404 void CStatusDlg::OnResetUserFeedback()
437 405 {
438 406         chengine::TTaskPtr spSelectedTask = GetSelectedItemPointer();
439 407
440 408         if(spSelectedTask)
441 409                 spSelectedTask->RestoreFeedbackDefaults();
442 410 }
443 411
444 412 void CStatusDlg::OnPauseButton()
445 413 {
446 414         chengine::TTaskPtr spTask = GetSelectedItemPointer();
447 415         if(spTask)
448 416         {
449 417                 TRACE("PauseProcessing call...\n");
450 418                 spTask->PauseProcessing();
451 419
452 420                 RefreshStatus();
 
705 673         case ID_TASK_MENU_PAUSE:
706 674                 OnPauseButton();
707 675                 break;
708 676         case ID_TASK_MENU_RESUME:
709 677                 OnResumeButton();
710 678                 break;
711 679         case ID_TASK_MENU_RESTART:
712 680                 OnRestartButton();
713 681                 break;
714 682         case ID_TASK_MENU_CANCEL:
715 683                 OnCancelButton();
716 684                 break;
717 685         case ID_TASK_MENU_REMOVE:
718 686                 OnDeleteButton();
719 687                 break;
720 688         case ID_TASK_MENU_RESET_FEEDBACK:
721 689                 OnResetUserFeedback();
722 690                 break;
723 691
724 692         case ID_TASK_MENU_PAUSE_ALL:
725                   m_pTasks->TasksPauseProcessing();
  693                 OnPauseAllButton();
726 694                 break;
727 695         case ID_TASK_MENU_RESUME_ALL:
728                   m_pTasks->TasksResumeProcessing();
  696                 OnStartAllButton();
729 697                 break;
730 698         case ID_TASK_MENU_RESTART_ALL:
731                   m_pTasks->TasksRestartProcessing();
  699                 OnRestartAllButton();
732 700                 break;
733 701         case ID_TASK_MENU_CANCEL_ALL:
734                   m_pTasks->TasksCancelProcessing();
  702                 OnCancelAllButton();
735 703                 break;
736 704         case ID_TASK_MENU_REMOVE_INACTIVE:
737                   m_pTasks->RemoveAllFinished();
  705                 OnRemoveFinishedButton();
738 706                 break;
739 707         }
740 708 }
741 709
742 710 void CStatusDlg::OnCancel()
743 711 {
744 712         PostCloseMessage();
745 713         CLanguageDialog::OnCancel();
746 714 }
747 715
748 716 void CStatusDlg::OnShowLogButton()
749 717 {
750 718         // show log
751 719         chengine::TTaskPtr spTask = GetSelectedItemPointer();
752 720         if(!spTask)
753 721                 return;
754 722
755 723         chcore::TSmartPath logPath = spTask->GetLogPath();
756 724         chengine::TLocalFilesystem localFilesystem(GetLogFileData());
757 725         if(!localFilesystem.PathExist(logPath))
 
860 828         lvc.cchTextMax = lstrlen(lvc.pszText);
861 829         lvc.cx = static_cast<int>(0.15*iWidth);
862 830         lvc.iSubItem=2;
863 831         m_ctlStatusList.InsertColumn(4, &lvc);
864 832
865 833         RefreshStatus();
866 834 }
867 835
868 836 // ============================================================================
869 837 /// CStatusDlg::PrepareResizableControls
870 838 /// @date 2009/04/18
871 839 ///
872 840 /// @brief     Prepares the resizable controls.
873 841 // ============================================================================
874 842 void CStatusDlg::PrepareResizableControls()
875 843 {
876 844         ClearResizableControls();
877 845
878 846         // left part of dialog (task list)
879 847         AddResizableControl(IDC_TASKLIST_LABEL_STATIC, 0, 0, 0.5, 0.0);
  848         AddResizableControl(IDC_REMOVE_FINISHED_BUTTON, 0.5, 0.0, 0.0, 0);
880 849         AddResizableControl(IDC_STATUS_LIST, 0, 0, 0.5, 1.0);
881 850
882 851         // left part of dialog (buttons under the task list)
883 852         AddResizableControl(IDC_PAUSE_BUTTON, 0, 1.0, 0, 0);
884 853         AddResizableControl(IDC_RESTART_BUTTON, 0, 1.0, 0, 0);
885 854         AddResizableControl(IDC_RESUME_BUTTON, 0, 1.0, 0, 0);
886 855         AddResizableControl(IDC_CANCEL_BUTTON, 0, 1.0, 0, 0);
887 856         AddResizableControl(IDC_DELETE_BUTTON, 0, 1.0, 0, 0);
888           AddResizableControl(IDC_PAUSE_ALL_BUTTON, 0, 1.0, 0, 0);
889           AddResizableControl(IDC_START_ALL_BUTTON, 0, 1.0, 0, 0);
890           AddResizableControl(IDC_CANCEL_ALL_BUTTON, 0, 1.0, 0, 0);
891           AddResizableControl(IDC_REMOVE_FINISHED_BUTTON, 0, 1.0, 0, 0);
892           AddResizableControl(IDC_RESTART_ALL_BUTTON, 0, 1.0, 0, 0);
893           AddResizableControl(IDC_TASK_ADVANCED_BUTTON, 0, 1.0, 0, 0);
894 857
895 858         // left part of dialog (global stats)
896 859         AddResizableControl(IDC_GLOBAL_GROUP_STATIC, 0.0, 1.0, 0.5, 0);
897 860
898 861         AddResizableControl(IDC_GLOBALPROCESSED_LABEL_STATIC, 0.0, 1.0, 0.0, 0.0);
899 862         AddResizableControl(IDC_GLOBALPROCESSED_STATIC, 0.0, 1.0, 0.5, 0);
900 863         AddResizableControl(IDC_GLOBALTRANSFER_LABEL_STATIC, 0.0, 1.0, 0.0, 0.0);
901 864         AddResizableControl(IDC_GLOBALTRANSFER_STATIC, 0.0, 1.0, 0.5, 0);
902 865         AddResizableControl(IDC_GLOBALPROGRESS_LABEL_STATIC, 0.0, 1.0, 0.0, 0.0);
903 866         AddResizableControl(IDC_GLOBAL_PROGRESS, 0.0, 1.0, 0.5, 0.0);
904 867
905 868         // right part of dialog  (task info)
906 869         AddResizableControl(IDC_TASKINFORMATION_GROUP_STATIC, 0.5, 0.0, 0.5, 0);
907 870
908 871         // right part of dialog (subsequent entries)
909 872         AddResizableControl(IDC_TASKID_LABEL_STATIC, 0.5, 0.0, 0.0, 0);
910 873         AddResizableControl(IDC_TASKID_STATIC, 0.5, 0.0, 0.5, 0);
911 874
912 875         AddResizableControl(IDC_OPERATION_LABEL_STATIC, 0.5, 0.0, 0.0, 0);
913 876         AddResizableControl(IDC_OPERATION_STATIC, 0.5, 0.0, 0.5, 0);