OSDN Git Service

RebaseDlg: Change Current Rebase and rebased commit color
authorFrank Li <lznuaa@gmail.com>
Sat, 14 Feb 2009 16:10:37 +0000 (00:10 +0800)
committerFrank Li <lznuaa@gmail.com>
Sat, 14 Feb 2009 16:10:37 +0000 (00:10 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Git/TGitPath.h
src/TortoiseProc/GitLogListBase.cpp
src/TortoiseProc/RebaseDlg.cpp
src/TortoiseProc/RebaseDlg.h

index 32fe7dd..aa10018 100644 (file)
@@ -31,8 +31,9 @@ public:
                LOGACTIONS_REBASE_PICK    = 0x04000000,\r
                LOGACTIONS_REBASE_SQUASH  = 0x02000000,\r
                LOGACTIONS_REBASE_EDIT    = 0x01000000,\r
-               LOGACTIONS_REBASE_MASK    = 0x0F000000,\r
-               LOGACTIONS_REBASE_MODE_MASK=0x07000000,\r
+               LOGACTIONS_REBASE_DONE    = 0x00800000,\r
+               LOGACTIONS_REBASE_MASK    = 0x0F100000,\r
+               LOGACTIONS_REBASE_MODE_MASK=0x07100000,\r
 \r
        };\r
 \r
index 4fac62d..59041ee 100644 (file)
@@ -298,6 +298,8 @@ void CGitLogListBase::FillBackGround(HDC hdc, int Index,CRect &rect)
        rItem.stateMask = LVIS_SELECTED | LVIS_FOCUSED;\r
        GetItem(&rItem);\r
 \r
+       GitRev* pLogEntry = (GitRev*)m_arShownList.GetAt(Index);\r
+\r
        if (m_Theme.IsAppThemed() && m_bVista)\r
        {\r
                m_Theme.Open(m_hWnd, L"Explorer");\r
@@ -351,6 +353,11 @@ void CGitLogListBase::FillBackGround(HDC hdc, int Index,CRect &rect)
                        //if (pLogEntry->bCopiedSelf)\r
                        //      brush = ::CreateSolidBrush(::GetSysColor(COLOR_MENU));\r
                        //else\r
+                       if(pLogEntry->m_Action&CTGitPath::LOGACTIONS_REBASE_SQUASH)\r
+                               brush = ::CreateSolidBrush(RGB(156,156,156));\r
+                       else if(pLogEntry->m_Action&CTGitPath::LOGACTIONS_REBASE_EDIT)\r
+                               brush = ::CreateSolidBrush(RGB(200,200,128));\r
+                       else \r
                                brush = ::CreateSolidBrush(::GetSysColor(COLOR_WINDOW));\r
                }\r
                if (brush == NULL)\r
@@ -698,6 +705,22 @@ void CGitLogListBase::OnNMCustomdrawLoglist(NMHDR *pNMHDR, LRESULT *pResult)
                                        if (data->bCopies)\r
                                                crText = m_Colors.GetColor(CColors::Modified);\r
 #endif\r
+                                       if (data->m_Action&CTGitPath::LOGACTIONS_REBASE_DONE )\r
+                                               crText = RGB(128,128,128);\r
+\r
+                                       if(data->m_Action&CTGitPath::LOGACTIONS_REBASE_SQUASH)\r
+                                               pLVCD->clrTextBk = RGB(156,156,156);\r
+                                       else if(data->m_Action&CTGitPath::LOGACTIONS_REBASE_EDIT)\r
+                                               pLVCD->clrTextBk  = RGB(200,200,128);\r
+                                       else \r
+                                               pLVCD->clrTextBk  = ::GetSysColor(COLOR_WINDOW);\r
+\r
+                                       if(data->m_Action&CTGitPath::LOGACTIONS_REBASE_CURRENT)\r
+                                       {\r
+                                               SelectObject(pLVCD->nmcd.hdc, m_boldFont);\r
+                                               *pResult = CDRF_NOTIFYSUBITEMDRAW | CDRF_NEWFONT;\r
+                                       }\r
+\r
 //                                     if ((data->childStackDepth)||(m_mergedRevs.find(data->Rev) != m_mergedRevs.end()))\r
 //                                             crText = GetSysColor(COLOR_GRAYTEXT);\r
 //                                     if (data->Rev == m_wcRev)\r
