OSDN Git Service

Add Switch Checkout Dialog
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / MergeDlg.cpp
1 // MergeDlg.cpp : implementation file\r
2 //\r
3 \r
4 #include "stdafx.h"\r
5 #include "TortoiseProc.h"\r
6 #include "MergeDlg.h"\r
7 \r
8 #include "Git.h"\r
9 #include "Messagebox.h"\r
10 // CMergeDlg dialog\r
11 \r
12 IMPLEMENT_DYNAMIC(CMergeDlg, CResizableStandAloneDialog)\r
13 \r
14 CMergeDlg::CMergeDlg(CWnd* pParent /*=NULL*/)\r
15         : CResizableStandAloneDialog(CMergeDlg::IDD, pParent)\r
16 {\r
17 \r
18 }\r
19 \r
20 CMergeDlg::~CMergeDlg()\r
21 {\r
22 }\r
23 \r
24 void CMergeDlg::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_Check(pDX,IDC_CHECK_NOFF,this->m_bNoFF);\r
32         DDX_Check(pDX,IDC_CHECK_SQUASH,this->m_bSquash);\r
33 }\r
34 \r
35 \r
36 BEGIN_MESSAGE_MAP(CMergeDlg, CResizableStandAloneDialog)\r
37         ON_BN_CLICKED(IDC_RADIO_BRANCH, &CMergeDlg::OnBnClickedRadio)\r
38         ON_BN_CLICKED(IDC_RADIO_TAGS, &CMergeDlg::OnBnClickedRadio)\r
39         ON_BN_CLICKED(IDC_RADIO_VERSION, &CMergeDlg::OnBnClickedRadio)\r
40         ON_BN_CLICKED(IDOK, &CMergeDlg::OnBnClickedOk)\r
41 END_MESSAGE_MAP()\r
42 \r
43 \r
44 BOOL CMergeDlg::OnInitDialog()\r
45 {\r
46         CResizableStandAloneDialog::OnInitDialog();\r
47 \r
48         AddAnchor(IDC_COMBOBOXEX_BRANCH, TOP_LEFT, TOP_RIGHT);\r
49         AddAnchor(IDC_COMBOBOXEX_TAGS, TOP_LEFT, TOP_RIGHT);\r
50         AddAnchor(IDC_COMBOBOXEX_VERSION, TOP_LEFT, TOP_RIGHT);\r
51 \r
52         AddAnchor(IDC_GROUP_BASEON, TOP_LEFT, TOP_RIGHT);\r
53         AddAnchor(IDC_GROUP_OPTION, TOP_LEFT, TOP_RIGHT);\r
54 \r
55         AddAnchor(IDC_BUTTON_SHOW, TOP_RIGHT);\r
56         \r
57         AddAnchor(IDOK,BOTTOM_RIGHT);\r
58         AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
59 \r
60 \r
61         CheckRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION,IDC_RADIO_BRANCH);\r
62 \r
63         CStringList list;\r
64         g_Git.GetTagList(list);\r
65         m_Tags.AddString(list);\r
66 \r
67         list.RemoveAll();\r
68         int current;\r
69         g_Git.GetBranchList(list,&current,CGit::BRANCH_ALL);\r
70         m_Branch.AddString(list);\r
71         //m_Branch.SetCurSel(current);\r
72 \r
73         m_Version.LoadHistory(_T("Software\\TortoiseGit\\History\\VersionHash"), _T("hash"));\r
74         m_Version.SetCurSel(0);\r
75 \r
76         OnBnClickedRadio();\r
77                         \r
78         return TRUE;\r
79 }\r
80 \r
81 // CMergeDlg message handlers\r
82 \r
83 void CMergeDlg::OnBnClickedRadio()\r
84 {\r
85         // TODO: Add your control notification handler code here\r
86         this->m_Branch.EnableWindow(FALSE);\r
87         this->m_Tags.EnableWindow(FALSE);\r
88         this->m_Version.EnableWindow(FALSE);\r
89         int radio=GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);\r
90         switch (radio)\r
91         {\r
92         case IDC_RADIO_BRANCH:\r
93                 this->m_Branch.EnableWindow(TRUE);\r
94                 break;\r
95         case IDC_RADIO_TAGS:\r
96                 this->m_Tags.EnableWindow(TRUE);\r
97                 break;\r
98         case IDC_RADIO_VERSION:\r
99                 this->m_Version.EnableWindow(TRUE);\r
100                 break;\r
101         }\r
102 }\r
103 \r
104 void CMergeDlg::OnBnClickedOk()\r
105 {\r
106         // TODO: Add your control notification handler code here\r
107         this->UpdateData(TRUE);\r
108         \r
109         int radio=GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);\r
110         switch (radio)\r
111         {\r
112         case IDC_RADIO_BRANCH:\r
113                 this->m_Base=m_Branch.GetString();\r
114                 break;\r
115         case IDC_RADIO_TAGS:\r
116                 this->m_Base=m_Tags.GetString();\r
117                 break;\r
118         case IDC_RADIO_VERSION:\r
119                 this->m_Base=m_Version.GetString();\r
120                 break;\r
121         }\r
122 \r
123         if(m_Base.Trim().IsEmpty())\r
124         {\r
125                 CMessageBox::Show(NULL,_T("You must choose source"),_T("TortiseGit"),MB_OK);\r
126                 return;\r
127         }\r
128         this->m_Version.SaveHistory();\r
129         OnOK();\r
130 }\r