OSDN Git Service

Version browse in switch, export, new branch/tag and merge dialogs
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / LogDlg.h
index c61bc4e..f174d35 100644 (file)
@@ -34,6 +34,7 @@
 #include "HintListCtrl.h"\r
 #include <regex>\r
 #include "GitLogList.h"\r
+#include "GitStatusListCtrl.h"\r
 \r
 using namespace std;\r
 \r
@@ -43,14 +44,6 @@ using namespace std;
 #define MERGE_REVSELECTSTARTEND  3             ///< both\r
 #define MERGE_REVSELECTMINUSONE  4             ///< first with N-1\r
 \r
-#define LOGFILTER_ALL      1\r
-#define LOGFILTER_MESSAGES 2\r
-#define LOGFILTER_PATHS    3\r
-#define LOGFILTER_AUTHORS  4\r
-#define LOGFILTER_REVS    5\r
-#define LOGFILTER_REGEX           6\r
-#define LOGFILTER_BUGID    7\r
-\r
 \r
 #define LOGFILTER_TIMER                101\r
 \r
@@ -89,15 +82,20 @@ public:
                FILELIST_PATH\r
        };\r
 \r
-       void SetParams(const CTGitPath& path, GitRev pegrev, GitRev startrev, GitRev endrev, int limit, \r
-               BOOL bStrict = CRegDWORD(_T("Software\\TortoiseGit\\LastLogStrict"), FALSE), BOOL bSaveStrict = TRUE);\r
+       void SetParams(const CTGitPath& path, GitRev pegrev, GitRev startrev, GitRev endrev, int limit);\r
        void SetIncludeMerge(bool bInclude = true) {m_bIncludeMerges = bInclude;}\r
        void SetProjectPropertiesPath(const CTGitPath& path) {m_ProjectProperties.ReadProps(path);}\r
-       bool IsThreadRunning() {return !!m_bThreadRunning;}\r
+       bool IsThreadRunning() {return !!m_LogList.m_bThreadRunning;}\r
        void SetDialogTitle(const CString& sTitle) {m_sTitle = sTitle;}\r
        void SetSelect(bool bSelect) {m_bSelect = bSelect;}\r
        void ContinuousSelection(bool bCont = true) {m_bSelectionMustBeContinuous = bCont;}\r
+       void SingleSelection(bool bSingle = true) {m_bSelectionMustBeSingle = bSingle;}\r
        void SetMergePath(const CTGitPath& mergepath) {m_mergePath = mergepath;}\r
+       /**\r
+        * Provides selected commit hash if available, call after OK return from here\r
+        * Empty if none\r
+       **/\r
+       CString GetSelectedHash(){ return m_sSelectedHash; }\r
 \r
 //     const GitRevRangeArray& GetSelectedRevRanges() {return m_selectedRevs;}\r
 \r
@@ -115,6 +113,8 @@ protected:
        afx_msg LRESULT OnFindDialogMessage(WPARAM wParam, LPARAM lParam);\r
        afx_msg LRESULT OnClickedInfoIcon(WPARAM wParam, LPARAM lParam);\r
        afx_msg LRESULT OnClickedCancelFilter(WPARAM wParam, LPARAM lParam);\r
+       afx_msg LRESULT OnLogListLoading(WPARAM wParam, LPARAM lParam);\r
+\r
        afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);\r
        afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);\r
        afx_msg void OnBnClickedGetall();\r
