OSDN Git Service

Basic File diff dialog is okay to show prediff command
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / FileDiffDlg.cpp
index 24634b0..7a0ac48 100644 (file)
@@ -65,6 +65,8 @@ void CFileDiffDlg::DoDataExchange(CDataExchange* pDX)
        DDX_Control(pDX, IDC_REV1BTN, m_cRev1Btn);\r
        DDX_Control(pDX, IDC_REV2BTN, m_cRev2Btn);\r
        DDX_Control(pDX, IDC_FILTER, m_cFilter);\r
+       DDX_Control(pDX, IDC_REV1EDIT, m_ctrRev1Edit);\r
+       DDX_Control(pDX, IDC_REV2EDIT, m_ctrRev2Edit);\r
 }\r
 \r
 \r
@@ -83,6 +85,8 @@ BEGIN_MESSAGE_MAP(CFileDiffDlg, CResizableStandAloneDialog)
        ON_MESSAGE(WM_FILTEREDIT_CANCELCLICKED, OnClickedCancelFilter)\r
        ON_EN_CHANGE(IDC_FILTER, &CFileDiffDlg::OnEnChangeFilter)\r
        ON_WM_TIMER()\r
+       ON_EN_CHANGE(IDC_REV1EDIT, &CFileDiffDlg::OnEnChangeRev1edit)\r
+       ON_EN_CHANGE(IDC_REV2EDIT, &CFileDiffDlg::OnEnChangeRev2edit)\r
 END_MESSAGE_MAP()\r
 \r
 \r
@@ -199,16 +203,40 @@ BOOL CFileDiffDlg::OnInitDialog()
        AddAnchor(IDC_SWITCHLEFTRIGHT, TOP_RIGHT);\r
        AddAnchor(IDC_FIRSTURL, TOP_LEFT, TOP_RIGHT);\r
        AddAnchor(IDC_REV1BTN, TOP_RIGHT);\r
-       AddAnchor(IDC_DIFFSTATIC2, TOP_LEFT, TOP_RIGHT);\r
+       //AddAnchor(IDC_DIFFSTATIC2, TOP_LEFT, TOP_RIGHT);\r
        AddAnchor(IDC_SECONDURL, TOP_LEFT, TOP_RIGHT);\r
        AddAnchor(IDC_REV2BTN, TOP_RIGHT);\r
        AddAnchor(IDC_FILTER, TOP_LEFT, TOP_RIGHT);\r
        AddAnchor(IDC_FILELIST, TOP_LEFT, BOTTOM_RIGHT);\r
+       AddAnchor(IDC_REV1GROUP,TOP_LEFT,TOP_RIGHT);\r
+       AddAnchor(IDC_REV2GROUP,TOP_LEFT,TOP_RIGHT);\r
+       AddAnchor(IDC_REV1EDIT,TOP_LEFT);\r
+       AddAnchor(IDC_REV2EDIT,TOP_LEFT);\r
        \r
-       SetURLLabels();\r
-\r
        EnableSaveRestore(_T("FileDiffDlg"));\r
 \r
+       if(this->m_strRev1.IsEmpty())\r
+               this->m_ctrRev1Edit.SetWindowText(this->m_rev1.m_CommitHash.ToString());\r
+       else\r
+       {\r
+               if(m_rev1.GetCommit(this->m_strRev1))\r
+                       this->m_FileListText+=this->m_strRev1 + _T(" is wrong");\r
+\r
+               this->m_ctrRev1Edit.SetWindowText(m_strRev1);\r
+       }\r
+\r
+       if(this->m_strRev2.IsEmpty())\r
+               this->m_ctrRev2Edit.SetWindowText(this->m_rev2.m_CommitHash.ToString());\r
+       else\r
+       {\r
+               if(m_rev2.GetCommit(this->m_strRev2))\r
+                       this->m_FileListText+=this->m_strRev2 + _T(" is wrong");\r
+\r
+               this->m_ctrRev2Edit.SetWindowText(m_strRev2);\r
+       }\r
+\r
+       SetURLLabels();\r
+\r
        InterlockedExchange(&m_bThreadRunning, TRUE);\r
        if (AfxBeginThread(DiffThreadEntry, this)==NULL)\r
        {\r
@@ -216,6 +244,14 @@ BOOL CFileDiffDlg::OnInitDialog()
                CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
        }\r
 \r
