Signed-off-by: Frank Li <lznuaa@gmail.com>
{\r
InitialText = m_PreText + _T("\r\n");\r
}\r
{\r
InitialText = m_PreText + _T("\r\n");\r
}\r
if (m_bShowCommand && (!m_GitCmd.IsEmpty() ))\r
{\r
InitialText += m_GitCmd+_T("\r\n\r\n");\r
}\r
if (m_bShowCommand && (!m_GitCmd.IsEmpty() ))\r
{\r
InitialText += m_GitCmd+_T("\r\n\r\n");\r
}\r
m_Log.SetWindowTextW(InitialText);\r
m_CurrentWork.SetWindowTextW(_T(""));\r
\r
m_Log.SetWindowTextW(InitialText);\r
m_CurrentWork.SetWindowTextW(_T(""));\r
\r
return ((CProgressDlg*)pVoid)->ProgressThread();\r
}\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
PROCESS_INFORMATION pi;\r
HANDLE hRead;\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
- 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
- if(m_GitCmdList[i].IsEmpty())\r
+ if(cmdlist[i].IsEmpty())\r
- if (m_bShowCommand && m_GitCmdList[i]!= m_GitCmd)\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
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
- 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
\r
DWORD readnumber;\r
char buffer[2];\r
while(ReadFile(hRead,buffer,1,&readnumber,NULL))\r
{\r
buffer[readnumber]=0;\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
}\r
\r
CloseHandle(pi.hThread);\r
WaitForSingleObject(pi.hProcess, INFINITE);\r
\r
DWORD status=0;\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
{\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
return GIT_ERROR_GET_EXIT_CODE;\r
}\r
- m_GitStatus |= status;\r
}\r
\r
CloseHandle(pi.hProcess);\r
\r
CloseHandle(hRead);\r
\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
+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
+\r
+//static function, Share with SyncDialog\r
int CProgressDlg::FindPercentage(CString &log)\r
{\r
int s1=log.Find(_T('%'));\r
int CProgressDlg::FindPercentage(CString &log)\r
{\r
int s1=log.Find(_T('%'));\r
UINT ProgressThread();\r
\r
void ParserCmdOutput(TCHAR ch);\r
UINT ProgressThread();\r
\r
void ParserCmdOutput(TCHAR ch);\r
- int FindPercentage(CString &log);\r
void RemoveLastLine(CString &str);\r
\r
LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam);\r
void RemoveLastLine(CString &str);\r
\r
LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam);\r
\r
DECLARE_MESSAGE_MAP()\r
public:\r
\r
DECLARE_MESSAGE_MAP()\r
public:\r
+\r
+ //Share with Sync Dailog\r
+ static int FindPercentage(CString &log);\r
+ static UINT RunCmdList(CWnd *pWnd,std::vector<CString> &cmdlist,bool bShowCommand,CString *pfilename,bool *bAbort);\r
+\r
afx_msg void OnBnClickedOk();\r
afx_msg void OnBnClickedButton1();\r
};\r
afx_msg void OnBnClickedOk();\r
afx_msg void OnBnClickedButton1();\r
};\r