void PanelList::MakeList() { listCount = 0; list.clear(); filesCn.Clear(); selectedCn.Clear(); hiddenCn.Clear(); if (data.ptr() && data->Count()>0) { int n = data->Count(); list.alloc(n); int i = 0; for (FSNode *p = data->First(); p && i < n; p = p->next) if (showHidden || !p->IsHidden()) { list[ i++ ] = p; filesCn.AddOne(p->st.size); if (p->IsSelected()) selectedCn.AddOne(p->st.size); } else { p->ClearSelected(); hiddenCn.AddOne(p->st.size); } listCount = i; } }
std::vector<FSNode*> FSList::GetFilteredArray( bool showHidden, int* pCount ) { if ( pCount ) { *pCount = 0; } std::vector<FSNode*> p( Count() ); FSNode* pNode = first; int n = Count(); int i; for ( i = 0 ; i < n && pNode; pNode = pNode->next ) if ( showHidden || !pNode->IsHidden() ) { p[i++] = pNode; } if ( pCount ) { *pCount = i; } return p; }