//typedef void CALLBACK_PROCESS(void * data, int progress);\r
#define MSG_LOADED (WM_USER+110)\r
#define MSG_LOAD_PERCENTAGE (WM_USER+111)\r
+#define MSG_REFLOG_CHANGED (WM_USER+112)\r
\r
class CGitLogListBase : public CHintListCtrl\r
{\r
virtual ~CGitLogListBase();\r
volatile LONG m_bNoDispUpdates;\r
BOOL m_IsIDReplaceAction;\r
+ BOOL m_IsOldFirst;\r
+ BOOL m_IsRebaseReplaceGraph;\r
+\r
+ void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct);\r
+ void OnMeasureItem(int nIDCtl, LPMEASUREITEMSTRUCT lpMeasureItemStruct);\r
+\r
BOOL m_bStrictStopped;\r
BOOL m_bShowBugtraqColumn;\r
BOOL m_bSearchIndex;\r
BOOL m_bCancelled;\r
+ unsigned __int64 m_ContextMenuMask;\r
+\r
bool m_hasWC;\r
GitRev m_wcRev;\r
volatile LONG m_bThreadRunning;\r
ID_CREATE_BRANCH,\r
ID_CREATE_TAG,\r
ID_SWITCHTOREV,\r
- ID_RESET\r
+ ID_RESET,\r
+ ID_REBASE_PICK,\r
+ ID_REBASE_EDIT,\r
+ ID_REBASE_SQUASH,\r
+ ID_REBASE_SKIP,\r
+ ID_COMBINE_COMMIT,\r
+ ID_STASH_APPLY,\r
+ ID_REFLOG_DEL,\r
+ ID_REBASE_TO_VERSION,\r
+ ID_CREATE_PATCH,\r
+ ID_DELETE,\r
};\r
+ inline unsigned __int64 GetContextMenuBit(int i){ return ((unsigned __int64 )0x1)<<i ;}\r
void InsertGitColumn();\r
void ResizeAllListCtrlCols();\r
void CopySelectionToClipBoard(bool hashonly=FALSE);\r
void DiffSelectedRevWithPrevious();\r
bool IsSelectionContinuous();\r
int FillGitShortLog();\r
- int FillGitLog(CTGitPath *path,int infomask=CGit:: LOG_INFO_STAT| CGit::LOG_INFO_FILESTATE);\r
+ int FillGitLog(CTGitPath *path,int infomask=CGit:: LOG_INFO_STAT| CGit::LOG_INFO_FILESTATE | CGit::LOG_INFO_SHOW_MERGEDFILE,CString *from=NULL,CString *to=NULL);\r
\r
inline int ShownCountWithStopped() const { return (int)m_arShownList.GetCount() + (m_bStrictStopped ? 1 : 0); }\r
int FetchLogAsync(void * data=NULL);\r
m_HashMap.clear();\r
g_Git.GetMapHashToFriendName(m_HashMap);\r
m_CurrentBranch=g_Git.GetCurrentBranch();\r
+ this->m_HeadHash=g_Git.GetHash(CString(_T("HEAD"))).Left(40);\r
}\r
void TerminateThread()\r
{\r
{\r
return (AfxGetThread() == m_LoadingThread);\r
}\r
+\r
+ void SetStartRef(const CString& StartRef)\r
+ {\r
+ m_StartRef=StartRef;\r
+ }\r
+\r
+ CString GetStartRef() const {return m_StartRef;}\r
+\r
\r
volatile bool m_bExitThread;\r
CWinThread* m_LoadingThread;\r
protected:\r
DECLARE_MESSAGE_MAP()\r
afx_msg void OnDestroy();\r
- afx_msg void OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
- afx_msg void OnLvnGetdispinfoLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
+ virtual afx_msg void OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
+ virtual afx_msg void OnLvnGetdispinfoLoglist(NMHDR *pNMHDR, LRESULT *pResult);\r
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);\r
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);\r
afx_msg LRESULT OnLoad(WPARAM wParam, LPARAM lParam);\r
virtual BOOL PreTranslateMessage(MSG* pMsg);\r
static UINT LogThreadEntry(LPVOID pVoid);\r
UINT LogThread();\r
+ void FetchLastLogInfo();\r
+ void FetchFullLogInfo(CString &from, CString &to);\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
+ const COLORREF& col,const COLORREF& activeColor, 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
* Save column widths to the registry\r
\r
BOOL IsEntryInDateRange(int i);\r
\r
-\r
+ int GetHeadIndex();\r
\r
bool m_bFilterWithRegex;\r
\r
CColors m_Colors;\r
\r
CString m_CurrentBranch;\r
+ CString m_HeadHash;\r
+\r
+ CString m_StartRef; //Ref of the top-commit\r
\r
+ CString m_ColumnRegKey;\r
+\r
COLORREF m_LineColors[Lanes::COLORS_NUM];\r
DWORD m_DateFormat; // DATE_SHORTDATE or DATE_LONGDATE\r
+ bool m_bRelativeTimes; // Show relative times\r
};\r
\r
\r