#include "GitRev.h"\r
#include "Tooltip.h"\r
#include "HintListCtrl.h"\r
+#include <regex>\r
#include "GitLogList.h"\r
+#include "GitStatusListCtrl.h"\r
+#include "HyperLink.h"\r
\r
-#include <regex>\r
using namespace std;\r
\r
\r
#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
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
+ void SetStartRef(const CString& StartRef);\r
+ void ShowStartRef();\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
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
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
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 OnBnClickedBrowseRef();\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
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
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
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
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
+ CHyperLink m_staticRef;\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
//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
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
\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
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