OSDN Git Service

SyncDlg Enable Send Path by Email button
authorFrank Li <lznuaa@gmail.com>
Fri, 24 Jul 2009 15:03:09 +0000 (23:03 +0800)
committerFrank Li <lznuaa@gmail.com>
Fri, 24 Jul 2009 15:03:09 +0000 (23:03 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Resources/TortoiseProcENG.rc
src/TortoiseProc/SyncDlg.cpp

index c1f17ac..03ee4ad 100644 (file)
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
index f2bd99b..3d3d892 100644 (file)
@@ -24,6 +24,7 @@
 #include "TortoiseProc.h"\r
 #include "SyncDlg.h"\r
 #include "progressdlg.h"\r
+#include "MessageBox.h"\r
 \r
 // CSyncDlg dialog\r
 \r
@@ -164,6 +165,23 @@ void CSyncDlg::OnBnClickedButtonApply()
 void CSyncDlg::OnBnClickedButtonEmail()\r
 {\r
        // TODO: Add your control notification handler code here\r
+       CString cmd,out;\r
+       \r
+       this->m_strLocalBranch = this->m_ctrlLocalBranch.GetString();\r
+       this->m_ctrlRemoteBranch.GetWindowText(this->m_strRemoteBranch);\r
+       \r
+       cmd.Format(_T("git.exe  format-patch -o \"%s\" %s..%s"),\r
+                                       g_Git.m_CurrentDir,\r
+                                       m_strRemoteBranch,m_strLocalBranch);\r
+       \r
+       if(g_Git.Run(cmd,&out,CP_ACP))\r
+       {\r
+               CMessageBox::Show(NULL,out,_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
+               return ;\r
+       }\r
+\r
+       CAppUtils::SendPatchMail(cmd,out);      \r
+\r
 }\r
 void CSyncDlg::ShowProgressCtrl(bool bShow)\r
 {\r
@@ -358,6 +376,8 @@ void CSyncDlg::FetchOutList(bool force)
                this->m_ctrlTabCtrl.ShowTab(m_OutChangeFileList.GetDlgCtrlID()-1,FALSE);\r
                m_OutLocalBranch.Empty();\r
                m_OutRemoteBranch.Empty();\r
+\r
+               this->GetDlgItem(IDC_BUTTON_EMAIL)->EnableWindow(FALSE);\r
                return ;\r
        \r
        }else if(g_Git.GetHash(remotebranch).GetLength()<40)\r
@@ -368,6 +388,8 @@ void CSyncDlg::FetchOutList(bool force)
                this->m_ctrlTabCtrl.ShowTab(m_OutChangeFileList.GetDlgCtrlID()-1,FALSE);\r
                m_OutLocalBranch.Empty();\r
                m_OutRemoteBranch.Empty();\r
+\r
+               this->GetDlgItem(IDC_BUTTON_EMAIL)->EnableWindow(FALSE);\r
                return ;\r
        }\r
        else\r
@@ -388,6 +410,7 @@ void CSyncDlg::FetchOutList(bool force)
                                m_OutLogList.ShowText(str);\r
                                this->m_ctrlStatus.SetWindowText(str);\r
                                this->m_ctrlTabCtrl.ShowTab(m_OutChangeFileList.GetDlgCtrlID()-1,FALSE);\r
+                               this->GetDlgItem(IDC_BUTTON_EMAIL)->EnableWindow(FALSE);\r
                        }\r
                        else\r
                        {\r
@@ -399,6 +422,7 @@ void CSyncDlg::FetchOutList(bool force)
                                m_OutChangeFileList.Show(0,this->m_arOutChangeList);\r
                                m_OutChangeFileList.SetEmptyString(CString(_T("No changed file")));\r
                                this->m_ctrlTabCtrl.ShowTab(m_OutChangeFileList.GetDlgCtrlID()-1,TRUE);\r
+                               this->GetDlgItem(IDC_BUTTON_EMAIL)->EnableWindow(TRUE);\r
                        }\r
                }\r
                this->m_OutLocalBranch=localbranch;\r