//\r
\r
#include "stdafx.h"\r
+#include "Git.h"\r
#include "TortoiseProc.h"\r
#include "CreateBranchTagDlg.h"\r
\r
+#include "Messagebox.h"\r
\r
// CCreateBranchTagDlg dialog\r
\r
IMPLEMENT_DYNAMIC(CCreateBranchTagDlg, CResizableStandAloneDialog)\r
\r
CCreateBranchTagDlg::CCreateBranchTagDlg(CWnd* pParent /*=NULL*/)\r
- : CResizableStandAloneDialog(CCreateBranchTagDlg::IDD, pParent)\r
+ : CResizableStandAloneDialog(CCreateBranchTagDlg::IDD, pParent),\r
+ CChooseVersion(this)\r
{\r
-\r
+ m_bIsTag=0;\r
+ m_bSwitch = 0; // default switch to checkbox not selected\r
}\r
\r
CCreateBranchTagDlg::~CCreateBranchTagDlg()\r
void CCreateBranchTagDlg::DoDataExchange(CDataExchange* pDX)\r
{\r
CDialog::DoDataExchange(pDX);\r
- DDX_Control(pDX, IDC_COMBOBOXEX_BRANCH, this->m_Branch);\r
- DDX_Control(pDX, IDC_COMBOBOXEX_TAGS, this->m_Tags);\r
- DDX_Control(pDX, IDC_COMBOBOXEX_VERSION, this->m_Version);\r
- \r
+\r
+ CHOOSE_VERSION_DDX;\r
+\r
DDX_Text(pDX, IDC_BRANCH_TAG, this->m_BranchTagName);\r
DDX_Check(pDX,IDC_CHECK_FORCE,this->m_bForce);\r
DDX_Check(pDX,IDC_CHECK_TRACK,this->m_bTrack);\r
+ DDX_Check(pDX,IDC_CHECK_SWITCH,this->m_bSwitch);\r
\r
}\r
\r
\r
BEGIN_MESSAGE_MAP(CCreateBranchTagDlg, CResizableStandAloneDialog)\r
+ CHOOSE_VERSION_EVENT\r
+ ON_BN_CLICKED(IDOK, &CCreateBranchTagDlg::OnBnClickedOk)\r
+ ON_CBN_SELCHANGE(IDC_COMBOBOXEX_BRANCH, &CCreateBranchTagDlg::OnCbnSelchangeComboboxexBranch)\r
END_MESSAGE_MAP()\r
\r
BOOL CCreateBranchTagDlg::OnInitDialog()\r
{\r
CResizableStandAloneDialog::OnInitDialog();\r
\r
- AddAnchor(IDC_COMBOBOXEX_BRANCH, TOP_LEFT, TOP_RIGHT);\r
- AddAnchor(IDC_COMBOBOXEX_TAGS, TOP_LEFT, TOP_RIGHT);\r
- AddAnchor(IDC_COMBOBOXEX_VERSION, TOP_LEFT, TOP_RIGHT);\r
+ CHOOSE_VERSION_ADDANCHOR;\r
\r
AddAnchor(IDC_GROUP_BRANCH, TOP_LEFT, TOP_RIGHT);\r
- AddAnchor(IDC_GROUP_BASEON, TOP_LEFT, TOP_RIGHT);\r
+ \r
AddAnchor(IDC_GROUP_OPTION, TOP_LEFT, TOP_RIGHT);\r
\r
AddAnchor(IDOK,BOTTOM_RIGHT);\r
AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
\r
+ this->AddOthersToAnchor();\r
+\r
+ if(m_Base.IsEmpty())\r
+ {\r
+ this->SetDefaultChoose(IDC_RADIO_HEAD);\r
+ \r
+ }else\r
+ {\r
+ this->SetDefaultChoose(IDC_RADIO_VERSION);\r
+ this->GetDlgItem(IDC_COMBOBOXEX_VERSION)->SetWindowTextW(m_Base);\r
+ }\r
+\r
+ Init();\r
+\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
+\r
+ if(this->m_bIsTag)\r
+ {\r
+ this->SetWindowTextW(_T("Create Tag"));\r
+ this->GetDlgItem(IDC_LABEL_BRANCH)->SetWindowTextW(_T("Tag"));\r
+ }\r
+ else\r
+ {\r
+ this->SetWindowTextW(_T("Create Branch"));\r
+ this->GetDlgItem(IDC_LABEL_BRANCH)->SetWindowTextW(_T("Branch"));\r
+ }\r
+ // show the switch checkbox if we are a create branch dialog\r
+ this->GetDlgItem(IDC_CHECK_SWITCH)->ShowWindow( !m_bIsTag );\r
+ CWnd* pHead = GetDlgItem(IDC_RADIO_HEAD);\r
+ CString HeadText;\r
+ pHead->GetWindowText( HeadText ); \r
+ pHead->SetWindowText( HeadText + " (" + g_Git.GetCurrentBranch() + ")");\r
+ EnableSaveRestore(_T("BranchTagDlg"));\r
+\r
+ OnCbnSelchangeComboboxexBranch();\r
return TRUE;\r
\r
\r
}\r
// CCreateBranchTagDlg message handlers\r
+\r
+void CCreateBranchTagDlg::OnBnClickedOk()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ this->UpdateData(TRUE);\r
+\r
+ this->m_BranchTagName.Trim();\r
+ if(this->m_BranchTagName.IsEmpty() || this->m_BranchTagName.Find(' ') >= 0 )\r
+ {\r
+ CMessageBox::Show(NULL, IDS_B_T_NOTEMPTY, IDS_TORTOISEGIT, MB_OK);\r
+ return;\r
+ }\r
+ this->UpdateRevsionName();\r
+ OnOK();\r
+}\r
+\r
+void CCreateBranchTagDlg::OnCbnSelchangeComboboxexBranch()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ \r
+ if(this->m_ChooseVersioinBranch.GetString().Left(8)==_T("remotes/"))\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(TRUE);\r
+ else\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
+\r
+ if(this->m_bIsTag)\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
+}\r