#include "Tooltip.h"\r
#include "HintListCtrl.h"\r
#include "GitLogList.h"\r
+#include "lanes.h"\r
\r
#include <regex>\r
// CGitLogList\r
#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
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
ID_DIFF,\r
ID_OPENWITH,\r
ID_COPYCLIPBOARD,\r
+ ID_COPYHASH,\r
ID_CHECKOUT,\r
ID_REVERTTOREV,\r
ID_BLAMECOMPARE,\r
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
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
\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