OSDN Git Service

Use unified Version Choose Code
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / CreateBranchTagDlg.cpp
1 // CreateBranchTagDlg.cpp : implementation file\r
2 //\r
3 \r
4 #include "stdafx.h"\r
5 #include "TortoiseProc.h"\r
6 #include "CreateBranchTagDlg.h"\r
7 #include "Git.h"\r
8 #include "Messagebox.h"\r
9 \r
10 // CCreateBranchTagDlg dialog\r
11 \r
12 IMPLEMENT_DYNAMIC(CCreateBranchTagDlg, CResizableStandAloneDialog)\r
13 \r
14 CCreateBranchTagDlg::CCreateBranchTagDlg(CWnd* pParent /*=NULL*/)\r
15         : CResizableStandAloneDialog(CCreateBranchTagDlg::IDD, pParent)\r
16 {\r
17         m_bIsTag=0;\r
18 }\r
19 \r
20 CCreateBranchTagDlg::~CCreateBranchTagDlg()\r
21 {\r
22 }\r
23 \r
24 void CCreateBranchTagDlg::DoDataExchange(CDataExchange* pDX)\r
25 {\r
26         CDialog::DoDataExchange(pDX);\r
27         DDX_Control(pDX, IDC_COMBOBOXEX_BRANCH, this->m_Branch);\r
28         DDX_Control(pDX, IDC_COMBOBOXEX_TAGS, this->m_Tags);\r
29         DDX_Control(pDX, IDC_COMBOBOXEX_VERSION, this->m_Version);\r
30                                 \r
31         DDX_Text(pDX, IDC_BRANCH_TAG, this->m_BranchTagName);\r
32         DDX_Check(pDX,IDC_CHECK_FORCE,this->m_bForce);\r
33         DDX_Check(pDX,IDC_CHECK_TRACK,this->m_bTrack);\r
34 \r
35 }\r
36 \r
37 \r
38 BEGIN_MESSAGE_MAP(CCreateBranchTagDlg, CResizableStandAloneDialog)\r
39         ON_BN_CLICKED(IDC_RADIO_HEAD, &CCreateBranchTagDlg::OnBnClickedRadio)\r
40         ON_BN_CLICKED(IDC_RADIO_BRANCH, &CCreateBranchTagDlg::OnBnClickedRadio)\r
41         ON_BN_CLICKED(IDC_RADIO_TAGS, &CCreateBranchTagDlg::OnBnClickedRadio)\r
42         ON_BN_CLICKED(IDC_RADIO_VERSION, &CCreateBranchTagDlg::OnBnClickedRadio)\r
43         ON_BN_CLICKED(IDOK, &CCreateBranchTagDlg::OnBnClickedOk)\r
44         ON_CBN_SELCHANGE(IDC_COMBOBOXEX_BRANCH, &CCreateBranchTagDlg::OnCbnSelchangeComboboxexBranch)\r
45 END_MESSAGE_MAP()\r
46 \r
47 BOOL CCreateBranchTagDlg::OnInitDialog()\r
48 {\r
49         CResizableStandAloneDialog::OnInitDialog();\r
50 \r
51         AddAnchor(IDC_COMBOBOXEX_BRANCH, TOP_LEFT, TOP_RIGHT);\r
52         AddAnchor(IDC_COMBOBOXEX_TAGS, TOP_LEFT, TOP_RIGHT);\r
53         AddAnchor(IDC_COMBOBOXEX_VERSION, TOP_LEFT, TOP_RIGHT);\r
54         AddAnchor(IDC_GROUP_BASEON, TOP_LEFT, TOP_RIGHT);\r
55 \r
56         AddAnchor(IDC_GROUP_BRANCH, TOP_LEFT, TOP_RIGHT);\r
57         \r
58         AddAnchor(IDC_GROUP_OPTION, TOP_LEFT, TOP_RIGHT);\r
59 \r
60         AddAnchor(IDOK,BOTTOM_RIGHT);\r
61         AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
62 \r
63 \r
64         CheckRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION,IDC_RADIO_HEAD);\r
65 \r
66         CStringList list;\r
67         g_Git.GetTagList(list);\r
68         m_Tags.AddString(list);\r
69 \r
70         list.RemoveAll();\r
71         int current;\r
72         g_Git.GetBranchList(list,&current,CGit::BRANCH_ALL);\r
73         m_Branch.AddString(list);\r
74         m_Branch.SetCurSel(current);\r
75 \r
76         m_Version.LoadHistory(_T("Software\\TortoiseGit\\History\\VersionHash"), _T("hash"));\r
77         m_Version.SetCurSel(0);\r
78 \r
79         OnBnClickedRadio();\r
80         this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
81 \r
82         if(this->m_bIsTag)\r
83         {\r
84                 this->SetWindowTextW(_T("Create Tag"));\r
85                 this->GetDlgItem(IDC_LABEL_BRANCH)->SetWindowTextW(_T("Tag"));\r
86         }\r
87         else\r
88         {\r
89                 this->SetWindowTextW(_T("Create Branch"));\r
90                 this->GetDlgItem(IDC_LABEL_BRANCH)->SetWindowTextW(_T("Branch"));\r
91         }\r
92         \r
93         return TRUE;\r
94 \r
95 \r
96 }\r
97 // CCreateBranchTagDlg message handlers\r
98 \r
99 void CCreateBranchTagDlg::OnBnClickedRadio()\r
100 {\r
101         // TODO: Add your control notification handler code here\r
102         this->m_Branch.EnableWindow(FALSE);\r
103         this->m_Tags.EnableWindow(FALSE);\r
104         this->m_Version.EnableWindow(FALSE);\r
105         int radio=GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);\r
106         switch (radio)\r
107         {\r
108         case IDC_RADIO_HEAD:\r
109                 break;\r
110         case IDC_RADIO_BRANCH:\r
111                 this->m_Branch.EnableWindow(TRUE);\r
112                 break;\r
113         case IDC_RADIO_TAGS:\r
114                 this->m_Tags.EnableWindow(TRUE);\r
115                 break;\r
116         case IDC_RADIO_VERSION:\r
117                 this->m_Version.EnableWindow(TRUE);\r
118                 break;\r
119         }\r
120 }\r
121 \r
122 void CCreateBranchTagDlg::OnBnClickedOk()\r
123 {\r
124         // TODO: Add your control notification handler code here\r
125         this->UpdateData(TRUE);\r
126         if(this->m_BranchTagName.Trim().IsEmpty())\r
127         {\r
128                 CMessageBox::Show(NULL,_T("Branch\Tag name can't empty"),_T("TortiseGit"),MB_OK);\r
129                 return;\r
130         }\r
131         int radio=GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);\r
132         switch (radio)\r
133         {\r
134         case IDC_RADIO_HEAD:\r
135                 this->m_Base=_T("HEAD");\r
136                 break;\r
137         case IDC_RADIO_BRANCH:\r
138                 this->m_Base=m_Branch.GetString();\r
139                 break;\r
140         case IDC_RADIO_TAGS:\r
141                 this->m_Base=m_Tags.GetString();\r
142                 break;\r
143         case IDC_RADIO_VERSION:\r
144                 this->m_Base=m_Version.GetString();\r
145                 break;\r
146         }\r
147         this->m_Version.SaveHistory();\r
148         OnOK();\r
149 }\r
150 \r
151 void CCreateBranchTagDlg::OnCbnSelchangeComboboxexBranch()\r
152 {\r
153         // TODO: Add your control notification handler code here\r
154         \r
155         if(this->m_Branch.GetString().Left(6)==_T("origin"))\r
156                 this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(TRUE);\r
157         else\r
158                 this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
159 \r
160         if(this->m_bIsTag)\r
161                 this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
162 }\r