OSDN Git Service

ProgressDlg, Pull: Took m_GitStatus into account for detecting problems.
authorJohan 't Hart <johanthart@gmail.com>
Thu, 4 Jun 2009 22:47:47 +0000 (00:47 +0200)
committerJohan 't Hart <johanthart@gmail.com>
Thu, 4 Jun 2009 23:00:57 +0000 (01:00 +0200)
Also made Abort button text change work

src/TortoiseProc/Commands/PullCommand.cpp
src/TortoiseProc/ProgressDlg.cpp
src/TortoiseProc/ProgressDlg.h

index 116039f..33c6978 100644 (file)
@@ -47,7 +47,8 @@ bool PullCommand::Execute()
 \r
                        if(hashOld == hashNew)\r
                        {\r
-                               CMessageBox::Show(NULL, L"Already up to date.", L"Pull", MB_OK | MB_ICONINFORMATION);\r
+                               if(progress.m_GitStatus == 0)\r
+                                       CMessageBox::Show(NULL, L"Already up to date.", L"Pull", MB_OK | MB_ICONINFORMATION);\r
                                return TRUE;\r
                        }\r
 \r
index ce8ff32..7c416be 100644 (file)
@@ -11,7 +11,7 @@
 IMPLEMENT_DYNAMIC(CProgressDlg, CResizableStandAloneDialog)\r
 \r
 CProgressDlg::CProgressDlg(CWnd* pParent /*=NULL*/)\r
-       : CResizableStandAloneDialog(CProgressDlg::IDD, pParent), m_bShowCommand(true), m_bAutoCloseOnSuccess(false), m_bAbort(false)\r
+       : CResizableStandAloneDialog(CProgressDlg::IDD, pParent), m_bShowCommand(true), m_bAutoCloseOnSuccess(false), m_bAbort(false), m_bDone(false)\r
 {\r
 \r
 }\r
@@ -161,14 +161,15 @@ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam)
        }\r
        if(wParam == MSG_PROGRESSDLG_END || wParam == MSG_PROGRESSDLG_FAILED)\r
        {\r
+               m_bDone = true;\r
                m_Animate.Stop();\r
                m_Progress.SetPos(100);\r
                this->DialogEnableWindow(IDOK,TRUE);\r
-               if(wParam == MSG_PROGRESSDLG_END)\r
+               if(wParam == MSG_PROGRESSDLG_END && m_GitStatus == 0)\r
                {\r
                        if(m_bAutoCloseOnSuccess)\r
                                EndDialog(IDOK);\r
-                       if(m_changeAbortButtonOnSuccessTo.IsEmpty())\r
+                       if(!m_changeAbortButtonOnSuccessTo.IsEmpty())\r
                        {\r
                                GetDlgItem(IDCANCEL)->SetWindowText(m_changeAbortButtonOnSuccessTo);\r
                        }\r
@@ -256,5 +257,11 @@ void CProgressDlg::OnBnClickedOk()
 \r
 void CProgressDlg::OnCancel()\r
 {\r
+       if(m_bDone)\r
+       {\r
+               CResizableStandAloneDialog::OnCancel();\r
+               return;\r
+       }\r
+\r
        m_bAbort = true;\r
 }\r
index 1a7456f..920a4fd 100644 (file)
@@ -40,6 +40,7 @@ public:
        CString           m_LogText;\r
 \r
        bool                    m_bAbort;\r
+       bool                    m_bDone;\r
 protected:\r
        virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV support\r
        static UINT ProgressThreadEntry(LPVOID pVoid);\r