OSDN Git Service

merge original branch.
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / LogDlg.cpp
index 6d6fd3d..ff82919 100644 (file)
@@ -79,14 +79,25 @@ CLogDlg::CLogDlg(CWnd* pParent /*=NULL*/)
        , m_hAccel(NULL)\r
 {\r
        m_bFilterWithRegex = !!CRegDWORD(_T("Software\\TortoiseGit\\UseRegexFilter"), TRUE);\r
-       m_bAllBranch=FALSE;\r
+\r
+       CString str;\r
+       str=g_Git.m_CurrentDir;\r
+       str.Replace(_T(":"),_T("_"));\r
+       str=CString(_T("Software\\TortoiseGit\\LogDialog\\AllBranch\\"))+str;\r
+       \r
+       m_regbAllBranch=CRegDWORD(str,FALSE);\r
+\r
+       m_bAllBranch=m_regbAllBranch;\r
+\r
        m_bFirstParent=FALSE;\r
        m_bWholeProject=FALSE;\r
 }\r
 \r
 CLogDlg::~CLogDlg()\r
 {\r
-       \r
+\r
+       m_regbAllBranch=m_bAllBranch;\r
+\r
     m_CurrentFilteredChangedArray.RemoveAll();\r
        \r
 }\r
@@ -270,6 +281,11 @@ BOOL CLogDlg::OnInitDialog()
        AddAnchor(IDCANCEL, BOTTOM_RIGHT);\r
        AddAnchor(IDHELP, BOTTOM_RIGHT);\r
 \r
+       if(this->m_bAllBranch)\r
+               m_LogList.m_ShowMask|=CGit::LOG_INFO_ALL_BRANCH;\r
+       else\r
+               m_LogList.m_ShowMask&=~CGit::LOG_INFO_ALL_BRANCH;\r
+\r
 //     SetPromptParentWindow(m_hWnd);\r
 \r
        if (hWndExplorer)\r
@@ -365,13 +381,25 @@ LRESULT CLogDlg::OnLogListLoading(WPARAM wParam, LPARAM /*lParam*/)
                //DialogEnableWindow(IDC_SHOWWHOLEPROJECT, FALSE);\r
                //DialogEnableWindow(IDC_LOG_FIRSTPARENT, FALSE);\r
                DialogEnableWindow(IDC_STATBUTTON, FALSE);\r
-               DialogEnableWindow(IDC_REFRESH, FALSE);\r
+               //DialogEnableWindow(IDC_REFRESH, FALSE);\r
                DialogEnableWindow(IDC_HIDEPATHS,FALSE);\r
-               \r
+\r
+               DialogEnableWindow(IDC_DATEFROM,FALSE);\r
+               DialogEnableWindow(IDC_DATETO,FALSE);\r
+\r
+               DialogEnableWindow(IDC_SEARCHEDIT,FALSE);\r
 \r
        }else if( cur == GITLOG_END)\r
        {\r
                \r
+               if(this->m_LogList.HasText())\r
+               {\r
+                       this->m_LogList.ClearText();\r
+                       \r
+               }\r
+               UpdateLogInfoLabel();\r
+\r
+\r
                //if (!m_bShowedAll)\r
                DialogEnableWindow(IDC_SHOWWHOLEPROJECT, TRUE);\r
 \r
@@ -381,6 +409,11 @@ LRESULT CLogDlg::OnLogListLoading(WPARAM wParam, LPARAM /*lParam*/)
                DialogEnableWindow(IDC_REFRESH, TRUE);\r
                DialogEnableWindow(IDC_HIDEPATHS,TRUE);\r
 \r
+               DialogEnableWindow(IDC_DATEFROM,TRUE);\r
+               DialogEnableWindow(IDC_DATETO,TRUE);\r
+\r
+               DialogEnableWindow(IDC_SEARCHEDIT,TRUE);\r
+\r
 //             PostMessage(WM_TIMER, LOGFILTER_TIMER);\r
                GetDlgItem(IDC_PROGRESS)->ShowWindow(FALSE);\r
                //CTime time=m_LogList.GetOldestTime();\r
@@ -388,14 +421,16 @@ LRESULT CLogDlg::OnLogListLoading(WPARAM wParam, LPARAM /*lParam*/)
                m_LogList.GetTimeRange(begin,end);\r
                m_DateFrom.SetTime(&begin);\r
                m_DateTo.SetTime(&end);\r
-               \r
+\r
+\r
        }else\r
        {\r
                if(this->m_LogList.HasText())\r
                {\r
                        this->m_LogList.ClearText();\r
-                       UpdateLogInfoLabel();\r
+                       this->m_LogList.Invalidate();\r
                }\r
+               UpdateLogInfoLabel();\r
                m_LogProgress.SetPos(cur);\r
        }\r
        return 0;\r
