OSDN Git Service

Add SCI Edit to GitBlameView
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / GitLogList.h
index 38cedfe..c49be27 100644 (file)
@@ -17,6 +17,7 @@
 #include "Tooltip.h"\r
 #include "HintListCtrl.h"\r
 #include "GitLogList.h"\r
+#include "lanes.h"\r
 \r
 #include <regex>\r
 // CGitLogList\r
@@ -42,8 +43,17 @@ enum LISTITEMSTATES_MINE {
 #define ICONITEMBORDER 5\r
 \r
 #define GITLOG_START 0\r
+#define GITLOG_START_ALL 1\r
 #define GITLOG_END   100\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
 typedef void CALLBACK_PROCESS(void * data, int progress);\r
 \r
 class CGitLogList : public CHintListCtrl\r
@@ -70,7 +80,8 @@ public:
                LOGLIST_AUTHOR,\r
                LOGLIST_DATE,\r
                LOGLIST_BUG,\r
-               LOGLIST_MESSAGE_MAX=250\r
+               LOGLIST_MESSAGE_MAX=300,\r
+               LOGLIST_MESSAGE_MIN=200\r
        };\r
 \r
        enum \r
@@ -96,6 +107,7 @@ public:
        ID_DIFF,\r
        ID_OPENWITH,\r
        ID_COPYCLIPBOARD,\r
+       ID_COPYHASH,\r
        ID_CHECKOUT,\r
        ID_REVERTTOREV,\r
        ID_BLAMECOMPARE,\r
@@ -107,18 +119,33 @@ public:
        ID_COMPAREWITHPREVIOUS,\r
        ID_BLAMEWITHPREVIOUS,\r
        ID_GETMERGELOGS,\r
-       ID_REVPROPS\r
+       ID_REVPROPS,\r
+       ID_CHERRY_PICK,\r
+       ID_CREATE_BRANCH,\r
+       ID_CREATE_TAG,\r
+       ID_SWITCHTOREV\r
        };\r
        void InsertGitColumn();\r
        void ResizeAllListCtrlCols();\r
-       void CopySelectionToClipBoard();\r
+       void CopySelectionToClipBoard(bool hashonly=FALSE);\r
        void DiffSelectedRevWithPrevious();\r
        bool IsSelectionContinuous();\r
-       int  FillGitLog();\r
+       int  FillGitShortLog();\r
        inline int ShownCountWithStopped() const { return (int)m_arShownList.GetCount() + (m_bStrictStopped ? 1 : 0); }\r
        int FetchLogAsync(CALLBACK_PROCESS *proc=NULL, void * data=NULL);\r
        CPtrArray                       m_arShownList;\r
+       void Refresh();\r
+       void RecalculateShownList(CPtrArray * pShownlist);\r
 \r
+       int                                     m_nSelectedFilter;\r
+       CLogDataVector          m_logEntries;\r
+       void RemoveFilter();\r
+       void StartFilter();\r
+       bool ValidateRegexp(LPCTSTR regexp_str, tr1::wregex& pat, bool bMatchCase = false );\r
+       CString                         m_sFilterText;\r
+       CTime                   m_From;\r
+       CTime                   m_To;\r
+       void                            GetTimeRange(CTime &oldest,CTime &latest);\r
 protected:\r
        DECLARE_MESSAGE_MAP()\r
        afx_msg void OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
@@ -131,6 +158,21 @@ protected:
        virtual BOOL PreTranslateMessage(MSG* pMsg);\r
        static UINT LogThreadEntry(LPVOID pVoid);\r
        UINT LogThread();\r
+       void FillBackGround(HDC hdc, int Index,CRect &rect);\r
+       void DrawTagBranch(HDC,CRect &rect,INT_PTR index);\r
+       void DrawGraph(HDC,CRect &rect,INT_PTR index);\r
+\r
+       BOOL GetShortName(CString ref, CString &shortname,CString prefix);\r
+       void paintGraphLane(HDC hdc,int laneHeight, int type, int x1, int x2,\r
+                                      const COLORREF& col,int top) ; \r
+       void DrawLine(HDC hdc, int x1, int y1, int x2, int y2){::MoveToEx(hdc,x1,y1,NULL);::LineTo(hdc,x2,y2);}\r
+\r
+\r
+       BOOL IsEntryInDateRange(int i);\r
+\r
+\r
+\r
+       bool                            m_bFilterWithRegex;\r
 \r
        \r
        CXPTheme                        m_Theme;\r
@@ -145,10 +187,11 @@ protected:
 \r
        CRegDWORD                       m_regMaxBugIDColWidth;\r
        int                                     m_nSearchIndex;\r
-       CLogDataVector          m_logEntries;\r
+       \r
        CALLBACK_PROCESS    *m_ProcCallBack;\r
        void                            *m_ProcData;\r
        CStoreSelection*        m_pStoreSelection;\r
+       MAP_HASH_NAME           m_HashMap;\r
 };\r
 \r
 \r