void CRepositoryBrowser::FillListCtrlForShadowTree(CShadowFilesTree* pTree) { for (TShadowFilesTreeMap::iterator itShadowTree = pTree->m_ShadowTree.begin(); itShadowTree != pTree->m_ShadowTree.end(); ++itShadowTree) { int icon = m_nIconFolder; if (!(*itShadowTree).second.m_bFolder) icon = SYS_IMAGE_LIST().GetFileIconIndex((*itShadowTree).second.m_sName); int indexItem = m_RepoList.InsertItem(m_RepoList.GetItemCount(), (*itShadowTree).second.m_sName, icon); m_RepoList.SetItemData(indexItem, (DWORD_PTR)&(*itShadowTree).second); if (!(*itShadowTree).second.m_bFolder) { CString temp; temp = CPathUtils::GetFileExtFromPath((*itShadowTree).second.m_sName); m_RepoList.SetItemText(indexItem, eCol_Extension, temp); StrFormatByteSize((*itShadowTree).second.m_iSize, temp.GetBuffer(20), 20); temp.ReleaseBuffer(); m_RepoList.SetItemText(indexItem, eCol_FileSize, temp); } } CRepoListCompareFunc compareFunc(&m_RepoList, m_currSortCol, m_currSortDesc); m_RepoList.SortItemsEx(&CRepoListCompareFunc::StaticCompare, (DWORD_PTR)&compareFunc); SetSortArrowA(&m_RepoList, m_currSortCol, !m_currSortDesc); }
void CRepositoryBrowser::OnLvnColumnclickRepoList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); if (pResult) *pResult = 0; if (m_currSortCol == pNMLV->iSubItem) m_currSortDesc = !m_currSortDesc; else { m_currSortCol = pNMLV->iSubItem; m_currSortDesc = false; } CRepoListCompareFunc compareFunc(&m_RepoList, m_currSortCol, m_currSortDesc); m_RepoList.SortItemsEx(&CRepoListCompareFunc::StaticCompare, (DWORD_PTR)&compareFunc); SetSortArrowA(&m_RepoList, m_currSortCol, !m_currSortDesc); }
void CRepositoryBrowser::FillListCtrlForShadowTree(CShadowFilesTree* pTree) { for (TShadowFilesTreeMap::iterator itShadowTree = pTree->m_ShadowTree.begin(); itShadowTree != pTree->m_ShadowTree.end(); ++itShadowTree) { int icon = m_nIconFolder; if (!(*itShadowTree).second.m_bFolder && !(*itShadowTree).second.m_bSubmodule) { icon = SYS_IMAGE_LIST().GetFileIconIndex((*itShadowTree).second.m_sName); } 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); } if ((*itShadowTree).second.m_bExecutable) m_RepoList.SetItemState(indexItem, INDEXTOOVERLAYMASK(OVERLAY_EXECUTABLE), LVIS_OVERLAYMASK); if ((*itShadowTree).second.m_bSymlink) m_RepoList.SetItemState(indexItem, INDEXTOOVERLAYMASK(OVERLAY_SYMLINK), LVIS_OVERLAYMASK); m_RepoList.SetItemData(indexItem, (DWORD_PTR)&(*itShadowTree).second); if (!(*itShadowTree).second.m_bFolder && !(*itShadowTree).second.m_bSubmodule) { CString temp; temp = CPathUtils::GetFileExtFromPath((*itShadowTree).second.m_sName); m_RepoList.SetItemText(indexItem, eCol_Extension, temp); StrFormatByteSize64((*itShadowTree).second.m_iSize, temp.GetBuffer(20), 20); temp.ReleaseBuffer(); m_RepoList.SetItemText(indexItem, eCol_FileSize, temp); } } CRepoListCompareFunc compareFunc(&m_RepoList, m_currSortCol, m_currSortDesc); m_RepoList.SortItemsEx(&CRepoListCompareFunc::StaticCompare, (DWORD_PTR)&compareFunc); SetSortArrowA(&m_RepoList, m_currSortCol, !m_currSortDesc); UpdateInfoLabel(); }