OSDN Git Service

Fixed issue #118: Enhancement: "Git Clone" from SVN repository with additional start...
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / CloneDlg.cpp
index 67c9ebc..382d3f4 100644 (file)
@@ -24,6 +24,8 @@ CCloneDlg::CCloneDlg(CWnd* pParent /*=NULL*/)
        m_strSVNTrunk = _T("trunk");\r
        m_strSVNTags = _T("tags");\r
        m_strSVNBranchs = _T("branches");\r
+\r
+       m_nSVNFrom = 0;\r
 }\r
 \r
 CCloneDlg::~CCloneDlg()\r
@@ -42,10 +44,12 @@ void CCloneDlg::DoDataExchange(CDataExchange* pDX)
        DDX_Check(pDX,IDC_CHECK_SVN_TRUNK, m_bSVNTrunk);\r
        DDX_Check(pDX,IDC_CHECK_SVN_TAG, m_bSVNTags);\r
        DDX_Check(pDX,IDC_CHECK_SVN_BRANCH, m_bSVNBranch);\r
+       DDX_Check(pDX,IDC_CHECK_SVN_FROM, m_bSVNFrom);\r
 \r
        DDX_Text(pDX, IDC_EDIT_SVN_TRUNK, m_strSVNTrunk);\r
        DDX_Text(pDX, IDC_EDIT_SVN_TAG, m_strSVNTags);\r
        DDX_Text(pDX, IDC_EDIT_SVN_BRANCH, m_strSVNBranchs);\r
+       DDX_Text(pDX, IDC_EDIT_SVN_FROM, this->m_nSVNFrom);\r
 \r
 }\r
 \r
@@ -113,6 +117,7 @@ BEGIN_MESSAGE_MAP(CCloneDlg, CResizableStandAloneDialog)
        ON_BN_CLICKED(IDC_CHECK_SVN_TRUNK, &CCloneDlg::OnBnClickedCheckSvnTrunk)\r
        ON_BN_CLICKED(IDC_CHECK_SVN_TAG, &CCloneDlg::OnBnClickedCheckSvnTag)\r
        ON_BN_CLICKED(IDC_CHECK_SVN_BRANCH, &CCloneDlg::OnBnClickedCheckSvnBranch)\r
+       ON_BN_CLICKED(IDC_CHECK_SVN_FROM, &CCloneDlg::OnBnClickedCheckSvnFrom)\r
 END_MESSAGE_MAP()\r
 \r
 \r
@@ -228,6 +233,7 @@ void CCloneDlg::OnCbnEditchangeUrlcombo()
        this->UpdateData();\r
        CString url;\r
        m_URLCombo.GetWindowText(url);\r
+\r
        if(m_OldURL == url )\r
                return;\r
 \r
@@ -301,10 +307,36 @@ void CCloneDlg::OnCbnEditchangeUrlcombo()
 \r
 void CCloneDlg::OnBnClickedCheckSvn()\r
 {\r
+       this->UpdateData();\r
+\r
+       if(this->m_bSVN)\r
+       {\r
+               CString str;\r
+               m_URLCombo.GetWindowText(str);\r
+\r
+               while(str.GetLength()>=1 && \r
+                       str[str.GetLength()-1] == _T('\\') &&\r
+                       str[str.GetLength()-1] == _T('/'))\r
+               {\r
+                       str=str.Left(str.GetLength()-1);\r
+               }\r
+               if(str.GetLength()>=5 && (str.Right(5).MakeLower() == _T("trunk") ))\r
+               {\r
+                       this->m_bSVNBranch=this->m_bSVNTags=this->m_bSVNTrunk = FALSE;\r
+                       this->UpdateData(FALSE);\r
+               }else\r
+               {\r
+                       this->m_bSVNBranch=this->m_bSVNTags=this->m_bSVNTrunk = TRUE;\r
+                       this->UpdateData(FALSE);\r
+               }\r
+\r
+       }\r
+\r
        // TODO: Add your control notification handler code here\r
        OnBnClickedCheckSvnTrunk();\r
        OnBnClickedCheckSvnTag();\r
        OnBnClickedCheckSvnBranch();\r
+       OnBnClickedCheckSvnFrom();\r
 }\r
 \r
 void CCloneDlg::OnBnClickedCheckSvnTrunk()\r
@@ -330,3 +362,11 @@ void CCloneDlg::OnBnClickedCheckSvnBranch()
        this->GetDlgItem(IDC_CHECK_SVN_BRANCH)->EnableWindow(this->m_bSVN);\r
        this->GetDlgItem(IDC_EDIT_SVN_BRANCH)->EnableWindow(this->m_bSVNBranch&&this->m_bSVN);\r
 }\r
+\r
+void CCloneDlg::OnBnClickedCheckSvnFrom()\r
+{\r
+       // TODO: Add your control notification handler code here\r
+       UpdateData(TRUE);\r
+       this->GetDlgItem(IDC_CHECK_SVN_FROM)->EnableWindow(this->m_bSVN);\r
+       this->GetDlgItem(IDC_EDIT_SVN_FROM)->EnableWindow(this->m_bSVNFrom&&this->m_bSVN);\r
+}\r