OSDN Git Service

Log can refresh when Click Rev button.
authorFrank Li <lznuaa@gmail.com>
Sat, 23 Jan 2010 12:09:06 +0000 (20:09 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 23 Jan 2010 12:09:06 +0000 (20:09 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Git/Git.cpp
src/Git/TGitPath.cpp
src/Resources/TortoiseProcENG.rc
src/TortoiseProc/FileDiffDlg.cpp
src/TortoiseProc/RefLogDlg.cpp
src/TortoiseProc/RefLogDlg.h

index a87114c..3353b54 100644 (file)
@@ -129,6 +129,7 @@ CGit::CGit(void)
        GetCurrentDirectory(MAX_DIRBUFFER,m_CurrentDir.GetBuffer(MAX_DIRBUFFER));\r
        m_CurrentDir.ReleaseBuffer();\r
        m_IsGitDllInited = false;\r
        GetCurrentDirectory(MAX_DIRBUFFER,m_CurrentDir.GetBuffer(MAX_DIRBUFFER));\r
        m_CurrentDir.ReleaseBuffer();\r
        m_IsGitDllInited = false;\r
+       m_GitDiff=0;\r
        CheckMsysGitDir();\r
 }\r
 \r
        CheckMsysGitDir();\r
 }\r
 \r
index 29e6d6a..0f59c32 100644 (file)
@@ -529,7 +529,7 @@ CString CTGitPath::GetRootPathString() const
 \r
 CString CTGitPath::GetFilename() const\r
 {\r
 \r
 CString CTGitPath::GetFilename() const\r
 {\r
-       ATLASSERT(!IsDirectory());\r
+       //ATLASSERT(!IsDirectory());\r
        return GetFileOrDirectoryName();\r
 }\r
 \r
        return GetFileOrDirectoryName();\r
 }\r
 \r
index e53f205..cb59e35 100644 (file)
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
index c9c8fed..0e9a918 100644 (file)
@@ -34,6 +34,7 @@
 #include "CommonResource.h"\r
 #include "BrowseRefsDlg.h"\r
 #include "LogDlg.h"\r
 #include "CommonResource.h"\r
 #include "BrowseRefsDlg.h"\r
 #include "LogDlg.h"\r
+#include "RefLogDlg.h"\r
 \r
 #define ID_COMPARE 1\r
 #define ID_BLAME 2\r
 \r
 #define ID_COMPARE 1\r
 #define ID_BLAME 2\r
@@ -287,6 +288,7 @@ UINT CFileDiffDlg::DiffThread()
        bool bSuccess = true;\r
        RefreshCursor();\r
        m_cFileList.ShowText(CString(MAKEINTRESOURCE(IDS_FILEDIFF_WAIT)));\r
        bool bSuccess = true;\r
        RefreshCursor();\r
        m_cFileList.ShowText(CString(MAKEINTRESOURCE(IDS_FILEDIFF_WAIT)));\r
+       m_cFileList.DeleteAllItems();\r
        m_arFileList.Clear();\r
 #if 0\r
        if (m_bDoPegDiff)\r
        m_arFileList.Clear();\r
 #if 0\r
        if (m_bDoPegDiff)\r
@@ -1112,9 +1114,27 @@ void CFileDiffDlg::ClickRevButton(CMenuButton *button, GitRev *rev, CEdit *edit)
 \r
        if(entry == 2) /*RefLog*/\r
        {\r
 \r
        if(entry == 2) /*RefLog*/\r
        {\r
+               CRefLogDlg dlg;\r
+               if(dlg.DoModal() == IDOK)\r
+               {\r
+                       if(FillRevFromString(rev,dlg.m_SelectedHash))\r
+                               return;\r
+\r
+                       edit->SetWindowText(dlg.m_SelectedHash);\r
+\r
+               }else\r
+                       return;\r
+               \r
        }\r
 \r
        SetURLLabels();\r
        }\r
 \r
        SetURLLabels();\r
+\r
+       InterlockedExchange(&m_bThreadRunning, TRUE);\r
+       if (AfxBeginThread(DiffThreadEntry, this)==NULL)\r
+       {\r
+               InterlockedExchange(&m_bThreadRunning, FALSE);\r
+               CMessageBox::Show(NULL, IDS_ERR_THREADSTARTFAILED, IDS_APPNAME, MB_OK | MB_ICONERROR);\r
+       }\r
 }\r
 \r
 void CFileDiffDlg::OnBnClickedRev2btn()\r
 }\r
 \r
 void CFileDiffDlg::OnBnClickedRev2btn()\r
index 3de12cd..03ed5b3 100644 (file)
@@ -87,6 +87,20 @@ BOOL CRefLogDlg::OnInitDialog()
 void CRefLogDlg::OnBnClickedOk()\r
 {\r
        // TODO: Add your control notification handler code here\r
 void CRefLogDlg::OnBnClickedOk()\r
 {\r
        // TODO: Add your control notification handler code here\r
+       if (m_RefList.GetSelectedCount() == 1)\r
+       {\r
+               // get the selected row\r
+               POSITION pos = m_RefList.GetFirstSelectedItemPosition();\r
+               int selIndex = m_RefList.GetNextSelectedItem(pos);\r
+               if (selIndex < m_RefList.m_arShownList.GetCount())\r
+               {\r
+                       // all ok, pick up the revision\r
+                       GitRev* pLogEntry = reinterpret_cast<GitRev *>(m_RefList.m_arShownList.GetAt(selIndex));\r
+                       // extract the hash\r
+                       m_SelectedHash = pLogEntry->m_CommitHash;\r
+               }\r
+       }\r
+\r
        OnOK();\r
 }\r
 \r
        OnOK();\r
 }\r
 \r
index c8b0517..dfbf3f7 100644 (file)
@@ -27,6 +27,7 @@ public:
        CString m_CurrentBranch;\r
 public:\r
        CRefLogList m_RefList;\r
        CString m_CurrentBranch;\r
 public:\r
        CRefLogList m_RefList;\r
+       CString m_SelectedHash;\r
 public:\r
        afx_msg void OnBnClickedOk();\r
 };\r
 public:\r
        afx_msg void OnBnClickedOk();\r
 };\r