, m_bSelectFilesForCommit(TRUE)\r
{\r
this->m_bCommitAmend=FALSE;\r
+ m_bPushAfterCommit = FALSE;\r
}\r
\r
CCommitDlg::~CCommitDlg()\r
DDX_Control(pDX, IDC_SPLITTER, m_wndSplitter);\r
DDX_Check(pDX, IDC_KEEPLISTS, m_bKeepChangeList);\r
DDX_Check(pDX,IDC_COMMIT_AMEND,m_bCommitAmend);\r
+ DDX_Control(pDX,IDC_VIEW_PATCH,m_ctrlShowPatch);\r
}\r
\r
BEGIN_MESSAGE_MAP(CCommitDlg, CResizableStandAloneDialog)\r
ON_BN_CLICKED(IDC_SELECTALL, OnBnClickedSelectall)\r
ON_BN_CLICKED(IDHELP, OnBnClickedHelp)\r
ON_BN_CLICKED(IDC_SHOWUNVERSIONED, OnBnClickedShowunversioned)\r
+ ON_NOTIFY(SCN_UPDATEUI, IDC_LOGMESSAGE, OnScnUpdateUI)\r
// ON_BN_CLICKED(IDC_HISTORY, OnBnClickedHistory)\r
ON_BN_CLICKED(IDC_BUGTRAQBUTTON, OnBnClickedBugtraqbutton)\r
ON_EN_CHANGE(IDC_LOGMESSAGE, OnEnChangeLogmessage)\r
ON_BN_CLICKED(IDC_COMMIT_AMEND, &CCommitDlg::OnBnClickedCommitAmend)\r
ON_BN_CLICKED(IDC_WHOLE_PROJECT, &CCommitDlg::OnBnClickedWholeProject)\r
ON_STN_CLICKED(IDC_BUGIDLABEL, &CCommitDlg::OnStnClickedBugidlabel)\r
+ ON_COMMAND(ID_FOCUS_MESSAGE,&CCommitDlg::OnFocusMessage)\r
+ ON_STN_CLICKED(IDC_VIEW_PATCH, &CCommitDlg::OnStnClickedViewPatch)\r
END_MESSAGE_MAP()\r
\r
BOOL CCommitDlg::OnInitDialog()\r
m_regKeepChangelists = CRegDWORD(_T("Software\\TortoiseGit\\KeepChangeLists"), FALSE);\r
m_bKeepChangeList = m_regKeepChangelists;\r
\r
+ m_hAccel = LoadAccelerators(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_ACC_COMMITDLG));\r
+\r
// GitConfig config;\r
// m_bWholeProject = config.KeepLocks();\r
\r
+ if(this->m_pathList.GetCount() == 0)\r
+ m_bWholeProject =true;\r
+ \r
+ if(this->m_pathList.GetCount() == 1 && m_pathList[0].IsEmpty())\r
+ m_bWholeProject =true;\r
+\r
UpdateData(FALSE);\r
\r
m_ListCtrl.Init(SVNSLC_COLEXT | SVNSLC_COLSTATUS | SVNSLC_COLADD |SVNSLC_COLDEL, _T("CommitDlg"));\r
// AddAnchor(IDC_HISTORY, TOP_LEFT);\r
AddAnchor(IDC_LOGMESSAGE, TOP_LEFT, TOP_RIGHT);\r
AddAnchor(IDC_SIGNOFF, TOP_RIGHT);\r
+ AddAnchor(IDC_VIEW_PATCH,TOP_RIGHT);\r
AddAnchor(IDC_LISTGROUP, TOP_LEFT, BOTTOM_RIGHT);\r
AddAnchor(IDC_SPLITTER, TOP_LEFT, TOP_RIGHT);\r
AddAnchor(IDC_FILELIST, TOP_LEFT, BOTTOM_RIGHT);\r
AddAnchor(IDC_SELECTALL, BOTTOM_LEFT);\r
AddAnchor(IDC_EXTERNALWARNING, BOTTOM_RIGHT);\r
AddAnchor(IDC_STATISTICS, BOTTOM_LEFT, BOTTOM_RIGHT);\r
+ AddAnchor(IDC_TEXT_INFO, TOP_RIGHT);\r
AddAnchor(IDC_WHOLE_PROJECT, BOTTOM_LEFT);\r
AddAnchor(IDC_KEEPLISTS, BOTTOM_LEFT);\r
AddAnchor(IDOK, BOTTOM_RIGHT);\r
//this->m_bCommitAmend=FALSE;\r
//this->UpdateData(FALSE);\r
\r
+ this->m_ctrlShowPatch.SetURL(CString());\r
+\r
return FALSE; // return TRUE unless you set the focus to a control\r
// EXCEPTION: OCX Property Pages should return FALSE\r
}\r
cmd.Format(_T("git.exe commit %s -F \"%s\""),amend, tempfile);\r
\r
CProgressDlg progress;\r
+ progress.m_bBufferAll=true; // improve show speed when there are many file added. \r
progress.m_GitCmd=cmd;\r
progress.m_bShowCommand = FALSE; // don't show the commit command\r
progress.m_PreText = out; // show any output already generated in log window\r
- progress.m_changeAbortButtonOnSuccessTo = "Push";\r
+ progress.m_changeAbortButtonOnSuccessTo = _T("&Push");\r
DWORD userResponse = progress.DoModal();\r
\r
if(progress.m_GitStatus)\r
bCloseCommitDlg = false;\r
this->Refresh();\r
}\r
- else if(userResponse == IDCANCEL)\r
+ else if(userResponse == IDC_PROGRESS_BUTTON1)\r
{\r
//User pressed 'Push' button after successful commit.\r
- PushCommand cmdPush;\r
- cmdPush.Execute();\r
+ m_bPushAfterCommit=true;\r
}\r
\r
CFile::Remove(tempfile);\r
}else\r
- CMessageBox::Show(this->m_hWnd, _T("Nothing Commit"), _T("Commit Finish"), MB_OK | MB_ICONINFORMATION);\r
+ {\r
+ CMessageBox::Show(this->m_hWnd, IDS_ERROR_NOTHING_COMMIT, IDS_COMMIT_FINISH, MB_OK | MB_ICONINFORMATION);\r
+ bCloseCommitDlg=false;\r
+ }\r
#if 0\r
if (m_pathwatcher.GetNumberOfChangedPaths() && m_bRecursive)\r
{\r
void CCommitDlg::OnCancel()\r
{\r
m_bCancelled = true;\r
+ m_pathwatcher.Stop();\r
+\r
if (m_bBlock)\r
return;\r
- m_pathwatcher.Stop();\r
+ \r
if (m_bThreadRunning)\r
{\r
InterlockedExchange(&m_bRunThread, FALSE);\r
{\r
if (!m_bBlock)\r
m_tooltips.RelayEvent(pMsg);\r
+ \r
+ if (m_hAccel)\r
+ {\r
+ int ret = TranslateAccelerator(m_hWnd, m_hAccel, pMsg);\r
+ if (ret)\r
+ return TRUE;\r
+ }\r
+\r
if (pMsg->message == WM_KEYDOWN)\r
{\r
switch (pMsg->wParam)\r
sMenuItemText.LoadString(IDS_COMMITDLG_POPUP_PASTELASTMESSAGE);\r
m_nPopupPasteLastMessage = nCmd++;\r
mPopup.AppendMenu(MF_STRING | MF_ENABLED, m_nPopupPasteLastMessage, sMenuItemText);\r
+\r
+ sMenuItemText.LoadString(IDS_COMMITDLG_POPUP_LOGHISTORY);\r
+ m_nPopupRecentMessage = nCmd++;\r
+ mPopup.AppendMenu(MF_STRING | MF_ENABLED, m_nPopupRecentMessage, sMenuItemText);\r
+\r
}\r
\r
}\r
pSciEdit->InsertText(logmsg);\r
return true;\r
}\r
+\r
+ if(cmd == m_nPopupRecentMessage )\r
+ {\r
+ OnBnClickedHistory();\r
+ return true;\r
+ }\r
return false;\r
}\r
\r
m_tooltips.Pop(); // hide the tooltips\r
if (m_pathList.GetCount() == 0)\r
return;\r
-#if 0\r
+\r
CHistoryDlg historyDlg;\r
historyDlg.SetHistory(m_History);\r
if (historyDlg.DoModal() != IDOK)\r
\r
UpdateOKButton();\r
GetDlgItem(IDC_LOGMESSAGE)->SetFocus();\r
-#endif\r
+\r
}\r
\r
void CCommitDlg::OnBnClickedBugtraqbutton()\r
RemoveAnchor(IDC_COMMIT_AMEND);\r
RemoveAnchor(IDC_LISTGROUP);\r
RemoveAnchor(IDC_FILELIST);\r
+ RemoveAnchor(IDC_TEXT_INFO);\r
+ RemoveAnchor(IDC_VIEW_PATCH);\r
+\r
CSplitterControl::ChangeHeight(&m_cLogMessage, delta, CW_TOPALIGN);\r
CSplitterControl::ChangeHeight(GetDlgItem(IDC_MESSAGEGROUP), delta, CW_TOPALIGN);\r
CSplitterControl::ChangeHeight(&m_ListCtrl, -delta, CW_BOTTOMALIGN);\r
CSplitterControl::ChangeHeight(GetDlgItem(IDC_LISTGROUP), -delta, CW_BOTTOMALIGN);\r
CSplitterControl::ChangePos(GetDlgItem(IDC_SIGNOFF),0,delta);\r
CSplitterControl::ChangePos(GetDlgItem(IDC_COMMIT_AMEND),0,delta);\r
+ CSplitterControl::ChangePos(GetDlgItem(IDC_TEXT_INFO),0,delta);\r
+ CSplitterControl::ChangePos(GetDlgItem(IDC_VIEW_PATCH),0,delta);\r
+ \r
+ AddAnchor(IDC_VIEW_PATCH,TOP_RIGHT);\r
AddAnchor(IDC_MESSAGEGROUP, TOP_LEFT, TOP_RIGHT);\r
AddAnchor(IDC_LOGMESSAGE, TOP_LEFT, TOP_RIGHT);\r
AddAnchor(IDC_SPLITTER, TOP_LEFT, TOP_RIGHT);\r
AddAnchor(IDC_FILELIST, TOP_LEFT, BOTTOM_RIGHT);\r
AddAnchor(IDC_SIGNOFF,TOP_RIGHT);\r
AddAnchor(IDC_COMMIT_AMEND,TOP_LEFT);\r
+ AddAnchor(IDC_TEXT_INFO,TOP_RIGHT);\r
ArrangeLayout();\r
// adjust the minimum size of the dialog to prevent the resizing from\r
// moving the list control too far down.\r
{\r
// TODO: Add your control notification handler code here\r
}\r
+\r
+void CCommitDlg::OnFocusMessage()\r
+{\r
+ m_cLogMessage.SetFocus();\r
+}\r
+\r
+void CCommitDlg::OnScnUpdateUI(NMHDR *pNMHDR, LRESULT *pResult)\r
+{\r
+ SCNotification *pHead =(SCNotification *)pNMHDR;\r
+ \r
+ int pos=this->m_cLogMessage.Call(SCI_GETCURRENTPOS);\r
+ int line=this->m_cLogMessage.Call(SCI_LINEFROMPOSITION,pos);\r
+ int column=this->m_cLogMessage.Call(SCI_GETCOLUMN,pos);\r
+\r
+ CString str;\r
+ str.Format(_T("%d/%d"),line+1,column+1);\r
+ this->GetDlgItem(IDC_TEXT_INFO)->SetWindowText(str);\r
+\r
+ if(*pResult)\r
+ *pResult=0;\r
+}\r
+void CCommitDlg::OnStnClickedViewPatch()\r
+{\r
+ // TODO: Add your control notification handler code here\r
+ this->m_ctrlShowPatch.SetWindowText(_T("Hide Patch<<"));\r
+}\r