void CInputLogDlg::OnOK() { UpdateData(); m_sLogMsg = m_cInput.GetText(); CString reg; reg.Format(_T("Software\\TortoiseGit\\History\\commit%s"), (LPCTSTR)m_sUUID); CRegHistory history; history.Load(reg, _T("logmsgs")); history.AddEntry(m_sLogMsg); history.Save(); CResizableStandAloneDialog::OnOK(); }
void CInputLogDlg::OnBnClickedHistory() { CString reg; reg.Format(_T("Software\\TortoiseGit\\History\\commit%s"), (LPCTSTR)m_sUUID); CRegHistory history; history.Load(reg, _T("logmsgs")); CHistoryDlg HistoryDlg; HistoryDlg.SetHistory(history); if (HistoryDlg.DoModal()==IDOK) { if (HistoryDlg.GetSelectedText().Compare(m_cInput.GetText().Left(HistoryDlg.GetSelectedText().GetLength()))!=0) { if ((m_pProjectProperties)&&(m_pProjectProperties->sLogTemplate.Compare(m_cInput.GetText())!=0)) m_cInput.InsertText(HistoryDlg.GetSelectedText(), !m_cInput.GetText().IsEmpty()); else m_cInput.SetText(HistoryDlg.GetSelectedText()); } UpdateOKButton(); GetDlgItem(IDC_INPUTTEXT)->SetFocus(); } }
void CInputLogDlg::OnOK() { UpdateData(); m_sLogMsg = m_cInput.GetText(); if (m_pProjectProperties) { CString id; GetDlgItemText(IDC_BUGID, id); id.Trim(_T("\n\r")); if (!m_bLock && !m_pProjectProperties->CheckBugID(id)) { ShowEditBalloon(IDC_BUGID, IDS_COMMITDLG_ONLYNUMBERS, TTI_ERROR); return; } if (!m_bLock && (m_pProjectProperties->bWarnIfNoIssue) && (id.IsEmpty() && !m_pProjectProperties->HasBugID(m_sLogMsg))) { if (CTaskDialog::IsSupported()) { CTaskDialog taskdlg(CString(MAKEINTRESOURCE(IDS_COMMITDLG_WARNNOISSUE_TASK1)), CString(MAKEINTRESOURCE(IDS_COMMITDLG_WARNNOISSUE_TASK2)), L"TortoiseSVN", 0, TDF_USE_COMMAND_LINKS|TDF_ALLOW_DIALOG_CANCELLATION|TDF_POSITION_RELATIVE_TO_WINDOW); taskdlg.AddCommandControl(1, CString(MAKEINTRESOURCE(IDS_COMMITDLG_WARNNOISSUE_TASK3))); taskdlg.AddCommandControl(2, CString(MAKEINTRESOURCE(IDS_COMMITDLG_WARNNOISSUE_TASK4))); taskdlg.SetCommonButtons(TDCBF_CANCEL_BUTTON); taskdlg.SetDefaultCommandControl(2); taskdlg.SetMainIcon(TD_WARNING_ICON); if (taskdlg.DoModal(m_hWnd) != 1) return; } else { if (TSVNMessageBox(this->m_hWnd, IDS_COMMITDLG_NOISSUEWARNING, IDS_APPNAME, MB_YESNO | MB_ICONWARNING)!=IDYES) return; } } m_sBugID.Trim(); CString sExistingBugID = m_pProjectProperties->FindBugID(m_sLogMsg); sExistingBugID.Trim(); if (!m_sBugID.IsEmpty() && m_sBugID.Compare(sExistingBugID)) { m_sBugID.Replace(_T(", "), _T(",")); m_sBugID.Replace(_T(" ,"), _T(",")); CString sBugID = m_pProjectProperties->sMessage; sBugID.Replace(_T("%BUGID%"), m_sBugID); if (m_pProjectProperties->bAppend) m_sLogMsg += _T("\n") + sBugID + _T("\n"); else m_sLogMsg = sBugID + _T("\n") + m_sLogMsg; } if (!m_bLock) { // now let the bugtraq plugin check the commit message CComPtr<IBugTraqProvider2> pProvider2 = NULL; if (m_BugTraqProvider) { HRESULT hr = m_BugTraqProvider.QueryInterface(&pProvider2); if (SUCCEEDED(hr)) { ATL::CComBSTR temp; CString common = m_rootpath.GetSVNPathString(); ATL::CComBSTR repositoryRoot; repositoryRoot.Attach(common.AllocSysString()); ATL::CComBSTR parameters; parameters.Attach(m_bugtraq_association.GetParameters().AllocSysString()); ATL::CComBSTR commonRoot(m_pathlist.GetCommonRoot().GetDirectory().GetWinPath()); ATL::CComBSTR commitMessage; commitMessage.Attach(m_sLogMsg.AllocSysString()); CBstrSafeVector pathList(m_pathlist.GetCount()); for (LONG index = 0; index < m_pathlist.GetCount(); ++index) pathList.PutElement(index, m_pathlist[index].GetSVNPathString()); hr = pProvider2->CheckCommit(GetSafeHwnd(), parameters, repositoryRoot, commonRoot, pathList, commitMessage, &temp); if (FAILED(hr)) { OnComError(hr); } else { CString sError = temp == 0 ? _T("") : temp; if (!sError.IsEmpty()) { CAppUtils::ReportFailedHook(m_hWnd, sError); return; } } } } } } CString reg; reg.Format(_T("Software\\TortoiseSVN\\History\\commit%s"), (LPCTSTR)m_sUUID); CRegHistory history; history.Load(reg, _T("logmsgs")); history.AddEntry(m_sLogMsg); history.Save(); CResizableStandAloneDialog::OnOK(); }