OSDN Git Service

Add Submodule Sync Command
[tortoisegit/TortoiseGitJp.git] / src / TortoiseProc / CloneDlg.cpp
1 // CloneDlg.cpp : implementation file\r
2 //\r
3 \r
4 #include "stdafx.h"\r
5 #include "TortoiseProc.h"\r
6 #include "CloneDlg.h"\r
7 #include "BrowseFolder.h"\r
8 #include "MessageBox.h"\r
9 \r
10 // CCloneDlg dialog\r
11 \r
12 IMPLEMENT_DYNCREATE(CCloneDlg, CResizableStandAloneDialog)\r
13 \r
14 CCloneDlg::CCloneDlg(CWnd* pParent /*=NULL*/)\r
15         : CResizableStandAloneDialog(CCloneDlg::IDD, pParent)\r
16         , m_Directory(_T(""))\r
17 {\r
18 \r
19 }\r
20 \r
21 CCloneDlg::~CCloneDlg()\r
22 {\r
23 }\r
24 \r
25 void CCloneDlg::DoDataExchange(CDataExchange* pDX)\r
26 {\r
27         CResizableStandAloneDialog::DoDataExchange(pDX);\r
28         DDX_Control(pDX, IDC_URLCOMBO, m_URLCombo);\r
29         DDX_Text(pDX, IDC_CLONE_DIR, m_Directory);\r
30 }\r
31 \r
32 BOOL CCloneDlg::OnInitDialog()\r
33 {\r
34         CResizableStandAloneDialog::OnInitDialog();\r
35         AddAnchor(IDC_URLCOMBO, TOP_LEFT, TOP_RIGHT);\r
36         AddAnchor(IDC_CLONE_BROWSE_URL, TOP_RIGHT);\r
37         AddAnchor(IDC_CLONE_DIR, TOP_LEFT,TOP_RIGHT);\r
38         AddAnchor(IDC_CLONE_DIR_BROWSE, TOP_RIGHT);\r
39         AddAnchor(IDOK,BOTTOM_RIGHT);\r
40         AddAnchor(IDCANCEL,BOTTOM_RIGHT);\r
41 \r
42         this->AddOthersToAnchor();\r
43 \r
44         m_URLCombo.SetURLHistory(TRUE);\r
45         m_URLCombo.LoadHistory(_T("Software\\TortoiseGit\\History\\repoURLS"), _T("url"));\r
46         if(m_URL.IsEmpty())\r
47                 m_URLCombo.SetCurSel(0);\r
48         else\r
49                 m_URLCombo.SetWindowTextW(m_URL);\r
50 \r
51         CWnd *window=this->GetDlgItem(IDC_CLONE_DIR);\r
52         if(window)\r
53                 SHAutoComplete(window->m_hWnd, SHACF_FILESYSTEM);\r
54 \r
55         EnableSaveRestore(_T("CloneDlg"));\r
56         return TRUE;  // return TRUE  unless you set the focus to a control\r
57 }\r
58 \r
59 BEGIN_MESSAGE_MAP(CCloneDlg, CResizableStandAloneDialog)\r
60         ON_BN_CLICKED(IDC_CLONE_BROWSE_URL, &CCloneDlg::OnBnClickedCloneBrowseUrl)\r
61         ON_BN_CLICKED(IDC_CLONE_DIR_BROWSE, &CCloneDlg::OnBnClickedCloneDirBrowse)\r
62 END_MESSAGE_MAP()\r
63 \r
64 \r
65 \r
66 // CCloneDlg message handlers\r
67 \r
68 void CCloneDlg::OnOK()\r
69 {\r
70         this->m_URLCombo.GetWindowTextW(m_URL);\r
71         m_URL.Trim();\r
72         UpdateData(TRUE);\r
73         if(m_URL.IsEmpty()||m_Directory.IsEmpty())\r
74         {\r
75                 CMessageBox::Show(NULL,_T("URL or Dir can't empty"),_T("TortiseGit"),MB_OK);\r
76                 return;\r
77         }\r
78         m_URLCombo.SaveHistory();\r
79         CResizableDialog::OnOK();\r
80 \r
81 }\r
82 \r
83 void CCloneDlg::OnCancel()\r
84 {\r
85         CResizableDialog::OnCancel();\r
86 }\r
87 \r
88 void CCloneDlg::OnBnClickedCloneBrowseUrl()\r
89 {\r
90         // TODO: Add your control notification handler code here\r
91         CBrowseFolder browseFolder;\r
92         browseFolder.m_style = BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;\r
93         CString strCloneDirectory;\r
94         this->m_URLCombo.GetWindowTextW(strCloneDirectory);\r
95         if (browseFolder.Show(GetSafeHwnd(), strCloneDirectory) == CBrowseFolder::OK) \r
96         {\r
97                 this->m_URLCombo.SetWindowTextW(strCloneDirectory);\r
98         }\r
99 }\r
100 \r
101 void CCloneDlg::OnBnClickedCloneDirBrowse()\r
102 {\r
103         // TODO: Add your control notification handler code here\r
104         CBrowseFolder browseFolder;\r
105         browseFolder.m_style = BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;\r
106         CString strCloneDirectory = this->m_Directory;\r
107         if (browseFolder.Show(GetSafeHwnd(), strCloneDirectory) == CBrowseFolder::OK) \r
108         {\r
109                 UpdateData(TRUE);\r
110                 m_Directory = strCloneDirectory;\r
111                 UpdateData(FALSE);\r
112         }\r
113 }\r
114 \r
115 void CCloneDlg::OnEnChangeCloneDir()\r
116 {\r
117         // TODO:  If this is a RICHEDIT control, the control will not\r
118         // send this notification unless you override the CDHtmlDialog::OnInitDialog()\r
119         // function and call CRichEditCtrl().SetEventMask()\r
120         // with the ENM_CHANGE flag ORed into the mask.\r
121 \r
122         // TODO:  Add your control notification handler code here\r
123 }\r