From f3b90392c87172776ebe0f34e3896d3a1540a90f Mon Sep 17 00:00:00 2001 From: Sven Strickroth Date: Wed, 3 Jul 2013 13:18:51 +0200 Subject: [PATCH] RepoBrowser: Show overlay for submodules Signed-off-by: Sven Strickroth --- src/Resources/TortoiseProcENG.rc | 1 + src/TortoiseProc/RepositoryBrowser.cpp | 10 ++++++++++ src/TortoiseProc/RepositoryBrowser.h | 1 + src/TortoiseProc/TortoiseProc.vcxproj | 1 + src/TortoiseProc/TortoiseProc.vcxproj.filters | 3 +++ src/TortoiseProc/resource.h | 3 ++- 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/Resources/TortoiseProcENG.rc b/src/Resources/TortoiseProcENG.rc index 2ab7d4ec4..077f0f1c4 100644 --- a/src/Resources/TortoiseProcENG.rc +++ b/src/Resources/TortoiseProcENG.rc @@ -97,6 +97,7 @@ IDI_JUMPUP ICON "jumpup.ico" IDI_JUMPDOWN ICON "jumpdown.ico" IDI_UPDATE_BKG ICON "UpdateBackground.ico" IDI_GITCREDENTIAL ICON "gitcredential.ico" +IDI_EXTERNALOVL ICON "externalovl.ico" ///////////////////////////////////////////////////////////////////////////// // diff --git a/src/TortoiseProc/RepositoryBrowser.cpp b/src/TortoiseProc/RepositoryBrowser.cpp index 7165d04ff..342677dcb 100644 --- a/src/TortoiseProc/RepositoryBrowser.cpp +++ b/src/TortoiseProc/RepositoryBrowser.cpp @@ -36,6 +36,8 @@ #include "StringUtils.h" #include "GitDiff.h" +#define OVERLAY_EXTERNAL 1 + void SetSortArrowA(CListCtrl * control, int nColumn, bool bAscending) { if (control == NULL) @@ -212,6 +214,9 @@ BOOL CRepositoryBrowser::OnInitDialog() m_RepoTree.SetExtendedStyle(exStyle, exStyle); } + m_nExternalOvl = SYS_IMAGE_LIST().AddIcon((HICON)LoadImage(AfxGetResourceHandle(), MAKEINTRESOURCE(IDI_EXTERNALOVL), IMAGE_ICON, 0, 0, LR_DEFAULTSIZE)); + // set externaloverlay in SYS_IMAGE_LIST() in Refresh method, so that it is updated after every launch of the logdialog + SetWindowTheme(m_RepoTree.GetSafeHwnd(), L"Explorer", NULL); SetWindowTheme(m_RepoList.GetSafeHwnd(), L"Explorer", NULL); @@ -302,6 +307,9 @@ void CRepositoryBrowser::OnNMDblclk_RepoList(NMHDR *pNMHDR, LRESULT *pResult) void CRepositoryBrowser::Refresh() { + if (m_nExternalOvl >= 0) + SYS_IMAGE_LIST().SetOverlayImage(m_nExternalOvl, OVERLAY_EXTERNAL); + m_RepoTree.DeleteAllItems(); m_RepoList.DeleteAllItems(); m_TreeRoot.m_ShadowTree.clear(); @@ -495,6 +503,8 @@ void CRepositoryBrowser::FillListCtrlForShadowTree(CShadowFilesTree* pTree) int indexItem = m_RepoList.InsertItem(m_RepoList.GetItemCount(), (*itShadowTree).second.m_sName, icon); + if ((*itShadowTree).second.m_bSubmodule) + m_RepoList.SetItemState(indexItem, INDEXTOOVERLAYMASK(OVERLAY_EXTERNAL), LVIS_OVERLAYMASK); m_RepoList.SetItemData(indexItem, (DWORD_PTR)&(*itShadowTree).second); if (!(*itShadowTree).second.m_bFolder) { diff --git a/src/TortoiseProc/RepositoryBrowser.h b/src/TortoiseProc/RepositoryBrowser.h index 38f9ff608..0153fefbe 100644 --- a/src/TortoiseProc/RepositoryBrowser.h +++ b/src/TortoiseProc/RepositoryBrowser.h @@ -135,6 +135,7 @@ private: int ReadTree(CShadowFilesTree * treeroot); int m_nIconFolder; int m_nOpenIconFolder; + int m_nExternalOvl; bool m_bHasWC; diff --git a/src/TortoiseProc/TortoiseProc.vcxproj b/src/TortoiseProc/TortoiseProc.vcxproj index 1d8ecf657..f7fa49556 100644 --- a/src/TortoiseProc/TortoiseProc.vcxproj +++ b/src/TortoiseProc/TortoiseProc.vcxproj @@ -490,6 +490,7 @@ + diff --git a/src/TortoiseProc/TortoiseProc.vcxproj.filters b/src/TortoiseProc/TortoiseProc.vcxproj.filters index 5f555f0f7..137c0fc6b 100644 --- a/src/TortoiseProc/TortoiseProc.vcxproj.filters +++ b/src/TortoiseProc/TortoiseProc.vcxproj.filters @@ -1545,6 +1545,9 @@ Resource Files + + Resource Files + diff --git a/src/TortoiseProc/resource.h b/src/TortoiseProc/resource.h index f97f5f17b..c35e93fb7 100644 --- a/src/TortoiseProc/resource.h +++ b/src/TortoiseProc/resource.h @@ -156,6 +156,7 @@ #define IDI_JUMPDOWN 344 #define IDD_LOGORDERING 345 #define IDI_GITCREDENTIAL 346 +#define IDI_EXTERNALOVL 347 #define IDS_CHSTAT_FILECOL 1000 #define IDS_CHSTAT_WCCOL 1001 #define IDS_CHSTAT_REPOCOL 1002 @@ -1729,7 +1730,7 @@ // #ifdef APSTUDIO_INVOKED #ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 347 +#define _APS_NEXT_RESOURCE_VALUE 348 #define _APS_NEXT_COMMAND_VALUE 32860 #define _APS_NEXT_CONTROL_VALUE 1754 #define _APS_NEXT_SYMED_VALUE 201 -- 2.11.4.GIT