X-Git-Url: http://git.sourceforge.jp/view?p=tortoisegit%2FTortoiseGitJp.git;a=blobdiff_plain;f=src%2FTortoiseProc%2FProgressDlg.cpp;h=ce8ff32e8540950c5b02f4a7976ba6bda4e4d8fa;hp=0335b44f7ef8965e61a4eddbbcbcf43e697f6eab;hb=28b0c304b0ab86373dc423c7e07a978387e86f74;hpb=c724fa393ac4f23e81b0e503e624cdc7f83eb920;ds=sidebyside diff --git a/src/TortoiseProc/ProgressDlg.cpp b/src/TortoiseProc/ProgressDlg.cpp index 0335b44..ce8ff32 100644 --- a/src/TortoiseProc/ProgressDlg.cpp +++ b/src/TortoiseProc/ProgressDlg.cpp @@ -11,7 +11,7 @@ IMPLEMENT_DYNAMIC(CProgressDlg, CResizableStandAloneDialog) CProgressDlg::CProgressDlg(CWnd* pParent /*=NULL*/) - : CResizableStandAloneDialog(CProgressDlg::IDD, pParent), m_bShowCommand(true), m_bAutoCloseOnSuccess(false) + : CResizableStandAloneDialog(CProgressDlg::IDD, pParent), m_bShowCommand(true), m_bAutoCloseOnSuccess(false), m_bAbort(false) { } @@ -131,7 +131,7 @@ UINT CProgressDlg::ProgressThread() WaitForSingleObject(pi.hProcess, INFINITE); DWORD status=0; - if(!GetExitCodeProcess(pi.hProcess,&status)) + if(!GetExitCodeProcess(pi.hProcess,&status) || m_bAbort) { CloseHandle(pi.hProcess); @@ -164,8 +164,17 @@ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) m_Animate.Stop(); m_Progress.SetPos(100); this->DialogEnableWindow(IDOK,TRUE); - if(m_bAutoCloseOnSuccess && wParam == MSG_PROGRESSDLG_END) - EndDialog(IDOK); + if(wParam == MSG_PROGRESSDLG_END) + { + if(m_bAutoCloseOnSuccess) + EndDialog(IDOK); + if(m_changeAbortButtonOnSuccessTo.IsEmpty()) + { + GetDlgItem(IDCANCEL)->SetWindowText(m_changeAbortButtonOnSuccessTo); + } + } + else + DialogEnableWindow(IDCANCEL, FALSE); } if(lParam != 0) @@ -244,3 +253,8 @@ void CProgressDlg::OnBnClickedOk() m_Log.GetWindowText(this->m_LogText); OnOK(); } + +void CProgressDlg::OnCancel() +{ + m_bAbort = true; +}