@@ -124,9 +124,8 @@ protected:
        afx_msg void OnBnClickedHelp();\r
        afx_msg void OnEnLinkMsgview(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnBnClickedStatbutton();\r
-       afx_msg void OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
+\r
        afx_msg void OnNMCustomdrawChangedFileList(NMHDR *pNMHDR, LRESULT *pResult);\r
-       afx_msg void OnLvnGetdispinfoLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnLvnGetdispinfoChangedFileList(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnEnChangeSearchedit();\r
        afx_msg void OnTimer(UINT_PTR nIDEvent);\r
@@ -134,14 +133,15 @@ protected:
        afx_msg void OnDtnDatetimechangeDatefrom(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnLvnColumnclick(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnLvnColumnclickChangedFileList(NMHDR *pNMHDR, LRESULT *pResult);\r
-       afx_msg void OnBnClickedNexthundred();\r
+       afx_msg void OnBnClickShowWholeProject();\r
        afx_msg void OnBnClickedHidepaths();\r
+       afx_msg void OnBnClickedAllBranch();\r
        afx_msg void OnBnClickedCheckStoponcopy();\r
        \r
        afx_msg void OnDtnDropdownDatefrom(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnDtnDropdownDateto(NMHDR *pNMHDR, LRESULT *pResult);\r
        afx_msg void OnSize(UINT nType, int cx, int cy);\r
-       afx_msg void OnBnClickedIncludemerge();\r
+       afx_msg void OnBnClickedFirstParent();\r
        afx_msg void OnBnClickedRefresh();\r
        afx_msg void OnRefresh();\r
        afx_msg void OnFind();\r
@@ -151,16 +151,19 @@ protected:
        virtual void OnCancel();\r
        virtual void OnOK();\r
        virtual BOOL OnInitDialog();\r
-       //virtual BOOL PreTranslateMessage(MSG* pMsg);\r
+       virtual BOOL PreTranslateMessage(MSG* pMsg);\r
 \r
        void    FillLogMessageCtrl(bool bShow = true);\r
        void    DoDiffFromLog(INT_PTR selIndex, GitRev *rev1, GitRev *rev2, bool blame, bool unified);\r
 \r
+       static  void LogCallBack(void *data, int cur){((CLogDlg*)data)->LogRunStatus(cur);}\r
+       void    LogRunStatus(int cur);\r
+\r
        DECLARE_MESSAGE_MAP()\r
 \r
 private:\r
-       static UINT LogThreadEntry(LPVOID pVoid);\r
-       UINT LogThread();\r
+       \r
+\r
        void Refresh (bool autoGoOnline = false);\r
        BOOL IsDiffPossible(LogChangedPath * changedpath, git_revnum_t rev);\r
        BOOL Open(bool bOpenWith, CString changedpath, git_revnum_t rev);\r
@@ -171,17 +174,17 @@ private:
        void AdjustMinSize();\r
        void SetSplitterRange();\r
        void SetFilterCueText();\r
-       BOOL IsEntryInDateRange(int i);\r
+       \r
        void CopySelectionToClipBoard();\r
        void CopyChangedSelectionToClipBoard();\r
        CTGitPathList GetChangedPathsFromSelectedRevisions(bool bRelativePaths = false, bool bUseFilter = true);\r
     void SortShownListArray();\r
-       void RecalculateShownList(CPtrArray * pShownlist);\r
+       \r
     void SetSortArrow(CListCtrl * control, int nColumn, bool bAscending);\r
        void SortByColumn(int nSortColumn, bool bAscending);\r
        \r
        void EnableOKButton();\r
-       void GetAll(bool bForceAll = false);\r
+       void GetAll(bool bIsShowProjectOrBranch = false);\r
        void UpdateLogInfoLabel();\r
        void SaveSplitterPos();\r
        bool ValidateRegexp(LPCTSTR regexp_str, tr1::wregex& pat, bool bMatchCase);\r
@@ -202,8 +205,6 @@ private:
        virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);\r
        static int __cdecl      SortCompare(const void * pElem1, const void * pElem2);  ///< sort callback function\r
 \r
-       void ResizeAllListCtrlCols();\r
-\r
        void ShowContextMenuForRevisions(CWnd* pWnd, CPoint point);\r
        void ShowContextMenuForChangedpaths(CWnd* pWnd, CPoint point);\r
 public:\r
@@ -218,10 +219,11 @@ private:
        CString                         m_sURL;\r
        CString                         m_sUUID;    ///< empty if the log cache is not used\r
        CGitLogList                     m_LogList;\r
-       CListCtrl                       m_ChangedFileListCtrl;\r
+       CGitStatusListCtrl  m_ChangedFileListCtrl;\r
        CFilterEdit                     m_cFilter;\r
        CProgressCtrl           m_LogProgress;\r
        CMenuButton                     m_btnShow;\r
+       CMenuButton                     m_btnShowWholeProject;\r
        CTGitPath                       m_path;\r
        CTGitPath                       m_mergePath;\r
        GitRev                          m_pegrev;\r
@@ -231,19 +233,22 @@ private:
        //GitRev                                m_wcRev;\r
 //     GitRevRangeArray        m_selectedRevs;\r
 //     GitRevRangeArray        m_selectedRevsOneRange;\r
+       CString                         m_sSelectedHash;        // set to selected commit hash on OK if appropriate\r
        bool                            m_bSelectionMustBeContinuous;\r
+       bool                            m_bSelectionMustBeSingle;\r
        long                            m_logcounter;\r
        bool                            m_bCancelled;\r
-       volatile LONG           m_bThreadRunning;\r
-       BOOL                            m_bStrict;\r
-       bool                            m_bStrictStopped;\r
+       \r
        BOOL                            m_bIncludeMerges;\r
+       BOOL                            m_bFirstParent;\r
+       BOOL                            m_bAllBranch;\r
+       BOOL                            m_bWholeProject;\r
+\r
        git_revnum_t            m_lowestRev;\r
-       BOOL                            m_bSaveStrict;\r
        CTGitPathList   *   m_currentChangedArray;\r
        LogChangedPathArray m_CurrentFilteredChangedArray;\r
        CTGitPathList           m_currentChangedPathList;\r
-       CPtrArray                       m_arShownList;\r
+       //CPtrArray                     m_arShownList;\r
        bool                            m_hasWC;\r
        int                                     m_nSearchIndex;\r
        bool                            m_bFilterWithRegex;\r
@@ -257,20 +262,17 @@ private:
        CRect                           m_MsgViewOrigRect;\r
        CRect                           m_LogListOrigRect;\r
        CRect                           m_ChgOrigRect;\r
-       CString                         m_sFilterText;\r
-       int                                     m_nSelectedFilter;\r
-       volatile LONG           m_bNoDispUpdates;\r
+//     CString                         m_sFilterText;\r
+       \r
+       //volatile LONG         m_bNoDispUpdates;\r
        CDateTimeCtrl           m_DateFrom;\r
        CDateTimeCtrl           m_DateTo;\r
-       DWORD                           m_tFrom;\r
-       DWORD                           m_tTo;\r
        int                                     m_limit;\r
        int                                     m_limitcounter;\r
        int                 m_nSortColumn;\r
        bool                m_bAscending;\r
        static int                      m_nSortColumnPathList;\r
        static bool                     m_bAscendingPathList;\r
-       CRegDWORD                       m_regLastStrict;\r
        //CRegDWORD                     m_regMaxBugIDColWidth;\r
        CButton                         m_cHidePaths;\r
        bool                            m_bShowedAll;\r
@@ -282,8 +284,6 @@ private:
 \r
        CToolTips                       m_tooltips;\r
 \r
-       CTime                           m_timFrom;\r
-       CTime                           m_timTo;\r
        CColors                         m_Colors;\r
        CImageList                      m_imgList;\r
 #if 0\r
@@ -297,10 +297,10 @@ private:
        DWORD                           m_maxChild;\r
        HACCEL                          m_hAccel;\r
 \r
-       CStoreSelection*        m_pStoreSelection;\r
+\r
     \r
        \r
-       CXPTheme                        theme;\r
+       //CXPTheme                      theme;\r
        bool                            m_bVista;\r
 };\r
 static UINT WM_REVSELECTED = RegisterWindowMessage(_T("TORTOISEGit_REVSELECTED_MSG"));\r