DDX_Control(pDX, IDC_STATIC_STATUS, m_ctrlStatus);\r
DDX_Control(pDX, IDC_PROGRESS_SYNC, m_ctrlProgress);\r
DDX_Control(pDX, IDC_ANIMATE_SYNC, m_ctrlAnimate);\r
-\r
+ DDX_Control(pDX, IDC_BUTTON_SUBMODULE,m_ctrlSubmodule);\r
BRANCH_COMBOX_DDX;\r
}\r
\r
ON_CBN_EDITCHANGE(IDC_COMBOBOXEX_URL, &CSyncDlg::OnCbnEditchangeComboboxexUrl)\r
ON_MESSAGE(MSG_PROGRESSDLG_UPDATE_UI, OnProgressUpdateUI)\r
ON_BN_CLICKED(IDC_BUTTON_COMMIT, &CSyncDlg::OnBnClickedButtonCommit)\r
+ ON_BN_CLICKED(IDC_BUTTON_SUBMODULE, &CSyncDlg::OnBnClickedButtonSubmodule)\r
END_MESSAGE_MAP()\r
\r
\r
GetDlgItem(IDC_BUTTON_APPLY)->EnableWindow(bEnabled);\r
GetDlgItem(IDC_BUTTON_EMAIL)->EnableWindow(bEnabled);\r
GetDlgItem(IDOK)->EnableWindow(bEnabled);\r
+ GetDlgItem(IDC_BUTTON_SUBMODULE)->EnableWindow(bEnabled);\r
}\r
// CSyncDlg message handlers\r
\r
AddAnchor(IDC_BUTTON_MANAGE,TOP_RIGHT);\r
AddAnchor(IDC_BUTTON_PULL,BOTTOM_LEFT);\r
AddAnchor(IDC_BUTTON_PUSH,BOTTOM_LEFT);\r
- AddAnchor(IDC_BUTTON_APPLY,BOTTOM_LEFT);\r
- AddAnchor(IDC_BUTTON_EMAIL,BOTTOM_LEFT);\r
+ AddAnchor(IDC_BUTTON_SUBMODULE,BOTTOM_LEFT);\r
+ AddAnchor(IDC_BUTTON_APPLY,BOTTOM_RIGHT);\r
+ AddAnchor(IDC_BUTTON_EMAIL,BOTTOM_RIGHT);\r
AddAnchor(IDC_PROGRESS_SYNC,TOP_LEFT,TOP_RIGHT);\r
AddAnchor(IDOK,BOTTOM_RIGHT);\r
AddAnchor(IDHELP,BOTTOM_RIGHT);\r
AddAnchor(IDC_STATIC_STATUS,BOTTOM_LEFT);\r
AddAnchor(IDC_ANIMATE_SYNC,TOP_LEFT);\r
AddAnchor(IDC_BUTTON_COMMIT,BOTTOM_LEFT);\r
- \r
+\r
BRANCH_COMBOX_ADD_ANCHOR();\r
\r
this->GetDlgItem(IDC_BUTTON_COMMIT)->ShowWindow(SW_HIDE);\r
this->m_ctrlPull.AddEntry(CString(_T("Fetc&h")));\r
this->m_ctrlPull.AddEntry(CString(_T("Fetch&&Re&base")));\r
\r
+ this->m_ctrlSubmodule.AddEntry(CString(_T("Submodule Update")));\r
+ this->m_ctrlSubmodule.AddEntry(CString(_T("Submodule Init")));\r
+ this->m_ctrlSubmodule.AddEntry(CString(_T("Submodule Sync")));\r
\r
WorkingDir.Replace(_T(':'),_T('_'));\r
\r
\r
this->m_regPullButton = CRegDWORD(regkey+_T("\\Pull"),0);\r
this->m_regPushButton = CRegDWORD(regkey+_T("\\Push"),0);\r
+ this->m_regSubmoduleButton = CRegDWORD(regkey+_T("\\Submodule"));\r
\r
this->m_ctrlPull.SetCurrentEntry(this->m_regPullButton);\r
this->m_ctrlPush.SetCurrentEntry(this->m_regPushButton);\r
+ this->m_ctrlSubmodule.SetCurrentEntry(this->m_regSubmoduleButton);\r
\r
CString str;\r
this->GetWindowText(str);\r
{\r
FetchComplete();\r
}\r
+ if(this->m_CurrentCmd == GIT_COMMAND_SUBMODULE)\r
+ {\r
+ //this->m_ctrlCmdOut.SetSel(-1,-1);\r
+ //this->m_ctrlCmdOut.ReplaceSel(_T("Done\r\n"));\r
+ //this->m_ctrlCmdOut.SetSel(-1,-1);\r
+ EnableControlButton(true);\r
+ SwitchToInput();\r
+ }\r
}\r
\r
if(lParam != 0)\r
SaveHistory();\r
__super::OnOK();\r
}\r
+\r
+void CSyncDlg::OnBnClickedButtonSubmodule()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ // TODO: Add your control notification handler code here\r
+ this->UpdateData();\r
+ UpdateCombox();\r
+\r
+ this->m_regSubmoduleButton = this->m_ctrlSubmodule.GetCurrentEntry();\r
+\r
+ this->SwitchToRun();\r
+ \r
+ this->m_bAbort=false;\r
+ this->m_GitCmdList.clear();\r
+\r
+ ShowTab(IDC_CMD_LOG);\r
+\r
+ CString cmd;\r
+\r
+ switch (m_ctrlSubmodule.GetCurrentEntry())\r
+ {\r
+ case 0:\r
+ cmd=_T("git.exe submodule update");\r
+ break;\r
+ case 1:\r
+ cmd=_T("git.exe submodule init");\r
+ break;\r
+ case 2:\r
+ cmd=_T("git.exe submodule sync");\r
+ break;\r
+ }\r
+\r
+ \r
+ m_GitCmdList.push_back(cmd);\r
+\r
+ m_CurrentCmd = GIT_COMMAND_SUBMODULE;\r
+\r
+ m_pThread = AfxBeginThread(ProgressThreadEntry, this, THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);\r
+ if (m_pThread==NULL)\r
+ {\r
+// ReportError(CString(MAKEINTRESOURCE(IDS_ERR_THREADSTARTFAILED)));\r
+ }\r
+ else\r
+ {\r
+ m_pThread->m_bAutoDelete = TRUE;\r
+ m_pThread->ResumeThread();\r
+ }\r
+\r
+}\r
enum { GIT_COMMAND_PUSH,\r
GIT_COMMAND_PULL,\r
GIT_COMMAND_FETCH,\r
- GIT_COMMAND_FETCHANDREBASE\r
+ GIT_COMMAND_FETCHANDREBASE,\r
+ GIT_COMMAND_SUBMODULE,\r
};\r
protected:\r
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support\r
\r
CRegDWORD m_regPullButton;\r
CRegDWORD m_regPushButton;\r
+ CRegDWORD m_regSubmoduleButton;\r
+\r
CMFCTabCtrl m_ctrlTabCtrl;\r
\r
CBalloon m_tooltips;\r
CMenuButton m_ctrlPull;\r
CMenuButton m_ctrlPush;\r
CMenuButton m_ctrlStatus;\r
+ CMenuButton m_ctrlSubmodule;\r
afx_msg void OnBnClickedButtonPull();\r
afx_msg void OnBnClickedButtonPush();\r
afx_msg void OnBnClickedButtonApply();\r
afx_msg void OnBnClickedButtonCommit();\r
protected:\r
virtual void OnOK();\r
+public:\r
+ afx_msg void OnBnClickedButtonSubmodule();\r
};\r