\r
CSyncDlg::CSyncDlg(CWnd* pParent /*=NULL*/)\r
: CResizableStandAloneDialog(CSyncDlg::IDD, pParent)\r
- , m_bAutoLoadPuttyKey(FALSE)\r
{\r
m_pTooltip=&this->m_tooltips;\r
m_bInited=false;\r
m_CmdOutCurrentPos=0;\r
+ m_bAutoLoadPuttyKey = CAppUtils::IsSSHPutty();\r
}\r
\r
CSyncDlg::~CSyncDlg()\r
{\r
CDialog::DoDataExchange(pDX);\r
DDX_Check(pDX, IDC_CHECK_PUTTY_KEY, m_bAutoLoadPuttyKey);\r
+ DDX_Check(pDX, IDC_CHECK_FORCE,m_bForce);\r
DDX_Control(pDX, IDC_COMBOBOXEX_URL, m_ctrlURL);\r
DDX_Control(pDX, IDC_BUTTON_TABCTRL, m_ctrlDumyButton);\r
DDX_Control(pDX, IDC_BUTTON_PULL, m_ctrlPull);\r
void CSyncDlg::OnBnClickedButtonPush()\r
{\r
// TODO: Add your control notification handler code here\r
+ this->UpdateData();\r
+\r
this->m_regPushButton=this->m_ctrlPush.GetCurrentEntry();\r
this->SwitchToRun();\r
this->m_bAbort=false;\r
this->m_GitCmdList.clear();\r
\r
+ ShowTab(IDC_CMD_LOG);\r
+\r
CString cmd;\r
CString tags;\r
CString force;\r
+ CString all;\r
this->m_strLocalBranch = this->m_ctrlLocalBranch.GetString();\r
this->m_ctrlRemoteBranch.GetWindowText(this->m_strRemoteBranch);\r
this->m_ctrlURL.GetWindowText(this->m_strURL);\r
m_strRemoteBranch=m_strRemoteBranch.Trim();\r
\r
- cmd.Format(_T("git.exe push %s %s \"%s\" %s"),\r
- tags,force,\r
+ this->GetDlgItem(IDC_CHECK_PUTTY_KEY)->EnableWindow(this->m_bAutoLoadPuttyKey);\r
+\r
+ switch (m_ctrlPush.GetCurrentEntry())\r
+ {\r
+ case 1:\r
+ tags = _T(" --tags ");\r
+ break;\r
+ case 2:\r
+ all = _T(" --all ");\r
+ break;\r
+ }\r
+\r
+ if(this->m_bForce)\r
+ force = _T(" --force ");\r
+\r
+ cmd.Format(_T("git.exe push %s %s %s \"%s\" %s"),\r
+ tags,force,all,\r
m_strURL,\r
m_strLocalBranch);\r
\r
\r
m_GitCmdList.push_back(cmd);\r
\r
+ m_CurrentCmd = GIT_COMMAND_PUSH;\r
+\r
+ if(this->m_bAutoLoadPuttyKey)\r
+ {\r
+ CAppUtils::LaunchPAgent(NULL,&this->m_strURL);\r
+ }\r
+\r
m_pThread = AfxBeginThread(ProgressThreadEntry, this, THREAD_PRIORITY_NORMAL,0,CREATE_SUSPENDED);\r
if (m_pThread==NULL)\r
{\r
}\r
\r
m_ctrlTabCtrl.InsertTab(&m_ctrlCmdOut,_T("Log"),-1);\r
- m_ctrlCmdOut.ReplaceSel(_T("Hello"));\r
+ \r
+ //m_ctrlCmdOut.ReplaceSel(_T("Hello"));\r
\r
//---------- Create Commit List Ctrl---------------\r
\r
}\r
\r
m_ctrlTabCtrl.InsertTab(&m_OutLogList,_T("Out Commits"),-1);\r
+ \r
\r
m_OutLogList.InsertGitColumn();\r
\r
\r
this->m_ctrlPush.AddEntry(CString(_T("Push")));\r
this->m_ctrlPush.AddEntry(CString(_T("Push tags")));\r
- this->m_ctrlPush.AddEntry(CString(_T("Push All")));\r
+ ///this->m_ctrlPush.AddEntry(CString(_T("Push All")));\r
\r
this->m_ctrlPull.AddEntry(CString(_T("&Pull")));\r
this->m_ctrlPull.AddEntry(CString(_T("&Fetch")));\r
this->m_bInited=true;\r
FetchOutList();\r
\r
+ m_ctrlTabCtrl.ShowTab(IDC_CMD_LOG-1,false);\r
+\r
return TRUE; // return TRUE unless you set the focus to a control\r
// EXCEPTION: OCX Property Pages should return FALSE\r
}\r
m_tooltips.RelayEvent(pMsg);\r
return __super::PreTranslateMessage(pMsg);\r
}\r
-void CSyncDlg::FetchOutList()\r
+void CSyncDlg::FetchOutList(bool force)\r
{\r
if(!m_bInited)\r
return;\r
CString localbranch;\r
localbranch=this->m_ctrlLocalBranch.GetString();\r
\r
- if(localbranch != m_OutLocalBranch || m_OutRemoteBranch != remotebranch)\r
+ if(localbranch != m_OutLocalBranch || m_OutRemoteBranch != remotebranch || force)\r
{\r
m_OutLogList.ClearText();\r
m_OutLogList.FillGitLog(NULL,CGit:: LOG_INFO_STAT| CGit::LOG_INFO_FILESTATE | CGit::LOG_INFO_SHOW_MERGEDFILE,\r
m_ctrlProgress.SetPos(100);\r
//this->DialogEnableWindow(IDOK,TRUE);\r
\r
- if(wParam == MSG_PROGRESSDLG_END)\r
+ //if(wParam == MSG_PROGRESSDLG_END)\r
{\r
EnableControlButton(true);\r
SwitchToInput();\r
+ this->FetchOutList(true);\r
}\r
}\r
\r
// Dialog Data\r
enum { IDD = IDD_SYNC };\r
\r
+ enum { GIT_COMMAND_PUSH,\r
+ GIT_COMMAND_PULL,\r
+ };\r
protected:\r
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support\r
BRANCH_COMBOX_EVENT_HANDLE();\r
\r
+ int m_CurrentCmd;\r
+\r
CRegDWORD m_regPullButton;\r
CRegDWORD m_regPushButton;\r
CMFCTabCtrl m_ctrlTabCtrl;\r
\r
virtual void LocalBranchChange(){FetchOutList();};\r
virtual void RemoteBranchChange(){FetchOutList();};\r
+ void ShowTab(int windowid)\r
+ {\r
+ this->m_ctrlTabCtrl.ShowTab(windowid-1);\r
+ this->m_ctrlTabCtrl.SetActiveTab(windowid-1);\r
+ }\r
\r
- void FetchOutList();\r
+ void FetchOutList(bool force=false);\r
\r
bool IsURL();\r
\r
}\r
\r
std::vector<CString> m_GitCmdList;\r
+ \r
bool m_bAbort;\r
+\r
int m_GitCmdStatus;\r
\r
CString m_LogText;\r
DECLARE_MESSAGE_MAP()\r
public:\r
BOOL m_bAutoLoadPuttyKey;\r
+ BOOL m_bForce;\r
CString m_strURL;\r
\r
static UINT ProgressThreadEntry(LPVOID pVoid){ return ((CSyncDlg*)pVoid) ->ProgressThread(); };\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\copy.ico"\r
+ RelativePath=".\copy.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\copy.ico"\r
+ RelativePath="..\Resources\copy.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\explorer.ico"\r
+ RelativePath="..\Resources\explorer.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\explorer.ico"\r
+ RelativePath=".\explorer.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\newfolder.ico"\r
+ RelativePath=".\newfolder.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\newfolder.ico"\r
+ RelativePath="..\Resources\newfolder.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\refresh.ico"\r
+ RelativePath=".\refresh.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\refresh.ico"\r
+ RelativePath="..\Resources\refresh.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath=".\save.ico"\r
+ RelativePath="..\Resources\save.ico"\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\save.ico"\r
+ RelativePath=".\save.ico"\r
>\r
</File>\r
<File\r
>\r
</File>\r
<File\r
- RelativePath="..\Resources\up.ico"\r
+ RelativePath=".\up.ico"\r
>\r
</File>\r
<File\r
- RelativePath=".\up.ico"\r
+ RelativePath="..\Resources\up.ico"\r
>\r
</File>\r
<File\r