OSDN Git Service

Set Default button is "close" rather than "push" at progress dialog after commit...
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / FileDiffDlg.cpp
index 3dc296f..0bbf7fd 100644 (file)
@@ -31,6 +31,7 @@
 #include "RevisionDlg.h"\r
 #include ".\filediffdlg.h"\r
 #include "gitdiff.h"\r
+#include "CommonResource.h"\r
 \r
 #define ID_COMPARE 1\r
 #define ID_BLAME 2\r
@@ -96,6 +97,39 @@ void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1, GitRev rev2)
        m_rev2 = rev2;\r
        \r
 }\r
+void CFileDiffDlg::SetDiff(CTGitPath * path, CString &hash1, CString &hash2)\r
+{\r
+       if(path!=NULL)\r
+       {\r
+               m_path1 = *path;\r
+               m_path2 = *path;\r
+       }\r
+       \r
+       BYTE_VECTOR logout;\r
+\r
+       g_Git.GetLog(logout,hash1,path,1,0);\r
+       m_rev1.ParserFromLog(logout);\r
+\r
+       logout.clear();\r
+\r
+       g_Git.GetLog(logout,hash2,path,1,0);\r
+       m_rev2.ParserFromLog(logout);\r
+}\r
+void CFileDiffDlg::SetDiff(CTGitPath * path, GitRev rev1)\r
+{\r
+       if(path!=NULL)\r
+       {\r
+               m_path1 = *path;\r
+               m_path2 = *path;\r
+       }\r
+       m_rev1 = rev1;\r
+       m_rev2.m_CommitHash = _T("");\r
+       m_rev2.m_Subject = _T("Previou Version");\r
+\r
+       //this->GetDlgItem()->EnableWindow(FALSE);\r
+       \r
+       \r
+}\r
 \r
 BOOL CFileDiffDlg::OnInitDialog()\r
 {\r
@@ -170,6 +204,9 @@ BOOL CFileDiffDlg::OnInitDialog()
 \r
        // Start with focus on file list\r
        GetDlgItem(IDC_FILELIST)->SetFocus();\r
+\r
+       if(m_rev2.m_CommitHash.IsEmpty())\r
+               m_SwitchButton.EnableWindow(FALSE);\r
        return FALSE;\r
 }\r
 \r
@@ -221,14 +258,15 @@ UINT CFileDiffDlg::DiffThread()
        {\r
                rev1=+_T("");\r
                if(this->m_rev1.m_CommitHash == GIT_REV_ZERO)\r
-                       cmd.Format(_T("git.exe diff -r --raw -C -M --numstat  %s"),m_rev2.m_CommitHash);\r
+                       cmd.Format(_T("git.exe diff -r --raw -C -M --numstat -z %s"),m_rev2.m_CommitHash);\r
                else\r
-                       cmd.Format(_T("git.exe diff -r -R --raw -C -M --numstat  %s"),m_rev1.m_CommitHash);\r
+                       cmd.Format(_T("git.exe diff -r -R --raw -C -M --numstat -z %s"),m_rev1.m_CommitHash);\r
        }else\r
        {\r
-               cmd.Format(_T("git.exe diff-tree -r --raw -C -M --numstat %s %s"),rev1,m_rev2.m_CommitHash);\r
+               cmd.Format(_T("git.exe diff-tree -r --raw -C -M --numstat -z %s %s"),m_rev2.m_CommitHash,rev1);\r
        }\r
-       CString out;\r
+\r
+       BYTE_VECTOR out;\r
        g_Git.Run(cmd,&out);\r
        this->m_arFileList.ParserFromLog(out);\r
        \r
@@ -288,7 +326,7 @@ void CFileDiffDlg::DoDiff(int selIndex, bool blame)
 \r
        CGitDiff diff;\r
        CTGitPath* fd = m_arFilteredList[selIndex];\r
-       diff.Diff(fd, this->m_rev1.m_CommitHash, this->m_rev2.m_CommitHash, blame, FALSE);\r
+       diff.Diff(fd, fd,this->m_rev1.m_CommitHash, this->m_rev2.m_CommitHash, blame, FALSE);\r
 \r
 #if 0\r
        CFileDiffDlg::CTGitPath* fd = m_arFilteredList[selIndex];\r
@@ -851,8 +889,10 @@ void CFileDiffDlg::SetURLLabels()
        SetDlgItemText(IDC_FIRSTURL, m_rev1.m_Subject+CString(_T("\r\n"))+m_rev1.m_CommitHash);\r
        SetDlgItemText(IDC_SECONDURL,m_rev2.m_Subject+CString(_T("\r\n"))+m_rev2.m_CommitHash);\r
 \r
-       m_tooltips.AddTool(IDC_FIRSTURL,  m_rev1.m_AuthorDate.Format(_T("%Y-%m-%d  "))+m_rev1.m_AuthorName);\r
-       m_tooltips.AddTool(IDC_SECONDURL, m_rev2.m_AuthorDate.Format(_T("%Y-%m-%d  "))+m_rev2.m_AuthorName);\r
+       m_tooltips.AddTool(IDC_FIRSTURL,  \r
+               CAppUtils::FormatDateAndTime( m_rev1.m_AuthorDate, DATE_SHORTDATE, false )+_T("  ")+m_rev1.m_AuthorName);\r
+       m_tooltips.AddTool(IDC_SECONDURL, \r
+               CAppUtils::FormatDateAndTime( m_rev2.m_AuthorDate, DATE_SHORTDATE, false )+_T("  ")+m_rev2.m_AuthorName);\r
 \r
 }\r
 \r