From 2c76e6fc21723bbcbcbbefaeb036db9d282e60ad Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Sat, 13 Oct 2012 23:07:12 +0200 Subject: [PATCH] Fixed issue #1454: Show git progress time spent and end time in Progress Dialog and Sync Dialog Patch by ch3cooli with minor changes by me. Signed-off-by: Sup Yut Sum Signed-off-by: Sven Strickroth --- src/Changelog.txt | 3 ++- src/TortoiseProc/ProgressDlg.cpp | 11 ++++++++--- src/TortoiseProc/ProgressDlg.h | 1 + src/TortoiseProc/SyncDlg.cpp | 8 ++++++-- src/TortoiseProc/SyncDlg.h | 1 + 5 files changed, 18 insertions(+), 6 deletions(-) diff --git a/src/Changelog.txt b/src/Changelog.txt index ff97f9c79..ef6072621 100644 --- a/src/Changelog.txt +++ b/src/Changelog.txt @@ -6,7 +6,8 @@ Released: unreleased * Fixed issue #1425: Indicate dirty state in Submodule Diff Dialog * Fixed issue #1430: Diff: allow multiple files unified diff * Fixed issue #1453: Allow Log List to copy multiple SHA-1 hashes - + * Fixed issue #1454: Show git progress time spent and end time in Progress Dialog and Sync Dialog + == Bug Fix == * Fixed issue #1426: Pull Dialog: Unknown option 'no-ff' when using no-tags * Fixed issue #1423: Update Dialog downloads the wrong language pack diff --git a/src/TortoiseProc/ProgressDlg.cpp b/src/TortoiseProc/ProgressDlg.cpp index 30fea84b5..657f8765a 100644 --- a/src/TortoiseProc/ProgressDlg.cpp +++ b/src/TortoiseProc/ProgressDlg.cpp @@ -31,13 +31,14 @@ #include "AppUtils.h" #include "SmartHandle.h" #include "../TGitCache/CacheInterface.h" +#include "LoglistUtils.h" // CProgressDlg dialog IMPLEMENT_DYNAMIC(CProgressDlg, CResizableStandAloneDialog) CProgressDlg::CProgressDlg(CWnd* pParent /*=NULL*/) - : CResizableStandAloneDialog(CProgressDlg::IDD, pParent), m_bShowCommand(true), m_bAutoCloseOnSuccess(false), m_bAbort(false), m_bDone(false) + : CResizableStandAloneDialog(CProgressDlg::IDD, pParent), m_bShowCommand(true), m_bAutoCloseOnSuccess(false), m_bAbort(false), m_bDone(false), m_startTick(GetTickCount()) { m_pThread = NULL; m_bAltAbortPress=false; @@ -256,6 +257,7 @@ UINT CProgressDlg::ProgressThread() else pfilename=&m_LogFile; + m_startTick = GetTickCount(); m_GitStatus = RunCmdList(this,m_GitCmdList,m_bShowCommand,pfilename,&m_bAbort,&this->m_Databuf);; return 0; } @@ -275,6 +277,9 @@ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) } if(wParam == MSG_PROGRESSDLG_END || wParam == MSG_PROGRESSDLG_FAILED) { + DWORD tickSpent = GetTickCount() - m_startTick; + CString strEndTime = CLoglistUtils::FormatDateAndTime(CTime::GetCurrentTime(), DATE_SHORTDATE, true, false); + if(m_bBufferAll) { m_Databuf.m_critSec.Lock(); @@ -317,7 +322,7 @@ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) CString log; log.Format(IDS_PROC_PROGRESS_GITUNCLEANEXIT, m_GitStatus); CString err; - err.Format(_T("\r\n\r\n%s\r\n"), log); + err.Format(_T("\r\n\r\n%s (%d ms @ %s)\r\n"), log, tickSpent, strEndTime); InsertColorText(this->m_Log, err, RGB(255,0,0)); } else { @@ -326,7 +331,7 @@ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) CString temp; temp.LoadString(IDS_SUCCESS); CString log; - log.Format(_T("\r\n%s\r\n"), temp); + log.Format(_T("\r\n%s (%d ms @ %s)\r\n"), temp, tickSpent, strEndTime); InsertColorText(this->m_Log, log, RGB(0,0,255)); this->DialogEnableWindow(IDCANCEL,FALSE); } diff --git a/src/TortoiseProc/ProgressDlg.h b/src/TortoiseProc/ProgressDlg.h index 899a26575..78dc02f68 100644 --- a/src/TortoiseProc/ProgressDlg.h +++ b/src/TortoiseProc/ProgressDlg.h @@ -72,6 +72,7 @@ private: bool m_bAbort; bool m_bDone; bool m_bAltAbortPress; + DWORD m_startTick; virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support static UINT ProgressThreadEntry(LPVOID pVoid); diff --git a/src/TortoiseProc/SyncDlg.cpp b/src/TortoiseProc/SyncDlg.cpp index 3e9f3c1ef..d2822db96 100644 --- a/src/TortoiseProc/SyncDlg.cpp +++ b/src/TortoiseProc/SyncDlg.cpp @@ -44,6 +44,7 @@ CSyncDlg::CSyncDlg(CWnd* pParent /*=NULL*/) m_bAutoLoadPuttyKey = CAppUtils::IsSSHPutty(); m_bForce=false; m_bBlock = false; + m_startTick = GetTickCount(); } CSyncDlg::~CSyncDlg() @@ -1028,6 +1029,7 @@ void CSyncDlg::OnCbnEditchangeComboboxex() UINT CSyncDlg::ProgressThread() { + m_startTick = GetTickCount(); m_GitCmdStatus=CProgressDlg::RunCmdList(this,m_GitCmdList,true,NULL,&this->m_bAbort); InterlockedExchange(&m_bBlock, FALSE); return 0; @@ -1049,6 +1051,8 @@ LRESULT CSyncDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) if(wParam == MSG_PROGRESSDLG_END || wParam == MSG_PROGRESSDLG_FAILED) { + DWORD tickSpent = GetTickCount() - m_startTick; + CString strEndTime = CLoglistUtils::FormatDateAndTime(CTime::GetCurrentTime(), DATE_SHORTDATE, true, false); //m_bDone = true; m_ctrlAnimate.Stop(); m_ctrlProgress.SetPos(100); @@ -1065,7 +1069,7 @@ LRESULT CSyncDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) CString log; log.Format(IDS_PROC_PROGRESS_GITUNCLEANEXIT, exitCode); CString err; - err.Format(_T("\r\n\r\n%s\r\n"), log); + err.Format(_T("\r\n\r\n%s (%d ms @ %s)\r\n"), log, tickSpent, strEndTime); CProgressDlg::InsertColorText(this->m_ctrlCmdOut, err, RGB(255,0,0)); } else @@ -1075,7 +1079,7 @@ LRESULT CSyncDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam) CString temp; temp.LoadString(IDS_SUCCESS); CString log; - log.Format(_T("\r\n%s\r\n"), temp); + log.Format(_T("\r\n%s (%d ms @ %s)\r\n"), temp, tickSpent, strEndTime); CProgressDlg::InsertColorText(this->m_ctrlCmdOut, log, RGB(0,0,255)); } diff --git a/src/TortoiseProc/SyncDlg.h b/src/TortoiseProc/SyncDlg.h index d99197987..6fd4206fe 100644 --- a/src/TortoiseProc/SyncDlg.h +++ b/src/TortoiseProc/SyncDlg.h @@ -139,6 +139,7 @@ protected: std::vector m_GitCmdList; bool m_bAbort; + DWORD m_startTick; int m_GitCmdStatus; -- 2.11.4.GIT