#include "ResetDlg.h"\r
#include "DeleteConflictDlg.h"\r
#include "ChangedDlg.h"\r
+#include "SendMailDlg.h"\r
+#include "SVNProgressDlg.h"\r
\r
CAppUtils::CAppUtils(void)\r
{\r
return CString();\r
}\r
\r
+}\r
+\r
+bool CAppUtils::SendPatchMail(CTGitPathList &list,bool autoclose)\r
+{\r
+ CSendMailDlg dlg;\r
+\r
+ dlg.m_PathList = list;\r
+ \r
+ if(dlg.DoModal()==IDOK)\r
+ {\r
+ if(dlg.m_PathList.GetCount() == 0)\r
+ return FALSE;\r
+ \r
+ CGitProgressDlg progDlg;\r
+ \r
+ theApp.m_pMainWnd = &progDlg;\r
+ progDlg.SetCommand(CGitProgressDlg::GitProgress_SendMail);\r
+ \r
+ progDlg.SetAutoClose(autoclose);\r
+\r
+ progDlg.SetPathList(dlg.m_PathList);\r
+ //ProjectProperties props;\r
+ //props.ReadPropsPathList(dlg.m_pathList);\r
+ //progDlg.SetProjectProperties(props);\r
+ progDlg.SetItemCount(dlg.m_PathList.GetCount());\r
+\r
+ DWORD flags =0;\r
+ if(dlg.m_bAttachment)\r
+ flags |= SENDMAIL_ATTACHMENT;\r
+ if(dlg.m_bCombine)\r
+ flags |= SENDMAIL_COMBINED;\r
+\r
+ progDlg.SetSendMailOption(dlg.m_To,dlg.m_CC,dlg.m_Subject,flags);\r
+ \r
+ progDlg.DoModal(); \r
+\r
+ return true;\r
+ }\r
+ return false;\r
}
\ No newline at end of file
\r
static CString GetClipboardLink();\r
static CString ChooseRepository(CString *path);\r
+\r
+ static bool SendPatchMail(CTGitPathList &pathlist,bool autoclose=false);\r
\r
private:\r
static CString PickDiffTool(const CTGitPath& file1, const CTGitPath& file2);\r
#include "ShellUpdater.h"\r
\r
#include "ProgressDlg.h"\r
+#include "AppUtils.h"\r
\r
bool FormatPatchCommand::Execute()\r
{\r
CShellUpdater::Instance().AddPathForUpdate(CTGitPath(dlg.m_Dir));\r
CShellUpdater::Instance().Flush();\r
\r
+ if(!progress.m_GitStatus)\r
+ {\r
+ if(dlg.m_bSendMail)\r
+ {\r
+ CTGitPathList list;\r
+ CString log=progress.m_LogText;\r
+ int start=log.Find(cmd);\r
+ if(start >=0)\r
+ CString one=log.Tokenize(_T("\n"),start);\r
+\r
+ while(start>=0)\r
+ {\r
+ CString one=log.Tokenize(_T("\n"),start);\r
+ one=one.Trim();\r
+ if(one.IsEmpty())\r
+ continue;\r
+ one.Replace(_T('/'),_T('\\'));\r
+ CTGitPath path;\r
+ path.SetFromWin(one);\r
+ list.AddPath(path);\r
+ }\r
+\r
+ CAppUtils::SendPatchMail(list);\r
+ }\r
+ }\r
return !progress.m_GitStatus;\r
}\r
return FALSE;\r
#include "SendMailCommand.h"\r
#include "SendMailDlg.h"\r
#include "SVNProgressDlg.h"\r
+#include "AppUtils.h"\r
\r
bool SendMailCommand::Execute()\r
{\r
- CSendMailDlg dlg;\r
+ bool autoclose=false;\r
+ if (parser.HasVal(_T("closeonend")))\r
+ autoclose=parser.GetLongVal(_T("closeonend"));\r
\r
- dlg.m_PathList = orgPathList;\r
- \r
- if(dlg.DoModal()==IDOK)\r
- {\r
- if(dlg.m_PathList.GetCount() == 0)\r
- return FALSE;\r
- \r
- CGitProgressDlg progDlg;\r
- \r
- theApp.m_pMainWnd = &progDlg;\r
- progDlg.SetCommand(CGitProgressDlg::GitProgress_SendMail);\r
- \r
- if (parser.HasVal(_T("closeonend")))\r
- progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend")));\r
- \r
- progDlg.SetPathList(dlg.m_PathList);\r
- //ProjectProperties props;\r
- //props.ReadPropsPathList(dlg.m_pathList);\r
- //progDlg.SetProjectProperties(props);\r
- progDlg.SetItemCount(dlg.m_PathList.GetCount());\r
-\r
- DWORD flags =0;\r
- if(dlg.m_bAttachment)\r
- flags |= SENDMAIL_ATTACHMENT;\r
- if(dlg.m_bCombine)\r
- flags |= SENDMAIL_COMBINED;\r
-\r
- progDlg.SetSendMailOption(dlg.m_To,dlg.m_CC,dlg.m_Subject,flags);\r
- \r
- progDlg.DoModal(); \r
-\r
- return true;\r
- }\r
- return false;\r
+ return CAppUtils::SendPatchMail(this->orgPathList,autoclose);\r
}
\ No newline at end of file
IMPLEMENT_DYNAMIC(CFormatPatchDlg, CResizableStandAloneDialog)\r
\r
CFormatPatchDlg::CFormatPatchDlg(CWnd* pParent /*=NULL*/)\r
- : CResizableStandAloneDialog(CFormatPatchDlg::IDD, pParent)\r
+ : CResizableStandAloneDialog(CFormatPatchDlg::IDD, pParent),\r
+ m_regSendMail(_T("Software\\TortoiseGit\\TortoiseProc\\FormatPatch\\SendMail"),0)\r
{\r
m_Num=1;\r
+ this->m_bSendMail = m_regSendMail;\r
}\r
\r
CFormatPatchDlg::~CFormatPatchDlg()\r
DDX_Text(pDX, IDC_COMBOBOXEX_FROM, m_From);\r
DDX_Text(pDX, IDC_COMBOBOXEX_TO, m_To);\r
\r
-\r
+ DDX_Check(pDX, IDC_CHECK_SENDMAIL, m_bSendMail);\r
}\r
\r
\r
\r
AddAnchor(IDC_BUTTON_FROM, TOP_RIGHT);\r
AddAnchor(IDC_BUTTON_TO, TOP_RIGHT);\r
+ AddAnchor(IDC_CHECK_SENDMAIL,BOTTOM_LEFT);\r
+ AddAnchor(IDOK,BOTTOM_RIGHT);\r
+ AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+\r
this->AddOthersToAnchor();\r
\r
m_cDir.SetPathHistory(TRUE);\r
m_cTo.SaveHistory();\r
this->UpdateData(TRUE);\r
this->m_Radio=GetCheckedRadioButton(IDC_RADIO_SINCE,IDC_RADIO_RANGE);\r
+\r
+ m_regSendMail=this->m_bSendMail;\r
OnOK();\r
}\r
\r
\r
#include "StandAloneDlg.h"\r
#include "HistoryCombo.h"\r
+#include "Registry.h"\r
\r
// CFormatPatchDlg dialog\r
\r
CHistoryCombo m_cFrom;\r
CHistoryCombo m_cTo;\r
CEdit m_cNum;\r
+ CRegDWORD m_regSendMail;\r
\r
DECLARE_MESSAGE_MAP()\r
public:\r
CString m_To;\r
CString m_Since;\r
int m_Radio;\r
+ BOOL m_bSendMail;\r
\r
afx_msg void OnBnClickedButtonDir();\r
afx_msg void OnBnClickedButtonFrom();\r
\r
BEGIN_MESSAGE_MAP(CProgressDlg, CResizableStandAloneDialog)\r
ON_MESSAGE(MSG_PROGRESSDLG_UPDATE_UI, OnProgressUpdateUI)\r
+ ON_BN_CLICKED(IDOK, &CProgressDlg::OnBnClickedOk)\r
END_MESSAGE_MAP()\r
\r
BOOL CProgressDlg::OnInitDialog()\r
return;\r
}\r
// CProgressDlg message handlers\r
+\r
+void CProgressDlg::OnBnClickedOk()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ m_Log.GetWindowText(this->m_LogText);\r
+ OnOK();\r
+}\r
DWORD m_GitStatus;\r
BOOL m_bShowCommand; // whether to display the command in the log window (default true)\r
CString m_PreText; // optional text to show in log window before running command\r
+ CString m_LogText;\r
protected:\r
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support\r
static UINT ProgressThreadEntry(LPVOID pVoid);\r
\r
LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam);\r
\r
- CString m_LogText;\r
+ \r
DECLARE_MESSAGE_MAP()\r
+public:\r
+ afx_msg void OnBnClickedOk();\r
};\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\copy.ico"\r
+ RelativePath=".\copy.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\copy.ico"\r
+ RelativePath="..\Resources\copy.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\explorer.ico"\r
+ RelativePath="..\Resources\explorer.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\explorer.ico"\r
+ RelativePath=".\explorer.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\newfolder.ico"\r
+ RelativePath=".\newfolder.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\newfolder.ico"\r
+ RelativePath="..\Resources\newfolder.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\refresh.ico"\r
+ RelativePath=".\refresh.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\refresh.ico"\r
+ RelativePath="..\Resources\refresh.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\save.ico"\r
+ RelativePath="..\Resources\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\save.ico"\r
+ RelativePath=".\save.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\up.ico"\r
+ RelativePath=".\up.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\up.ico"\r
+ RelativePath="..\Resources\up.ico"\r
>\r
</File>\r
<File\r