+       this->m_cRev1Btn.AddEntry(_T("RefBrowse"));\r
+       this->m_cRev1Btn.AddEntry(_T("Log"));\r
+       this->m_cRev1Btn.AddEntry(_T("RefLog"));\r
+\r
+       this->m_cRev2Btn.AddEntry(_T("RefBrowse"));\r
+       this->m_cRev2Btn.AddEntry(_T("Log"));\r
+       this->m_cRev2Btn.AddEntry(_T("RefLog"));\r
+\r
        // Start with focus on file list\r
        GetDlgItem(IDC_FILELIST)->SetFocus();\r
 \r
@@ -876,6 +912,14 @@ void CFileDiffDlg::OnBnClickedSwitchleftright()
        GitRev rev = m_rev1;\r
        m_rev1 = m_rev2;\r
        m_rev2 = rev;\r
+\r
+       CString str1,str2;\r
+       this->m_ctrRev1Edit.GetWindowText(str1);\r
+       this->m_ctrRev2Edit.GetWindowText(str2);\r
+\r
+       this->m_ctrRev1Edit.SetWindowText(str2);\r
+       this->m_ctrRev2Edit.SetWindowText(str1);\r
+\r
        SetURLLabels();\r
 \r
 }\r
@@ -883,11 +927,11 @@ void CFileDiffDlg::OnBnClickedSwitchleftright()
 void CFileDiffDlg::SetURLLabels()\r
 {\r
 \r
-       m_cRev1Btn.SetWindowText(m_rev1.m_CommitHash.ToString().Left(6));\r
-       m_cRev2Btn.SetWindowText(m_rev2.m_CommitHash.ToString().Left(6));\r
+//     m_cRev1Btn.SetWindowText(m_rev1.m_CommitHash.ToString().Left(6));\r
+//     m_cRev2Btn.SetWindowText(m_rev2.m_CommitHash.ToString().Left(6));\r
 \r
-       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
+       SetDlgItemText(IDC_FIRSTURL, m_rev1.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev1.m_Subject);\r
+       SetDlgItemText(IDC_SECONDURL,m_rev2.m_CommitHash.ToString().Left(8)+_T(": ")+m_rev2.m_Subject);\r
 \r
        m_tooltips.AddTool(IDC_FIRSTURL,  \r
                CAppUtils::FormatDateAndTime( m_rev1.m_AuthorDate, DATE_SHORTDATE, false )+_T("  ")+m_rev1.m_AuthorName);\r
@@ -1159,3 +1203,23 @@ void CFileDiffDlg::CopySelectionToClipboard()
        CStringUtils::WriteAsciiStringToClipboard(sTextForClipboard);\r
 }\r
 \r
+\r
+void CFileDiffDlg::OnEnChangeRev1edit()\r
+{\r
+       // TODO:  If this is a RICHEDIT control, the control will not\r
+       // send this notification unless you override the CResizableStandAloneDialog::OnInitDialog()\r
+       // function and call CRichEditCtrl().SetEventMask()\r
+       // with the ENM_CHANGE flag ORed into the mask.\r
+\r
+       // TODO:  Add your control notification handler code here\r
+}\r
+\r
+void CFileDiffDlg::OnEnChangeRev2edit()\r
+{\r
+       // TODO:  If this is a RICHEDIT control, the control will not\r
+       // send this notification unless you override the CResizableStandAloneDialog::OnInitDialog()\r
+       // function and call CRichEditCtrl().SetEventMask()\r
+       // with the ENM_CHANGE flag ORed into the mask.\r
+\r
+       // TODO:  Add your control notification handler code here\r
+}\r