#include "StdAfx.h"\r
#include "SwitchCommand.h"\r
\r
-#include "SwitchDlg.h"\r
-//#include "SVNProgressDlg.h"\r
+#include "GitSwitchDlg.h"\r
+#include "ProgressDlg.h"\r
#include "MessageBox.h"\r
\r
bool SwitchCommand::Execute()\r
{\r
- CSwitchDlg dlg;\r
- dlg.m_path = cmdLinePath.GetWinPathString();\r
-\r
+ CGitSwitchDlg dlg;\r
+ \r
if (dlg.DoModal() == IDOK)\r
{\r
-#if 0\r
- CSVNProgressDlg progDlg;\r
- theApp.m_pMainWnd = &progDlg;\r
- progDlg.SetCommand(CSVNProgressDlg::SVNProgress_Switch);\r
- if (parser.HasVal(_T("closeonend")))\r
- progDlg.SetAutoClose(parser.GetLongVal(_T("closeonend")));\r
- progDlg.SetPathList(CTSVNPathList(cmdLinePath));\r
- progDlg.SetUrl(dlg.m_URL);\r
- progDlg.SetRevision(dlg.Revision);\r
- progDlg.DoModal();\r
- return !progDlg.DidErrorsOccur();\r
-#endif;\r
- return true;\r
+ CString cmd;\r
+ CString track;\r
+ CString base;\r
+ CString force;\r
+ CString branch;\r
+\r
+ if(dlg.m_bBranch)\r
+ branch.Format(_T("-b %s"),dlg.m_NewBranch);\r
+ if(dlg.m_bForce)\r
+ force=_T("-f");\r
+ if(dlg.m_bTrack)\r
+ track=_T("--track");\r
+\r
+ cmd.Format(_T("git.exe checkout %s %s %s %s"),\r
+ force,\r
+ track,\r
+ branch,\r
+ dlg.m_Base);\r
+\r
+ CProgressDlg progress;\r
+ progress.m_GitCmd=cmd;\r
+ if(progress.DoModal()==IDOK)\r
+ return TRUE;\r
+\r
}\r
return false;\r
}\r
--- /dev/null
+// GitSwitch.cpp : implementation file\r
+//\r
+\r
+#include "stdafx.h"\r
+#include "TortoiseProc.h"\r
+#include "GitSwitchDlg.h"\r
+\r
+#include "Git.h"\r
+#include "Messagebox.h"\r
+\r
+// CGitSwitchDlg dialog\r
+\r
+IMPLEMENT_DYNAMIC(CGitSwitchDlg, CResizableStandAloneDialog)\r
+\r
+CGitSwitchDlg::CGitSwitchDlg(CWnd* pParent /*=NULL*/)\r
+ : CResizableStandAloneDialog(CGitSwitchDlg::IDD, pParent)\r
+{\r
+ m_bBranch=FALSE;\r
+}\r
+\r
+CGitSwitchDlg::~CGitSwitchDlg()\r
+{\r
+}\r
+\r
+void CGitSwitchDlg::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
+ 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_BRANCH,this->m_bBranch);\r
+\r
+ DDX_Text(pDX,IDC_EDIT_BRANCH,this->m_NewBranch);\r
+}\r
+\r
+\r
+BEGIN_MESSAGE_MAP(CGitSwitchDlg, CResizableStandAloneDialog)\r
+ ON_BN_CLICKED(IDC_RADIO_BRANCH, &CGitSwitchDlg::OnBnClickedRadio)\r
+ ON_BN_CLICKED(IDC_RADIO_TAGS, &CGitSwitchDlg::OnBnClickedRadio)\r
+ ON_BN_CLICKED(IDC_RADIO_VERSION, &CGitSwitchDlg::OnBnClickedRadio)\r
+ ON_BN_CLICKED(IDC_CHECK_BRANCH, &CGitSwitchDlg::OnBnClickedCheckBranch)\r
+ ON_BN_CLICKED(IDOK, &CGitSwitchDlg::OnBnClickedOk)\r
+ ON_CBN_SELCHANGE(IDC_COMBOBOXEX_BRANCH, &CGitSwitchDlg::OnCbnSelchangeComboboxexBranch)\r
+END_MESSAGE_MAP()\r
+\r
+BOOL CGitSwitchDlg::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
+\r
+ AddAnchor(IDC_GROUP_BASEON, TOP_LEFT, TOP_RIGHT);\r
+ AddAnchor(IDC_GROUP_OPTION, TOP_LEFT, TOP_RIGHT);\r
+\r
+ AddAnchor(IDC_EDIT_BRANCH, TOP_LEFT, TOP_RIGHT);\r
+\r
+ AddAnchor(IDOK,BOTTOM_RIGHT);\r
+ AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+\r
+\r
+ AddAnchor(IDC_BUTTON_SHOW,TOP_RIGHT);\r
+ \r
+\r
+\r
+ CheckRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION,IDC_RADIO_BRANCH);\r
+\r
+ CStringList list;\r
+ g_Git.GetTagList(list);\r
+ m_Tags.AddString(list);\r
+\r
+ list.RemoveAll();\r
+ int current;\r
+ g_Git.GetBranchList(list,¤t,CGit::BRANCH_ALL);\r
+ m_Branch.AddString(list);\r
+ m_Branch.SetCurSel(current);\r
+\r
+ m_Version.LoadHistory(_T("Software\\TortoiseGit\\History\\VersionHash"), _T("hash"));\r
+ m_Version.SetCurSel(0);\r
+\r
+ OnBnClickedRadio();\r
+ OnBnClickedCheckBranch();\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
+\r
+ return TRUE;\r
+\r
+\r
+}\r
+// CCreateBranchTagDlg message handlers\r
+\r
+void CGitSwitchDlg::OnBnClickedRadio()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ this->m_Branch.EnableWindow(FALSE);\r
+ this->m_Tags.EnableWindow(FALSE);\r
+ this->m_Version.EnableWindow(FALSE);\r
+ int radio=GetCheckedRadioButton(IDC_RADIO_HEAD,IDC_RADIO_VERSION);\r
+ \r
+ switch (radio)\r
+ {\r
+ case IDC_RADIO_BRANCH:\r
+ this->m_Branch.EnableWindow(TRUE);\r
+ break;\r
+ case IDC_RADIO_TAGS:\r
+ this->m_Tags.EnableWindow(TRUE); \r
+ break;\r
+ case IDC_RADIO_VERSION:\r
+ this->m_Version.EnableWindow(TRUE);\r
+ break;\r
+ }\r
+ OnCbnSelchangeComboboxexBranch();\r
+ OnBnClickedCheckBranch();\r
+ \r
+\r
+}\r
+\r
+void CGitSwitchDlg::OnBnClickedOk()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ this->UpdateData(TRUE);\r
+ \r
+ int radio=GetCheckedRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION);\r
+ switch (radio)\r
+ {\r
+ case IDC_RADIO_BRANCH:\r
+ this->m_Base=m_Branch.GetString();\r
+ break;\r
+ case IDC_RADIO_TAGS:\r
+ this->m_Base=m_Tags.GetString();\r
+ this->m_bTrack=FALSE;\r
+ break;\r
+ case IDC_RADIO_VERSION:\r
+ this->m_Base=m_Version.GetString();\r
+ this->m_bTrack=FALSE;\r
+ break;\r
+ }\r
+ if(m_bBranch)\r
+ {\r
+ if(this->m_NewBranch.Trim().IsEmpty())\r
+ {\r
+ CMessageBox::Show(NULL,_T("Branch can't empty"),_T("TortoiseGit"),MB_OK);\r
+ return;\r
+ }\r
+ }\r
+ this->m_Version.SaveHistory();\r
+\r
+ OnOK();\r
+}\r
+void CGitSwitchDlg::OnBnClickedCheckBranch()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ this->UpdateData(TRUE);\r
+ \r
+ int radio=GetCheckedRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION);\r
+ if(radio==IDC_RADIO_TAGS || radio==IDC_RADIO_VERSION)\r
+ {\r
+ this->m_bBranch=TRUE;\r
+ this->UpdateData(FALSE);\r
+ if(radio==IDC_RADIO_TAGS)\r
+ GetDlgItem(IDC_EDIT_BRANCH)->SetWindowTextW(CString(_T("Branch_"))+m_Tags.GetString());\r
+ if(radio==IDC_RADIO_VERSION)\r
+ GetDlgItem(IDC_EDIT_BRANCH)->SetWindowTextW(CString(_T("Branch_"))+m_Version.GetString());\r
+\r
+ }else\r
+ {\r
+ this->m_bBranch=FALSE;\r
+ this->UpdateData(FALSE);\r
+ }\r
+\r
+ this->GetDlgItem(IDC_EDIT_BRANCH)->EnableWindow(this->m_bBranch);\r
+}\r
+\r
+void CGitSwitchDlg::OnCbnSelchangeComboboxexBranch()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ int radio=GetCheckedRadioButton(IDC_RADIO_BRANCH,IDC_RADIO_VERSION);\r
+ if(this->m_Branch.GetString().Left(6)==_T("origin") && radio==IDC_RADIO_BRANCH )\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(TRUE);\r
+ else\r
+ this->GetDlgItem(IDC_CHECK_TRACK)->EnableWindow(FALSE);\r
+}\r
>\r
</File>\r
<File\r
- RelativePath=".\explorer.ico"\r
+ RelativePath="..\Resources\explorer.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\explorer.ico"\r
+ RelativePath=".\explorer.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\newfolder.ico"\r
+ RelativePath="..\Resources\newfolder.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\newfolder.ico"\r
+ RelativePath=".\newfolder.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\open.ico"\r
+ RelativePath="..\Resources\open.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\open.ico"\r
+ RelativePath=".\open.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\save.ico"\r
+ RelativePath="..\Resources\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\save.ico"\r
+ RelativePath=".\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\saveas.ico"\r
+ RelativePath="..\Resources\saveas.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\saveas.ico"\r
+ RelativePath=".\saveas.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\up.ico"\r
+ RelativePath="..\Resources\up.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\up.ico"\r
+ RelativePath=".\up.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\GitSwitch.cpp"\r
+ RelativePath=".\GitSwitchDlg.cpp"\r
>\r
</File>\r
<File\r
- RelativePath=".\GitSwitch.h"\r
+ RelativePath=".\GitSwitchDlg.h"\r
>\r
</File>\r
<File\r