{\r
InitialText = m_PreText + _T("\r\n");\r
}\r
+#if 0\r
if (m_bShowCommand && (!m_GitCmd.IsEmpty() ))\r
{\r
InitialText += m_GitCmd+_T("\r\n\r\n");\r
}\r
+#endif\r
m_Log.SetWindowTextW(InitialText);\r
m_CurrentWork.SetWindowTextW(_T(""));\r
\r
return ((CProgressDlg*)pVoid)->ProgressThread();\r
}\r
\r
-UINT CProgressDlg::ProgressThread()\r
+//static function, Share with SyncDialog\r
+UINT CProgressDlg::RunCmdList(CWnd *pWnd,std::vector<CString> &cmdlist,bool bShowCommand,CString *pfilename,bool *bAbort)\r
{\r
+ UINT ret=0;\r
+\r
PROCESS_INFORMATION pi;\r
HANDLE hRead;\r
\r
- this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_START,0);\r
-\r
- CString *pfilename;\r
- if(m_LogFile.IsEmpty())\r
- pfilename=NULL;\r
- else\r
- pfilename=&m_LogFile;\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_START,0);\r
\r
- m_GitCmdList.push_back(m_GitCmd);\r
-\r
- m_GitStatus =0;\r
-\r
- for(int i=0;i<m_GitCmdList.size();i++)\r
+ for(int i=0;i<cmdlist.size();i++)\r
{\r
- if(m_GitCmdList[i].IsEmpty())\r
+ if(cmdlist[i].IsEmpty())\r
continue;\r
\r
- if (m_bShowCommand && m_GitCmdList[i]!= m_GitCmd)\r
+ if (bShowCommand)\r
{\r
CString str;\r
- str+= m_GitCmdList[i]+_T("\r\n\r\n");\r
+ str+= cmdlist[i]+_T("\r\n\r\n");\r
for(int j=0;j<str.GetLength();j++)\r
- this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,str[j]);\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,str[j]);\r
}\r
\r
- g_Git.RunAsync(this->m_GitCmdList[i],&pi, &hRead,pfilename);\r
+ g_Git.RunAsync(cmdlist[i],&pi, &hRead,pfilename);\r
\r
DWORD readnumber;\r
char buffer[2];\r
while(ReadFile(hRead,buffer,1,&readnumber,NULL))\r
{\r
buffer[readnumber]=0;\r
- this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,(TCHAR)buffer[0]);\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_RUN,(TCHAR)buffer[0]);\r
}\r
\r
CloseHandle(pi.hThread);\r
WaitForSingleObject(pi.hProcess, INFINITE);\r
\r
DWORD status=0;\r
- if(!GetExitCodeProcess(pi.hProcess,&status) || m_bAbort)\r
+ if(!GetExitCodeProcess(pi.hProcess,&status) || *bAbort)\r
{\r
CloseHandle(pi.hProcess);\r
\r
CloseHandle(hRead);\r
\r
- this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_FAILED,0);\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_FAILED,0);\r
return GIT_ERROR_GET_EXIT_CODE;\r
}\r
- m_GitStatus |= status;\r
+ ret |= status;\r
}\r
\r
CloseHandle(pi.hProcess);\r
\r
CloseHandle(hRead);\r
\r
- this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_END,0);\r
+ pWnd->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_END,0);\r
+\r
+ return ret;\r
+\r
+}\r
\r
+UINT CProgressDlg::ProgressThread()\r
+{\r
+ \r
+ m_GitCmdList.push_back(m_GitCmd);\r
+\r
+ CString *pfilename;\r
+\r
+ if(m_LogFile.IsEmpty())\r
+ pfilename=NULL;\r
+ else\r
+ pfilename=&m_LogFile; \r
+\r
+ m_GitStatus = RunCmdList(this,m_GitCmdList,m_bShowCommand,pfilename,&m_bAbort);;\r
return 0;\r
}\r
\r
\r
return 0;\r
}\r
+\r
+//static function, Share with SyncDialog\r
int CProgressDlg::FindPercentage(CString &log)\r
{\r
int s1=log.Find(_T('%'));\r