index 8159247..d8944d9 100644 (file)
@@ -17,6 +17,7 @@ CRebaseDlg::CRebaseDlg(CWnd* pParent /*=NULL*/)
     , m_bEditAll(FALSE)\r
 {\r
        m_RebaseStage=CHOOSE_BRANCH;\r
+       m_CurrentRebaseIndex=-1;\r
 }\r
 \r
 CRebaseDlg::~CRebaseDlg()\r
@@ -44,6 +45,7 @@ BEGIN_MESSAGE_MAP(CRebaseDlg, CResizableStandAloneDialog)
     ON_BN_CLICKED(IDC_SQUASH_ALL, &CRebaseDlg::OnBnClickedSquashAll)\r
     ON_BN_CLICKED(IDC_EDIT_ALL, &CRebaseDlg::OnBnClickedEditAll)\r
     ON_BN_CLICKED(IDC_REBASE_SPLIT, &CRebaseDlg::OnBnClickedRebaseSplit)\r
+       ON_BN_CLICKED(IDC_REBASE_CONTINUE,OnBnClickedContinue)\r
        ON_WM_SIZE()\r
        ON_CBN_SELCHANGE(IDC_REBASE_COMBOXEX_BRANCH,   &CRebaseDlg::OnCbnSelchangeBranch)\r
        ON_CBN_SELCHANGE(IDC_REBASE_COMBOXEX_UPSTREAM, &CRebaseDlg::OnCbnSelchangeUpstream)\r
@@ -384,4 +386,41 @@ BOOL CRebaseDlg::PreTranslateMessage(MSG*pMsg)
 {\r
        m_tooltips.RelayEvent(pMsg);\r
        return CResizableStandAloneDialog::PreTranslateMessage(pMsg);\r
+}\r
+\r
+void CRebaseDlg::OnBnClickedContinue()\r
+{\r
+       GitRev *prevRev,*curRev;\r
+       prevRev=curRev=NULL;\r
+       CRect rect;\r
+       if( m_CurrentRebaseIndex >= m_CommitList.m_arShownList.GetSize())\r
+               return;\r
+\r
+       if( m_CurrentRebaseIndex >= 0)\r
+       {\r
+               prevRev=(GitRev*)m_CommitList.m_arShownList[m_CurrentRebaseIndex];\r
+       }\r
+       m_CurrentRebaseIndex++;\r
+       if(m_CurrentRebaseIndex<m_CommitList.m_arShownList.GetSize())\r
+       {\r
+               curRev=(GitRev*)m_CommitList.m_arShownList[m_CurrentRebaseIndex];\r
+\r
+       }\r
+       if(prevRev)\r
+       {\r
+               prevRev->m_Action &= ~ CTGitPath::LOGACTIONS_REBASE_CURRENT;\r
+               prevRev->m_Action |= CTGitPath::LOGACTIONS_REBASE_DONE;\r
+               m_CommitList.GetItemRect(m_CurrentRebaseIndex-1,&rect,LVIR_BOUNDS);\r
+               m_CommitList.InvalidateRect(rect);\r
+\r
+       }\r
+\r
+       if(curRev)\r
+       {\r
+               curRev->m_Action |= CTGitPath::LOGACTIONS_REBASE_CURRENT;\r
+               m_CommitList.GetItemRect(m_CurrentRebaseIndex,&rect,LVIR_BOUNDS);\r
+               m_CommitList.InvalidateRect(rect);\r
+       }\r
+\r
+       \r
 }
\ No newline at end of file
index af7a0f7..357a053 100644 (file)
@@ -60,6 +60,7 @@ public:
        afx_msg void OnSize(UINT nType, int cx, int cy);\r
        afx_msg void OnCbnSelchangeBranch();\r
        afx_msg void OnCbnSelchangeUpstream();\r
+       afx_msg void OnBnClickedContinue();\r
 \r
     CProgressCtrl m_ProgressBar;\r
     CStatic m_CtrlStatusText;\r
@@ -83,5 +84,6 @@ public:
 \r
        void AddBranchToolTips(CHistoryCombo *pBranch);\r
        \r
+       int m_CurrentRebaseIndex;\r
 \r
 };\r