4 #include "BrowseRefsDlg.h"
\r
13 CHistoryCombo m_ChooseVersioinBranch;
\r
14 CHistoryCombo m_ChooseVersioinTags;
\r
15 CHistoryCombo m_ChooseVersioinVersion;
\r
17 //Notification when version changed. Can be implemented in derived classes.
\r
18 virtual void OnVersionChanged(){}
\r
20 afx_msg void OnBnClickedChooseRadio()
\r
22 this->m_ChooseVersioinTags.EnableWindow(FALSE);
\r
23 this->m_ChooseVersioinBranch.EnableWindow(FALSE);
\r
24 this->m_ChooseVersioinVersion.EnableWindow(FALSE);
\r
25 int radio=m_pWin->GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);
\r
28 case IDC_RADIO_HEAD:
\r
30 case IDC_RADIO_BRANCH:
\r
31 this->m_ChooseVersioinBranch.EnableWindow(TRUE);
\r
33 case IDC_RADIO_TAGS:
\r
34 this->m_ChooseVersioinTags.EnableWindow(TRUE);
\r
36 case IDC_RADIO_VERSION:
\r
37 this->m_ChooseVersioinVersion.EnableWindow(TRUE);
\r
40 // enable version browse button if Version is selected
\r
41 m_pWin->GetDlgItem(IDC_BUTTON_SHOW)->EnableWindow(radio == IDC_RADIO_VERSION);
\r
45 void OnBnClickedChooseVersion()
\r
47 // use the git log to allow selection of a version
\r
49 // tell the dialog to use mode for selecting revisions
\r
50 dlg.SetSelect(true);
\r
51 // only one revision must be selected however
\r
52 dlg.SingleSelection(true);
\r
53 if ( dlg.DoModal() == IDOK )
\r
55 // get selected hash if any
\r
56 CString selectedHash = dlg.GetSelectedHash();
\r
57 // load into window, do this even if empty so that it is clear that nothing has been selected
\r
58 m_ChooseVersioinVersion.SetWindowText( selectedHash );
\r
63 void UpdateRevsionName()
\r
65 int radio=m_pWin->GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);
\r
68 case IDC_RADIO_HEAD:
\r
69 this->m_VersionName=_T("HEAD");
\r
71 case IDC_RADIO_BRANCH:
\r
72 this->m_VersionName=m_ChooseVersioinBranch.GetString();
\r
74 case IDC_RADIO_TAGS:
\r
75 this->m_VersionName=m_ChooseVersioinTags.GetString();
\r
77 case IDC_RADIO_VERSION:
\r
78 this->m_VersionName=m_ChooseVersioinVersion.GetString();
\r
82 void SetDefaultChoose(int id)
\r
84 m_pWin->CheckRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION,id);
\r
85 OnBnClickedChooseRadio();
\r
88 void OnBnClickedButtonBrowseRef()
\r
91 UpdateRevsionName();
\r
92 CString resultRef = CBrowseRefsDlg::PickRef(false, m_VersionName, gPickRef_All);
\r
93 if(resultRef.IsEmpty())
\r
95 if(wcsncmp(resultRef,L"refs/",5)==0)
\r
96 resultRef = resultRef.Mid(5);
\r
97 if(wcsncmp(resultRef,L"heads/",6)==0)
\r
99 resultRef = resultRef.Mid(6);
\r
100 SetDefaultChoose(IDC_RADIO_BRANCH);
\r
101 m_ChooseVersioinBranch.SetCurSel(
\r
102 m_ChooseVersioinBranch.FindStringExact(-1, resultRef));
\r
104 else if(wcsncmp(resultRef,L"remotes/",8)==0)
\r
106 SetDefaultChoose(IDC_RADIO_BRANCH);
\r
107 m_ChooseVersioinBranch.SetCurSel(
\r
108 m_ChooseVersioinBranch.FindStringExact(-1, resultRef));
\r
110 else if(wcsncmp(resultRef,L"tags/",5)==0)
\r
112 resultRef = resultRef.Mid(5);
\r
113 SetDefaultChoose(IDC_RADIO_TAGS);
\r
114 m_ChooseVersioinTags.SetCurSel(
\r
115 m_ChooseVersioinTags.FindStringExact(-1, resultRef));
\r
117 OnVersionChanged();
\r
123 m_ChooseVersioinBranch.SetMaxHistoryItems(0x7FFFFFFF);
\r
124 m_ChooseVersioinTags.SetMaxHistoryItems(0x7FFFFFFF);
\r
126 STRING_VECTOR list;
\r
127 g_Git.GetTagList(list);
\r
128 m_ChooseVersioinTags.AddString(list);
\r
132 g_Git.GetBranchList(list,¤t,CGit::BRANCH_ALL);
\r
133 m_ChooseVersioinBranch.AddString(list);
\r
134 m_ChooseVersioinBranch.SetCurSel(current);
\r
137 OnVersionChanged();
\r
140 CString m_VersionName;
\r
141 CChooseVersion(CWnd *win)
\r
149 #define CHOOSE_VERSION_DDX \
\r
150 DDX_Control(pDX, IDC_COMBOBOXEX_BRANCH, m_ChooseVersioinBranch); \
\r
151 DDX_Control(pDX, IDC_COMBOBOXEX_TAGS, m_ChooseVersioinTags); \
\r
152 DDX_Control(pDX, IDC_COMBOBOXEX_VERSION, m_ChooseVersioinVersion);
\r
154 #define CHOOSE_VERSION_EVENT\
\r
155 ON_BN_CLICKED(IDC_RADIO_HEAD, OnBnClickedChooseRadioHost)\
\r
156 ON_BN_CLICKED(IDC_RADIO_BRANCH, OnBnClickedChooseRadioHost)\
\r
157 ON_BN_CLICKED(IDC_RADIO_TAGS, OnBnClickedChooseRadioHost)\
\r
158 ON_BN_CLICKED(IDC_BUTTON_SHOW, OnBnClickedShow)\
\r
159 ON_BN_CLICKED(IDC_RADIO_VERSION, OnBnClickedChooseRadioHost)\
\r
160 ON_BN_CLICKED(IDC_BUTTON_BROWSE_REF, OnBnClickedButtonBrowseRefHost)
\r
162 #define CHOOSE_VERSION_ADDANCHOR \
\r
164 AddAnchor(IDC_COMBOBOXEX_BRANCH, TOP_LEFT, TOP_RIGHT); \
\r
165 AddAnchor(IDC_COMBOBOXEX_TAGS, TOP_LEFT, TOP_RIGHT); \
\r
166 AddAnchor(IDC_COMBOBOXEX_VERSION, TOP_LEFT, TOP_RIGHT); \
\r
167 AddAnchor(IDC_GROUP_BASEON, TOP_LEFT, TOP_RIGHT); \
\r
168 AddAnchor(IDC_BUTTON_SHOW,TOP_RIGHT); \
\r
169 AddAnchor(IDC_BUTTON_BROWSE_REF,TOP_RIGHT); \
\r
172 #define CHOOSE_EVENT_RADIO() \
\r
173 afx_msg void OnBnClickedChooseRadioHost(){OnBnClickedChooseRadio();}\
\r
174 afx_msg void OnBnClickedShow(){OnBnClickedChooseVersion();}\
\r
175 afx_msg void OnBnClickedButtonBrowseRefHost(){OnBnClickedButtonBrowseRef();}
\r