OSDN Git Service

Progress Bar Show Animate
authorFrank Li <lznuaa@gmail.com>
Sat, 20 Dec 2008 14:31:24 +0000 (22:31 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 20 Dec 2008 14:31:24 +0000 (22:31 +0800)
src/Git/Git.cpp
src/Git/Git.h
src/Resources/TortoiseProcENG.rc
src/TortoiseProc/Commands/CloneCommand.cpp
src/TortoiseProc/TortoiseProc.vcproj

index 4450394..fd69d74 100644 (file)
@@ -15,8 +15,7 @@ CGit::~CGit(void)
 }\r
 \r
 char buffer[4096];\r
 }\r
 \r
 char buffer[4096];\r
-\r
-int CGit::Run(CString cmd, CString* output)\r
+int CGit::RunAsync(CString cmd,PROCESS_INFORMATION *piOut,HANDLE *hReadOut)\r
 {\r
        SECURITY_ATTRIBUTES sa;\r
        HANDLE hRead, hWrite;\r
 {\r
        SECURITY_ATTRIBUTES sa;\r
        HANDLE hRead, hWrite;\r
@@ -50,6 +49,20 @@ int CGit::Run(CString cmd, CString* output)
        }\r
        \r
        CloseHandle(hWrite);\r
        }\r
        \r
        CloseHandle(hWrite);\r
+       if(piOut)\r
+               *piOut=pi;\r
+       if(hReadOut)\r
+               *hReadOut=hRead;\r
+       \r
+       return 0;\r
+\r
+}\r
+int CGit::Run(CString cmd, CString* output)\r
+{\r
+       PROCESS_INFORMATION pi;\r
+       HANDLE hRead;\r
+       if(RunAsync(cmd,&pi,&hRead))\r
+               return GIT_ERROR_CREATE_PROCESS;\r
 \r
        DWORD readnumber;\r
        while(ReadFile(hRead,buffer,4090,&readnumber,NULL))\r
 \r
        DWORD readnumber;\r
        while(ReadFile(hRead,buffer,4090,&readnumber,NULL))\r
index 03ffece..ba93ccb 100644 (file)
@@ -18,6 +18,7 @@ public:
        CGit(void);\r
        ~CGit(void);\r
        int Run(CString cmd, CString* output);\r
        CGit(void);\r
        ~CGit(void);\r
        int Run(CString cmd, CString* output);\r
+       int RunAsync(CString cmd,PROCESS_INFORMATION *pi, HANDLE* hRead);\r
        int RunLogFile(CString cmd, CString &filename);\r
        CString GetUserName(void);\r
        CString GetUserEmail(void);\r
        int RunLogFile(CString cmd, CString &filename);\r
        CString GetUserName(void);\r
        CString GetUserEmail(void);\r
index 812fd68..06febcf 100644 (file)
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
index 4bd2b73..bbebeaf 100644 (file)
@@ -25,6 +25,7 @@
 #include "MessageBox.h"\r
 \r
 #include "CloneDlg.h"\r
 #include "MessageBox.h"\r
 \r
 #include "CloneDlg.h"\r
+#include "ProgressDlg.h"\r
 \r
 bool CloneCommand::Execute()\r
 {\r
 \r
 bool CloneCommand::Execute()\r
 {\r
@@ -35,7 +36,14 @@ bool CloneCommand::Execute()
                CString dir=dlg.m_Directory;\r
                CString url=dlg.m_URL;\r
                CString cmd;\r
                CString dir=dlg.m_Directory;\r
                CString url=dlg.m_URL;\r
                CString cmd;\r
-\r
+               cmd.Format(_T("git.exe clone %s %s"),\r
+                                               url,\r
+                                               dir);\r
+               CProgressDlg progress;\r
+               progress.m_GitCmd=cmd;\r
+               if(progress.DoModal()==IDOK)\r
+                       return TRUE;\r
+               \r
        }\r
        return FALSE;\r
 }\r
        }\r
        return FALSE;\r
 }\r
index 968eb88..1fe6850 100644 (file)
                        </File>\r
                </Filter>\r
                <File\r
                        </File>\r
                </Filter>\r
                <File\r
-                       RelativePath=".\ClassDiagram1.cd"\r
-                       >\r
-               </File>\r
-               <File\r
                        RelativePath="..\..\..\..\tortoisegit\src\TortoiseProc\CloneDlg.htm"\r
                        DeploymentContent="true"\r
                        >\r
                        RelativePath="..\..\..\..\tortoisegit\src\TortoiseProc\CloneDlg.htm"\r
                        DeploymentContent="true"\r
                        >\r