BrowseRefs: Context menu enhancements
[TortoiseGit.git] / src / TortoiseProc / SubmoduleAddDlg.cpp
blob13aa51b6ef569ffe307996a257f9bcc0a215aa3d
1 // SubmoduleAddDlg.cpp : implementation file
2 //
4 #include "stdafx.h"
5 #include "resource.h"
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)
16 , m_bBranch(FALSE)
17 , m_strBranch(_T(""))
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)
40 END_MESSAGE_MAP()
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);
60 AddOthersToAnchor();
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);
74 return TRUE;
77 void CSubmoduleAddDlg::OnRepBrowse()
79 CBrowseFolder browseFolder;
80 browseFolder.m_style = BIF_EDITBOX | BIF_NEWDIALOGSTYLE | BIF_RETURNFSANCESTORS | BIF_RETURNONLYFSDIRS;
81 CString strDirectory;
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;
92 CString strDirectory;
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()
101 this->UpdateData();
102 if(this->m_bBranch)
104 this->GetDlgItem(IDC_SUBMODULE_BRANCH)->ShowWindow(TRUE);
105 }else
107 this->GetDlgItem(IDC_SUBMODULE_BRANCH)->ShowWindow(FALSE);
111 void CSubmoduleAddDlg::OnOK()
113 this->UpdateData();
114 if(m_bBranch)
116 m_strBranch.Trim();
117 if(m_strBranch.IsEmpty())
119 CMessageBox::Show(NULL,_T("Branch can't be empty"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);
120 return ;
123 m_Repository.SaveHistory();
124 m_PathCtrl.SaveHistory();
126 this->m_strPath=m_PathCtrl.GetString();
127 this->m_strRepos=m_Repository.GetString();
129 m_strPath.Trim();
130 m_strRepos.Trim();
131 if(m_strPath.IsEmpty())
133 CMessageBox::Show(NULL,_T("Path can't be empty"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);
134 return ;
136 if(m_strRepos.IsEmpty())
138 CMessageBox::Show(NULL,_T("Repository can't be empty"),_T("TortoiseGit"),MB_OK|MB_ICONERROR);
139 return ;
141 __super::OnOK();