4 #include "StandAloneDlg.h"
\r
5 #include "GitStatusListCtrl.h"
\r
7 #include "SplitterControl.h"
\r
8 #include "HistoryCombo.h"
\r
10 #include "GitLogList.h"
\r
11 // CRebaseDlg dialog
\r
12 #define IDC_REBASE_TAB 0x1000000
\r
14 #define REBASE_TAB_CONFLICT 0
\r
15 #define REBASE_TAB_MESSAGE 1
\r
16 #define REBASE_TAB_LOG 2
\r
18 #define MSG_REBASE_UPDATE_UI (WM_USER+151)
\r
20 class CRebaseDlg : public CResizableStandAloneDialog
\r
22 DECLARE_DYNAMIC(CRebaseDlg)
\r
25 CRebaseDlg(CWnd* pParent = NULL); // standard constructor
\r
26 virtual ~CRebaseDlg();
\r
29 enum { IDD = IDD_REBASE };
\r
34 CHOOSE_COMMIT_PICK_MODE,
\r
42 REBASE_SQUASH_CONFLICT,
\r
47 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
\r
48 virtual BOOL OnInitDialog();
\r
49 DECLARE_MESSAGE_MAP()
\r
50 virtual LRESULT DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam);
\r
51 LRESULT OnRebaseUpdateUI(WPARAM wParam, LPARAM lParam);
\r
52 void DoSize(int delta);
\r
53 void AddRebaseAnchor();
\r
54 void RemoveAnchor();
\r
56 void SetSplitterRange();
\r
57 void SaveSplitterPos();
\r
59 void LoadBranchInfo();
\r
60 void FetchLogList();
\r
61 void SetAllRebaseAction(int action);
\r
64 CRect m_DlgOrigRect;
\r
65 CRect m_CommitListOrigRect;
\r
66 BOOL PreTranslateMessage(MSG* pMsg);
\r
68 CSciEdit m_wndOutputRebase;
\r
69 void SetContinueButtonText();
\r
70 void SetControlEnable();
\r
71 void UpdateProgress();
\r
72 void UpdateCurrentStatus();
\r
73 void ListConflictFile();
\r
75 volatile LONG m_bThreadRunning;
\r
77 static UINT RebaseThreadEntry(LPVOID pVoid){return ((CRebaseDlg *)pVoid)->RebaseThread();};
\r
80 CString m_OrigBranchHash;
\r
81 CString m_OrigUpstreamHash;
\r
83 int VerifyNoConflict();
\r
84 CString GetRebaseModeName(int rebasemode);
\r
86 CString m_SquashMessage;
\r
88 int CheckNextCommitIsSquash();
\r
89 int GetCurrentCommitID();
\r
94 afx_msg void OnBnClickedPickAll();
\r
95 afx_msg void OnBnClickedSquashAll();
\r
96 afx_msg void OnBnClickedEditAll();
\r
97 afx_msg void OnBnClickedRebaseSplit();
\r
98 afx_msg void OnSize(UINT nType, int cx, int cy);
\r
99 afx_msg void OnCbnSelchangeBranch();
\r
100 afx_msg void OnCbnSelchangeUpstream();
\r
101 afx_msg void OnBnClickedContinue();
\r
102 afx_msg void OnBnClickedAbort();
\r
104 CProgressCtrl m_ProgressBar;
\r
105 CStatic m_CtrlStatusText;
\r
106 CBalloon m_tooltips;
\r
112 CSplitterControl m_wndSplitter;
\r
113 CMFCTabCtrl m_ctrlTabCtrl;
\r
114 CGitStatusListCtrl m_FileListCtrl;
\r
115 CSciEdit m_LogMessageCtrl;
\r
117 CGitLogList m_CommitList;
\r
119 CHistoryCombo m_BranchCtrl;
\r
120 CHistoryCombo m_UpstreamCtrl;
\r
122 CString m_Upstream;
\r
123 BOOL m_IsCherryPick;
\r
125 REBASE_STAGE m_RebaseStage;
\r
127 void AddBranchToolTips(CHistoryCombo *pBranch);
\r
128 void AddLogString(CString str);
\r
130 int CheckRebaseCondition();
\r
131 int m_CurrentRebaseIndex;
\r