@@ -519,7 +554,7 @@ void CLogDlg::FillLogMessageCtrl(bool bShow /* = true*/)
                }else\r
                {\r
                        // set the log message text\r
-                       pMsgView->SetWindowText(_T("Commit:")+pLogEntry->m_CommitHash+_T("\r\n\r\n"));\r
+                       pMsgView->SetWindowText(_T("Commit:")+pLogEntry->m_CommitHash.ToString()+_T("\r\n\r\n"));\r
                        // turn bug ID's into links if the bugtraq: properties have been set\r
                        // and we can find a match of those in the log message\r
                        \r
@@ -1340,21 +1375,21 @@ void CLogDlg::DoDiffFromLog(INT_PTR selIndex, GitRev* rev1, GitRev* rev2, bool b
        file1.Format(_T("%s%s_%s%s"),\r
                                temppath,                                               \r
                                (*m_currentChangedArray)[selIndex].GetBaseFilename(),\r
-                               rev1->m_CommitHash.Left(6),\r
+                               rev1->m_CommitHash.ToString().Left(6),\r
                                (*m_currentChangedArray)[selIndex].GetFileExtension());\r
 \r
        CString file2;\r
        file2.Format(_T("%s\\%s_%s%s"),\r
                                temppath,                                               \r
                                (*m_currentChangedArray)[selIndex].GetBaseFilename(),\r
-                               rev2->m_CommitHash.Left(6),\r
+                               rev2->m_CommitHash.ToString().Left(6),\r
                                (*m_currentChangedArray)[selIndex].GetFileExtension());\r
 \r
        CString cmd;\r
 \r
-       cmd.Format(_T("git.exe cat-file -p %s:%s"),rev1->m_CommitHash,(*m_currentChangedArray)[selIndex].GetGitPathString());\r
+       cmd.Format(_T("git.exe cat-file -p %s:%s"),rev1->m_CommitHash.ToString(),(*m_currentChangedArray)[selIndex].GetGitPathString());\r
        g_Git.RunLogFile(cmd,file1);\r
-       cmd.Format(_T("git.exe cat-file -p %s:%s"),rev2->m_CommitHash,(*m_currentChangedArray)[selIndex].GetGitPathString());\r
+       cmd.Format(_T("git.exe cat-file -p %s:%s"),rev2->m_CommitHash.ToString(),(*m_currentChangedArray)[selIndex].GetGitPathString());\r
        g_Git.RunLogFile(cmd,file2);\r
 \r
        CAppUtils::DiffFlags flags;\r
@@ -2221,10 +2256,11 @@ void CLogDlg::OnTimer(UINT_PTR nIDEvent)
 \r
 void CLogDlg::OnDtnDatetimechangeDateto(NMHDR * /*pNMHDR*/, LRESULT *pResult)\r
 {\r
-       CTime _time;\r
-       m_DateTo.GetTime(_time);\r
        try\r
        {\r
+               CTime _time;\r
+               m_DateTo.GetTime(_time);\r
+       \r
                CTime time(_time.GetYear(), _time.GetMonth(), _time.GetDay(), 23, 59, 59);\r
                if (time.GetTime() != m_LogList.m_To.GetTime())\r
                {\r
@@ -2232,8 +2268,9 @@ void CLogDlg::OnDtnDatetimechangeDateto(NMHDR * /*pNMHDR*/, LRESULT *pResult)
                        SetTimer(LOGFILTER_TIMER, 10, NULL);\r
                }\r
        }\r
-       catch (CAtlException)\r
+       catch (...)\r
        {\r
+               CMessageBox::Show(NULL,_T("Invalidate Parameter"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
        }\r
        \r
        *pResult = 0;\r
@@ -2241,10 +2278,12 @@ void CLogDlg::OnDtnDatetimechangeDateto(NMHDR * /*pNMHDR*/, LRESULT *pResult)
 \r
 void CLogDlg::OnDtnDatetimechangeDatefrom(NMHDR * /*pNMHDR*/, LRESULT *pResult)\r
 {\r
-       CTime _time;\r
-       m_DateFrom.GetTime(_time);\r
+       \r
        try\r
        {\r
+               CTime _time;\r
+               m_DateFrom.GetTime(_time);\r
+               \r
                CTime time(_time.GetYear(), _time.GetMonth(), _time.GetDay(), 0, 0, 0);\r
                if (time.GetTime() != m_LogList.m_From.GetTime())\r
                {\r
@@ -2252,8 +2291,9 @@ void CLogDlg::OnDtnDatetimechangeDatefrom(NMHDR * /*pNMHDR*/, LRESULT *pResult)
                        SetTimer(LOGFILTER_TIMER, 10, NULL);\r
                }\r
        }\r
-       catch (CAtlException)\r
+       catch (...)\r
        {\r
+               CMessageBox::Show(NULL,_T("Invalidate Parameter"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);\r
        }\r
        \r
        *pResult = 0;\r
@@ -2506,19 +2546,26 @@ void CLogDlg::OnBnClickedCheckStoponcopy()
 void CLogDlg::UpdateLogInfoLabel()\r
 {\r
 \r
-       git_revnum_t rev1 ;\r
-       git_revnum_t rev2 ;\r
+       CGitHash rev1 ;\r
+       CGitHash rev2 ;\r
        long selectedrevs = 0;\r
        int count =m_LogList.m_arShownList.GetCount();\r
+       int start = 0;\r
        if (count)\r
        {\r
                rev1 = (reinterpret_cast<GitRev*>(m_LogList.m_arShownList.GetAt(0)))->m_CommitHash;\r
+               if(this->m_LogList.m_bShowWC && rev1.IsEmpty())\r
+                       start = 1;\r
+               rev1 = (reinterpret_cast<GitRev*>(m_LogList.m_arShownList.GetAt(start)))->m_CommitHash;\r
                //pLogEntry = reinterpret_cast<PLOGENTRYDATA>(m_arShownList.GetAt(m_arShownList.GetCount()-1));\r
                rev2 =  (reinterpret_cast<GitRev*>(m_LogList.m_arShownList.GetAt(count-1)))->m_CommitHash;\r
                selectedrevs = m_LogList.GetSelectedCount();\r
        }\r
        CString sTemp;\r
-       sTemp.Format(_T("Showing %ld revision(s), from revision %s to revision %s - %ld revision(s) selected"), count, rev2.Left(6), rev1.Left(6), selectedrevs);\r
+       sTemp.Format(_T("Showing %ld revision(s), from revision %s to revision %s - %ld revision(s) selected"), \r
+               count - start,\r
+               rev2.ToString().Left(6), rev1.ToString().Left(6), selectedrevs);\r
+\r
        m_sLogInfo = sTemp;\r
 \r
        UpdateData(FALSE);\r