#include "SendMailDlg.h"\r
#include "SVNProgressDlg.h"\r
#include "PushDlg.h"\r
+#include "CommitDlg.h"\r
\r
CAppUtils::CAppUtils(void)\r
{\r
if(path.IsEmpty())\r
return;\r
}\r
+}\r
+\r
+BOOL CAppUtils::Commit(CString bugid,BOOL bWholeProject,CString &sLogMsg,\r
+ CTGitPathList &pathList,\r
+ CTGitPathList &selectedList,\r
+ BOOL bSelectFilesForCommit)\r
+{\r
+ bool bFailed = true;\r
+ while (bFailed)\r
+ {\r
+ bFailed = false;\r
+ CCommitDlg dlg;\r
+ dlg.m_sBugID = bugid;\r
+ \r
+ dlg.m_bWholeProject = bWholeProject;\r
+ \r
+ dlg.m_sLogMessage = sLogMsg;\r
+ dlg.m_pathList = pathList;\r
+ dlg.m_checkedPathList = selectedList;\r
+ dlg.m_bSelectFilesForCommit = bSelectFilesForCommit;\r
+ if (dlg.DoModal() == IDOK)\r
+ {\r
+ if (dlg.m_pathList.GetCount()==0)\r
+ return false;\r
+ // if the user hasn't changed the list of selected items\r
+ // we don't use that list. Because if we would use the list\r
+ // of pre-checked items, the dialog would show different\r
+ // checked items on the next startup: it would only try\r
+ // to check the parent folder (which might not even show)\r
+ // instead, we simply use an empty list and let the\r
+ // default checking do its job.\r
+ if (!dlg.m_pathList.IsEqual(pathList))\r
+ selectedList = dlg.m_pathList;\r
+ pathList = dlg.m_updatedPathList;\r
+ sLogMsg = dlg.m_sLogMessage;\r
+ bSelectFilesForCommit = true;\r
+\r
+ if( dlg.m_bPushAfterCommit )\r
+ {\r
+ CAppUtils::Push();\r
+ }\r
+// CGitProgressDlg progDlg;\r
+// progDlg.SetChangeList(dlg.m_sChangeList, !!dlg.m_bKeepChangeList);\r
+// if (parser.HasVal(_T("closeonend")))\r
+// progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend")));\r
+// progDlg.SetCommand(CGitProgressDlg::GitProgress_Commit);\r
+// progDlg.SetOptions(dlg.m_bKeepLocks ? ProgOptKeeplocks : ProgOptNone);\r
+// progDlg.SetPathList(dlg.m_pathList);\r
+// progDlg.SetCommitMessage(dlg.m_sLogMessage);\r
+// progDlg.SetDepth(dlg.m_bRecursive ? Git_depth_infinity : svn_depth_empty);\r
+// progDlg.SetSelectedList(dlg.m_selectedPathList);\r
+// progDlg.SetItemCount(dlg.m_itemsCount);\r
+// progDlg.SetBugTraqProvider(dlg.m_BugTraqProvider);\r
+// progDlg.DoModal();\r
+// CRegDWORD err = CRegDWORD(_T("Software\\TortoiseGit\\ErrorOccurred"), FALSE);\r
+// err = (DWORD)progDlg.DidErrorsOccur();\r
+// bFailed = progDlg.DidErrorsOccur();\r
+// bRet = progDlg.DidErrorsOccur();\r
+// CRegDWORD bFailRepeat = CRegDWORD(_T("Software\\TortoiseGit\\CommitReopen"), FALSE);\r
+// if (DWORD(bFailRepeat)==0)\r
+// bFailed = false; // do not repeat if the user chose not to in the settings.\r
+ }\r
+ }\r
+ return true;\r
}
\ No newline at end of file