#include "stdafx.h"\r
#include "TortoiseProc.h"\r
#include "CloneDlg.h"\r
-\r
+#include "BrowseFolder.h"\r
+#include "MessageBox.h"\r
\r
// CCloneDlg dialog\r
\r
-IMPLEMENT_DYNCREATE(CCloneDlg, CDHtmlDialog)\r
+IMPLEMENT_DYNCREATE(CCloneDlg, CResizableStandAloneDialog)\r
\r
CCloneDlg::CCloneDlg(CWnd* pParent /*=NULL*/)\r
- : CDHtmlDialog(CCloneDlg::IDD, CCloneDlg::IDH, pParent)\r
+ : CResizableStandAloneDialog(CCloneDlg::IDD, pParent)\r
+ , m_Directory(_T(""))\r
{\r
\r
}\r
\r
void CCloneDlg::DoDataExchange(CDataExchange* pDX)\r
{\r
- CDHtmlDialog::DoDataExchange(pDX);\r
+ CResizableStandAloneDialog::DoDataExchange(pDX);\r
+ DDX_Control(pDX, IDC_URLCOMBO, m_URLCombo);\r
+ DDX_Text(pDX, IDC_CLONE_DIR, m_Directory);\r
}\r
\r
BOOL CCloneDlg::OnInitDialog()\r
{\r
- CDHtmlDialog::OnInitDialog();\r
+ CResizableStandAloneDialog::OnInitDialog();\r
+ AddAnchor(IDC_URLCOMBO, TOP_LEFT, TOP_RIGHT);\r
+ AddAnchor(IDC_CLONE_BROWSE_URL, TOP_RIGHT);\r
+ AddAnchor(IDC_CLONE_DIR, TOP_LEFT,TOP_RIGHT);\r
+ AddAnchor(IDC_CLONE_DIR_BROWSE, TOP_RIGHT);\r
+ AddAnchor(IDOK,BOTTOM_RIGHT);\r
+ AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
+\r
+ m_URLCombo.SetURLHistory(TRUE);\r
+ m_URLCombo.LoadHistory(_T("Software\\TortoiseGit\\History\\repoURLS"), _T("url"));\r
+ if(m_URL.IsEmpty())\r
+ m_URLCombo.SetCurSel(0);\r
+ else\r
+ m_URLCombo.SetWindowTextW(m_URL);\r
+\r
+ CWnd *window=this->GetDlgItem(IDC_CLONE_DIR);\r
+ if(window)\r
+ SHAutoComplete(window->m_hWnd, SHACF_FILESYSTEM);\r
+ \r
return TRUE; // return TRUE unless you set the focus to a control\r
}\r
\r
-BEGIN_MESSAGE_MAP(CCloneDlg, CDHtmlDialog)\r
+BEGIN_MESSAGE_MAP(CCloneDlg, CResizableStandAloneDialog)\r
ON_BN_CLICKED(IDC_CLONE_BROWSE_URL, &CCloneDlg::OnBnClickedCloneBrowseUrl)\r
ON_BN_CLICKED(IDC_CLONE_DIR_BROWSE, &CCloneDlg::OnBnClickedCloneDirBrowse)\r
END_MESSAGE_MAP()\r
\r
-BEGIN_DHTML_EVENT_MAP(CCloneDlg)\r
- DHTML_EVENT_ONCLICK(_T("ButtonOK"), OnButtonOK)\r
- DHTML_EVENT_ONCLICK(_T("ButtonCancel"), OnButtonCancel)\r
-END_DHTML_EVENT_MAP()\r
-\r
\r
\r
// CCloneDlg message handlers\r
\r
-HRESULT CCloneDlg::OnButtonOK(IHTMLElement* /*pElement*/)\r
+void CCloneDlg::OnOK()\r
{\r
- OnOK();\r
- return S_OK;\r
+ this->m_URLCombo.GetWindowTextW(m_URL);\r
+ m_URL.Trim();\r
+ UpdateData(TRUE);\r
+ if(m_URL.IsEmpty()||m_Directory.IsEmpty())\r
+ {\r
+ CMessageBox::Show(NULL,_T("URL or Dir can't empty"),_T("TortiseGit"),MB_OK);\r
+ return;\r
+ }\r
+ m_URLCombo.SaveHistory();\r
+ CResizableDialog::OnOK();\r
+\r
}\r
\r
-HRESULT CCloneDlg::OnButtonCancel(IHTMLElement* /*pElement*/)\r
+void CCloneDlg::OnCancel()\r
{\r
- OnCancel();\r
- return S_OK;\r
+ CResizableDialog::OnCancel();\r
}\r
\r
void CCloneDlg::OnBnClickedCloneBrowseUrl()\r
{\r
// TODO: Add your control notification handler code here\r
+ CBrowseFolder browseFolder;\r
+ browseFolder.m_style = BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;\r
+ CString strCloneDirectory;\r
+ this->m_URLCombo.GetWindowTextW(strCloneDirectory);\r
+ if (browseFolder.Show(GetSafeHwnd(), strCloneDirectory) == CBrowseFolder::OK) \r
+ {\r
+ this->m_URLCombo.SetWindowTextW(strCloneDirectory);\r
+ }\r
}\r
\r
void CCloneDlg::OnBnClickedCloneDirBrowse()\r
{\r
// TODO: Add your control notification handler code here\r
+ CBrowseFolder browseFolder;\r
+ browseFolder.m_style = BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;\r
+ CString strCloneDirectory = this->m_Directory;\r
+ if (browseFolder.Show(GetSafeHwnd(), strCloneDirectory) == CBrowseFolder::OK) \r
+ {\r
+ UpdateData(TRUE);\r
+ m_Directory = strCloneDirectory;\r
+ UpdateData(FALSE);\r
+ }\r
+}\r
+\r
+void CCloneDlg::OnEnChangeCloneDir()\r
+{\r
+ // TODO: If this is a RICHEDIT control, the control will not\r
+ // send this notification unless you override the CDHtmlDialog::OnInitDialog()\r
+ // function and call CRichEditCtrl().SetEventMask()\r
+ // with the ENM_CHANGE flag ORed into the mask.\r
+\r
+ // TODO: Add your control notification handler code here\r
}\r