コード例 #1
0
ファイル: panel_list.cpp プロジェクト: Karamax/WalCommander
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;
	}
}
コード例 #2
0
ファイル: vfs.cpp プロジェクト: KonstantinKuklin/WalCommander
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;
}