From a88092ecf316ef3a228fe36b87bdb100cbca5abb Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Sun, 14 Aug 2016 03:03:17 +0200 Subject: [PATCH] Make broader use of alternative tool selection Signed-off-by: Sven Strickroth --- src/TortoiseProc/ChangedDlg.cpp | 2 +- src/TortoiseProc/Commands/ShowCompareCommand.cpp | 8 +++++--- src/TortoiseProc/FileDiffDlg.cpp | 2 +- src/TortoiseProc/FormatPatchDlg.cpp | 2 +- src/TortoiseProc/GitRefCompareList.cpp | 2 ++ src/TortoiseProc/RevisionGraph/RevisionGraphDlgFunc.cpp | 5 ++++- src/TortoiseProc/SubmoduleDiffDlg.cpp | 6 +++++- 7 files changed, 19 insertions(+), 8 deletions(-) diff --git a/src/TortoiseProc/ChangedDlg.cpp b/src/TortoiseProc/ChangedDlg.cpp index c5b69a400..7b725fb1a 100644 --- a/src/TortoiseProc/ChangedDlg.cpp +++ b/src/TortoiseProc/ChangedDlg.cpp @@ -429,7 +429,7 @@ void CChangedDlg::OnBnClickedButtonUnifieddiff() bool bSingleFile = ((m_pathList.GetCount()==1)&&(!m_pathList[0].IsEmpty())&&(!m_pathList[0].IsDirectory())); if (bSingleFile) commonDirectory = m_pathList[0]; - CAppUtils::StartShowUnifiedDiff(m_hWnd, commonDirectory, GitRev::GetHead(), commonDirectory, GitRev::GetWorkingCopy()); + CAppUtils::StartShowUnifiedDiff(m_hWnd, commonDirectory, GitRev::GetHead(), commonDirectory, GitRev::GetWorkingCopy(), !!(GetAsyncKeyState(VK_SHIFT) & 0x8000)); } void CChangedDlg::OnBnClickedWholeProject() diff --git a/src/TortoiseProc/Commands/ShowCompareCommand.cpp b/src/TortoiseProc/Commands/ShowCompareCommand.cpp index dff4af1f8..ca2ab8b4c 100644 --- a/src/TortoiseProc/Commands/ShowCompareCommand.cpp +++ b/src/TortoiseProc/Commands/ShowCompareCommand.cpp @@ -1,6 +1,6 @@ // TortoiseGit - a Windows shell extension for easy version control -// Copyright (C) 2012-2013 - TortoiseGit +// Copyright (C) 2012-2013, 2016 - TortoiseGit // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License @@ -33,8 +33,10 @@ bool ShowCompareCommand::Execute() if (parser.HasVal(_T("revision2"))) rev2 = parser.GetVal(_T("revision2")); + bool bAlternativeTool = !!parser.HasKey(_T("alternative")); + if (unified) - return !!CAppUtils::StartShowUnifiedDiff(nullptr, CTGitPath(), rev1, CTGitPath(), rev2); + return !!CAppUtils::StartShowUnifiedDiff(nullptr, CTGitPath(), rev1, CTGitPath(), rev2, bAlternativeTool); else - return !!CGitDiff::DiffCommit(cmdLinePath, rev2, rev1); + return !!CGitDiff::DiffCommit(cmdLinePath, rev2, rev1, bAlternativeTool); } diff --git a/src/TortoiseProc/FileDiffDlg.cpp b/src/TortoiseProc/FileDiffDlg.cpp index 5c3413bbf..9295222e8 100644 --- a/src/TortoiseProc/FileDiffDlg.cpp +++ b/src/TortoiseProc/FileDiffDlg.cpp @@ -608,7 +608,7 @@ void CFileDiffDlg::OnContextMenu(CWnd* pWnd, CPoint point) CTGitPath *fd1 = fd2; if (fd1->m_Action & CTGitPath::LOGACTIONS_REPLACED) fd2 = new CTGitPath(fd2->GetGitOldPathString()); - CAppUtils::StartShowUnifiedDiff(m_hWnd, *fd1, m_rev1.m_CommitHash.ToString(), *fd2, m_rev2.m_CommitHash.ToString()); + CAppUtils::StartShowUnifiedDiff(m_hWnd, *fd1, m_rev1.m_CommitHash.ToString(), *fd2, m_rev2.m_CommitHash.ToString(), !!(GetAsyncKeyState(VK_SHIFT) & 0x8000)); if (fd1 != fd2) delete fd2; } diff --git a/src/TortoiseProc/FormatPatchDlg.cpp b/src/TortoiseProc/FormatPatchDlg.cpp index 3a0595c5f..72b298d7d 100644 --- a/src/TortoiseProc/FormatPatchDlg.cpp +++ b/src/TortoiseProc/FormatPatchDlg.cpp @@ -260,5 +260,5 @@ void CFormatPatchDlg::OnBnClickedButtonUnifieddiff() { UpdateData(TRUE); m_regNoPrefix = m_bNoPrefix; - CAppUtils::StartShowUnifiedDiff(m_hWnd, CTGitPath(), GitRev::GetHead(), CTGitPath(), GitRev::GetWorkingCopy(), false, false, false, false, false, !!m_bNoPrefix); + CAppUtils::StartShowUnifiedDiff(m_hWnd, CTGitPath(), GitRev::GetHead(), CTGitPath(), GitRev::GetWorkingCopy(), !!(GetAsyncKeyState(VK_SHIFT) & 0x8000), false, false, false, false, !!m_bNoPrefix); } diff --git a/src/TortoiseProc/GitRefCompareList.cpp b/src/TortoiseProc/GitRefCompareList.cpp index fd4b8821e..349045e28 100644 --- a/src/TortoiseProc/GitRefCompareList.cpp +++ b/src/TortoiseProc/GitRefCompareList.cpp @@ -257,6 +257,8 @@ void CGitRefCompareList::OnContextMenuList(CWnd * /*pWnd*/, CPoint point) { CString sCmd; sCmd.Format(_T("/command:showcompare /path:\"%s\" /revision1:\"%s\" /revision2:\"%s\""), (LPCTSTR)g_Git.m_CurrentDir, (LPCTSTR)oldHash, (LPCTSTR)newHash); + if (!!(GetAsyncKeyState(VK_SHIFT) & 0x8000)) + sCmd += L" /alternative"; CAppUtils::RunTortoiseGitProc(sCmd); break; } diff --git a/src/TortoiseProc/RevisionGraph/RevisionGraphDlgFunc.cpp b/src/TortoiseProc/RevisionGraph/RevisionGraphDlgFunc.cpp index 916377bcb..21594cf71 100644 --- a/src/TortoiseProc/RevisionGraph/RevisionGraphDlgFunc.cpp +++ b/src/TortoiseProc/RevisionGraph/RevisionGraphDlgFunc.cpp @@ -431,7 +431,7 @@ void CRevisionGraphWnd::CompareRevs(const CString& revTo) ASSERT(m_SelectedEntry1); ASSERT(!revTo.IsEmpty() || m_SelectedEntry2); -// bool alternativeTool = !!(GetAsyncKeyState(VK_SHIFT) & 0x8000); + bool alternativeTool = !!(GetAsyncKeyState(VK_SHIFT) & 0x8000); CString sCmd; @@ -440,6 +440,9 @@ void CRevisionGraphWnd::CompareRevs(const CString& revTo) (LPCTSTR)GetFriendRefName(m_SelectedEntry1), !revTo.IsEmpty() ? (LPCTSTR)revTo : (LPCTSTR)GetFriendRefName(m_SelectedEntry2)); + if (alternativeTool) + sCmd += L" /alternative"; + CAppUtils::RunTortoiseGitProc(sCmd); } diff --git a/src/TortoiseProc/SubmoduleDiffDlg.cpp b/src/TortoiseProc/SubmoduleDiffDlg.cpp index e3084b56c..9b5c5e744 100644 --- a/src/TortoiseProc/SubmoduleDiffDlg.cpp +++ b/src/TortoiseProc/SubmoduleDiffDlg.cpp @@ -246,7 +246,11 @@ void CSubmoduleDiffDlg::OnBnClickedLog2() void CSubmoduleDiffDlg::OnBnClickedShowDiff() { CString sCmd; - sCmd.Format(_T("/command:showcompare /path:\"%s\" /revision1:%s /revision2:%s"), (LPCTSTR)g_Git.CombinePath(m_sPath), (LPCTSTR)m_sFromHash, ((m_bDirty && m_nChangeType == CGitDiff::Unknown) || m_ctrlShowDiffBtn.GetCurrentEntry() == 1) ? GIT_REV_ZERO : (LPCTSTR)m_sToHash); + sCmd.Format(_T("/command:showcompare /path:\"%s\" /revision1:%s /revision2:%s"), (LPCTSTR)g_Git.CombinePath(m_sPath), (LPCTSTR)m_sFromHash, ((m_bDirty && m_nChangeType == CGitDiff::Unknown) || m_ctrlShowDiffBtn.GetCurrentEntry() == 1) ? GIT_REV_ZERO : (LPCTSTR)m_sToHash);//TODO + + if (!!(GetAsyncKeyState(VK_SHIFT) & 0x8000)) + sCmd += L" /alternative"; + CAppUtils::RunTortoiseGitProc(sCmd, false, false); } -- 2.11.4.GIT