From 4bca43245f710712ebc0c36ecce544913092dcc9 Mon Sep 17 00:00:00 2001 From: Frank Li Date: Mon, 12 Apr 2010 20:36:28 +0800 Subject: [PATCH] Can't change branch name when branch is not default name Signed-off-by: Frank Li --- src/TortoiseProc/CreateBranchTagDlg.cpp | 31 +++++++++++++++++++++++-------- src/TortoiseProc/CreateBranchTagDlg.h | 1 + 2 files changed, 24 insertions(+), 8 deletions(-) diff --git a/src/TortoiseProc/CreateBranchTagDlg.cpp b/src/TortoiseProc/CreateBranchTagDlg.cpp index d61f6553d..84cc708b2 100644 --- a/src/TortoiseProc/CreateBranchTagDlg.cpp +++ b/src/TortoiseProc/CreateBranchTagDlg.cpp @@ -126,21 +126,36 @@ void CCreateBranchTagDlg::OnCbnSelchangeComboboxexBranch() if(this->m_ChooseVersioinBranch.GetString().Left(8)==_T("remotes/")) { - this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(TRUE); - - m_BranchTagName= m_ChooseVersioinBranch.GetString(); - int start =0; - start = m_BranchTagName.ReverseFind(_T('/')); + bool isDefault = false; + this->UpdateData(); + + CString str = this->m_OldSelectBranch; + int start = str.ReverseFind(_T('/')); if(start>=0) - m_BranchTagName = m_BranchTagName.Mid(start+1); - - UpdateData(FALSE); + str=str.Mid(start+1); + if(str == m_BranchTagName) + isDefault =true; + + if( m_BranchTagName.IsEmpty() || isDefault) + { + this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(TRUE); + + m_BranchTagName= m_ChooseVersioinBranch.GetString(); + int start =0; + start = m_BranchTagName.ReverseFind(_T('/')); + if(start>=0) + m_BranchTagName = m_BranchTagName.Mid(start+1); + + UpdateData(FALSE); + } } else this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE); if(this->m_bIsTag) this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE); + + m_OldSelectBranch = m_ChooseVersioinBranch.GetString(); } void CCreateBranchTagDlg::OnVersionChanged() diff --git a/src/TortoiseProc/CreateBranchTagDlg.h b/src/TortoiseProc/CreateBranchTagDlg.h index dfcc359c4..0f8ea5906 100644 --- a/src/TortoiseProc/CreateBranchTagDlg.h +++ b/src/TortoiseProc/CreateBranchTagDlg.h @@ -24,6 +24,7 @@ public: CString m_Base; CString m_BranchTagName; CString m_Message; + CString m_OldSelectBranch; protected: virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support virtual BOOL OnInitDialog(); -- 2.11.4.GIT