OSDN Git Service

Add launch rebase option at fetch dialog.
authorFrank Li <lznuaa@gmail.com>
Tue, 14 Jul 2009 16:04:42 +0000 (00:04 +0800)
committerFrank Li <lznuaa@gmail.com>
Tue, 14 Jul 2009 16:04:42 +0000 (00:04 +0800)
Signed-off-by: Frank Li <lznuaa@gmail.com>
src/Resources/TortoiseProcENG.rc
src/TortoiseProc/Commands/FetchCommand.cpp
src/TortoiseProc/PullFetchDlg.cpp
src/TortoiseProc/PullFetchDlg.h

index 959e282..cefbb60 100644 (file)
Binary files a/src/Resources/TortoiseProcENG.rc and b/src/Resources/TortoiseProcENG.rc differ
index 3d0f260..86f168c 100644 (file)
@@ -26,6 +26,7 @@
 #include "PullFetchDlg.h"\r
 #include "ProgressDlg.h"\r
 #include "AppUtils.h"\r
+#include "RebaseDlg.h"\r
 \r
 bool FetchCommand::Execute()\r
 {\r
@@ -46,7 +47,18 @@ bool FetchCommand::Execute()
                CProgressDlg progress;\r
                progress.m_GitCmd=cmd;\r
                if(progress.DoModal()==IDOK)\r
+               {\r
+                       if( progress.m_GitStatus ==0 && dlg.m_bRebase)\r
+                       {\r
+                                       CRebaseDlg dlg;\r
+                                       if(dlg.DoModal() == IDOK)\r
+                                       {\r
+                                               return TRUE;\r
+                                       }\r
+\r
+                       }\r
                        return TRUE;\r
+               }\r
        }\r
 #if 0\r
        CCloneDlg dlg;\r
index 92ff743..16805de 100644 (file)
 IMPLEMENT_DYNAMIC(CPullFetchDlg, CResizableStandAloneDialog)\r
 \r
 CPullFetchDlg::CPullFetchDlg(CWnd* pParent /*=NULL*/)\r
-       : CResizableStandAloneDialog(CPullFetchDlg::IDD, pParent),\r
-         m_bRebase(false)\r
+       : CResizableStandAloneDialog(CPullFetchDlg::IDD, pParent)\r
 {\r
        m_IsPull=TRUE;\r
     m_bAutoLoad = CAppUtils::IsSSHPutty();\r
     m_bAutoLoadEnable=true;\r
+       m_regRebase = false;\r
 }\r
 \r
 CPullFetchDlg::~CPullFetchDlg()\r
@@ -61,6 +61,17 @@ BOOL CPullFetchDlg::OnInitDialog()
     AddAnchor(IDC_REMOTE_MANAGE,BOTTOM_LEFT);\r
        AddAnchor(IDHELP, BOTTOM_RIGHT);\r
 \r
+       CString WorkingDir=g_Git.m_CurrentDir;\r
+       WorkingDir.Replace(_T(':'),_T('_'));\r
+\r
+       CString regkey ;\r
+       regkey.Format(_T("Software\\TortoiseGit\\TortoiseProc\\PullFetch\\%s_%d\\rebase"),WorkingDir,this->m_IsPull);\r
+       m_regRebase=CRegDWORD(regkey,false);\r
+\r
+       this->m_bRebase = m_regRebase;\r
+\r
+       this->UpdateData(FALSE);\r
+\r
     this->AddOthersToAnchor();\r
 \r
     this->GetDlgItem(IDC_PUTTYKEY_AUTOLOAD)->EnableWindow(m_bAutoLoadEnable);\r
@@ -71,8 +82,7 @@ BOOL CPullFetchDlg::OnInitDialog()
        if(!m_IsPull)\r
                m_RemoteBranch.EnableWindow(FALSE);\r
 \r
-//     if(!m_IsPull)\r
-               //Todo: implement rebase option sometime with rebase dialog\r
+       if(m_IsPull)\r
                GetDlgItem(IDC_CHECK_REBASE)->ShowWindow(SW_HIDE);\r
 \r
        m_Other.SetURLHistory(TRUE);\r
@@ -86,8 +96,6 @@ BOOL CPullFetchDlg::OnInitDialog()
        m_RemoteBranch.LoadHistory(_T("Software\\TortoiseGit\\History\\PullRemoteBranch"), _T("br"));\r
        m_RemoteBranch.SetCurSel(0);\r
 \r
-       CString WorkingDir=g_Git.m_CurrentDir;\r
-\r
        if(m_IsPull)\r
                this->SetWindowTextW(CString(_T("Pull - "))+WorkingDir);\r
        else\r
@@ -154,6 +162,7 @@ void CPullFetchDlg::OnBnClickedRd()
 \r
 void CPullFetchDlg::OnBnClickedOk()\r
 {\r
+       this->UpdateData();\r
        // TODO: Add your control notification handler code here\r
        if( GetCheckedRadioButton(IDC_REMOTE_RD,IDC_OTHER_RD) == IDC_REMOTE_RD)\r
        {\r
@@ -173,11 +182,13 @@ void CPullFetchDlg::OnBnClickedOk()
                m_RemoteBranchName=m_RemoteBranch.GetString();\r
                \r
        }\r
-\r
+       \r
        m_RemoteReg = m_Remote.GetString();\r
 \r
        m_Other.SaveHistory();\r
        m_RemoteBranch.SaveHistory();\r
+       this->m_regRebase=this->m_bRebase;\r
+\r
        this->OnOK();\r
 }\r
 \r
index 469d774..813ac91 100644 (file)
@@ -24,7 +24,8 @@ protected:
        CHistoryCombo   m_RemoteBranch;\r
        virtual BOOL OnInitDialog();\r
        CRegString m_RemoteReg;\r
-       \r
+       CRegDWORD       m_regRebase;\r
+\r
        DECLARE_MESSAGE_MAP()\r
 public:\r
        BOOL        m_IsPull;\r