1 // SubmoduleAddDlg.cpp : implementation file
6 #include "SubmoduleAddDlg.h"
7 #include "BrowseFolder.h"
8 #include "MessageBox.h"
10 // CSubmoduleAddDlg dialog
12 IMPLEMENT_DYNAMIC(CSubmoduleAddDlg
, CResizableStandAloneDialog
)
14 CSubmoduleAddDlg::CSubmoduleAddDlg(CWnd
* pParent
/*=NULL*/)
15 : CResizableStandAloneDialog(CSubmoduleAddDlg::IDD
, pParent
)
22 CSubmoduleAddDlg::~CSubmoduleAddDlg()
26 void CSubmoduleAddDlg::DoDataExchange(CDataExchange
* pDX
)
28 CDialog::DoDataExchange(pDX
);
29 DDX_Control(pDX
, IDC_COMBOBOXEX_REPOSITORY
, m_Repository
);
30 DDX_Control(pDX
, IDC_COMBOBOXEX_PATH
, m_PathCtrl
);
31 DDX_Check(pDX
, IDC_BRANCH_CHECK
, m_bBranch
);
32 DDX_Text(pDX
, IDC_SUBMODULE_BRANCH
, m_strBranch
);
36 BEGIN_MESSAGE_MAP(CSubmoduleAddDlg
, CResizableStandAloneDialog
)
37 ON_COMMAND(IDC_REP_BROWSE
, OnRepBrowse
)
38 ON_COMMAND(IDC_BUTTON_PATH_BROWSE
, OnPathBrowse
)
39 ON_COMMAND(IDC_BRANCH_CHECK
, OnBranchCheck
)
43 // CSubmoduleAddDlg message handlers
45 BOOL
CSubmoduleAddDlg::OnInitDialog()
47 CResizableStandAloneDialog::OnInitDialog();
49 AddAnchor(IDOK
,BOTTOM_RIGHT
);
50 AddAnchor(IDCANCEL
,BOTTOM_RIGHT
);
51 AddAnchor(IDC_GROUP_SUBMODULE
,TOP_LEFT
,BOTTOM_RIGHT
);
52 AddAnchor(IDC_COMBOBOXEX_REPOSITORY
,TOP_LEFT
,TOP_RIGHT
);
53 AddAnchor(IDC_COMBOBOXEX_PATH
,TOP_LEFT
,TOP_RIGHT
);
54 AddAnchor(IDC_REP_BROWSE
,TOP_RIGHT
);
55 AddAnchor(IDC_BUTTON_PATH_BROWSE
,TOP_RIGHT
);
56 AddAnchor(IDC_BRANCH_CHECK
,BOTTOM_LEFT
);
57 AddAnchor(IDC_SUBMODULE_BRANCH
,BOTTOM_LEFT
,BOTTOM_RIGHT
);
58 AddAnchor(IDHELP
, BOTTOM_RIGHT
);
62 EnableSaveRestore(_T("SubmoduleAddDlg"));
64 m_Repository
.SetURLHistory(true);
65 m_PathCtrl
.SetPathHistory(true);
67 m_Repository
.LoadHistory(_T("Software\\TortoiseGit\\History\\SubModuleRepoURLS"), _T("url"));
68 m_PathCtrl
.LoadHistory(_T("Software\\TortoiseGit\\History\\SubModulePath"), _T("url"));
69 m_PathCtrl
.SetWindowText(m_strPath
);
70 m_Repository
.SetCurSel(0);
72 GetDlgItem(IDC_GROUP_SUBMODULE
)->SetWindowText(CString(_T("Submodule of Project: "))+m_strProject
);
77 void CSubmoduleAddDlg::OnRepBrowse()
79 CBrowseFolder browseFolder
;
80 browseFolder
.m_style
= BIF_EDITBOX
| BIF_NEWDIALOGSTYLE
| BIF_RETURNFSANCESTORS
| BIF_RETURNONLYFSDIRS
;
82 this->m_Repository
.GetWindowTextW(strDirectory
);
83 if (browseFolder
.Show(GetSafeHwnd(), strDirectory
) == CBrowseFolder::OK
)
85 this->m_Repository
.SetWindowTextW(strDirectory
);
88 void CSubmoduleAddDlg::OnPathBrowse()
90 CBrowseFolder browseFolder
;
91 browseFolder
.m_style
= BIF_EDITBOX
| BIF_NEWDIALOGSTYLE
| BIF_RETURNFSANCESTORS
| BIF_RETURNONLYFSDIRS
;
93 this->m_PathCtrl
.GetWindowTextW(strDirectory
);
94 if (browseFolder
.Show(GetSafeHwnd(), strDirectory
,g_Git
.m_CurrentDir
) == CBrowseFolder::OK
)
96 this->m_PathCtrl
.SetWindowTextW(strDirectory
);
99 void CSubmoduleAddDlg::OnBranchCheck()
104 this->GetDlgItem(IDC_SUBMODULE_BRANCH
)->ShowWindow(TRUE
);
107 this->GetDlgItem(IDC_SUBMODULE_BRANCH
)->ShowWindow(FALSE
);
111 void CSubmoduleAddDlg::OnOK()
117 if(m_strBranch
.IsEmpty())
119 CMessageBox::Show(NULL
,_T("Branch can't be empty"),_T("TortoiseGit"),MB_OK
|MB_ICONERROR
);
123 m_Repository
.SaveHistory();
124 m_PathCtrl
.SaveHistory();
126 this->m_strPath
=m_PathCtrl
.GetString();
127 this->m_strRepos
=m_Repository
.GetString();
131 if(m_strPath
.IsEmpty())
133 CMessageBox::Show(NULL
,_T("Path can't be empty"),_T("TortoiseGit"),MB_OK
|MB_ICONERROR
);
136 if(m_strRepos
.IsEmpty())
138 CMessageBox::Show(NULL
,_T("Repository can't be empty"),_T("TortoiseGit"),MB_OK
|MB_ICONERROR
);