void vmsDownloadsGroupsMgr::DeleteGroup(vmsDownloadsGroupSmartPtr pGroup)
{
	PDLDS_GROUPS_TREE pGrp = FindGroupInTree (pGroup);
	PDLDS_GROUPS_TREE pRoot = pGrp->GetRoot ();
	for (int i = 0; i < pRoot->GetLeafCount (); i++)
	{
		if (pRoot->GetLeaf (i) == pGrp)
		{
			pRoot->DeleteLeaf (i);
			RebuildGroupsList ();

			if (pRoot == m_tGroups) {
				setDirty();
				getPersistObjectChildren ()->removePersistObject (i);
			} else {
				vmsDownloadsGroupSmartPtr pRootGroupPtr = pRoot->GetData();
				if ((vmsDownloadsGroup*)pRootGroupPtr != 0) {
					pRootGroupPtr->nChildren--;
					pRootGroupPtr->getPersistObjectChildren ()->removePersistObject (i);
					pRootGroupPtr->setDirty();
				}
			}

			
			
			
			return;
		}
	}
}
fsString vmsDownloadsGroupsMgr::GetGroupFullName(UINT nId)
{
	vmsDownloadsGroupSmartPtr pGroup = FindGroup (nId);
	if (pGroup == NULL)
		return "";
	PDLDS_GROUPS_TREE p = FindGroupInTree (pGroup);
	fsString strName;

	while (p && p->GetData () != NULL)
	{
		fsString str = p->GetData ()->strName;
		if (strName.IsEmpty ())
		{
			strName = str;
		}
		else
		{
			str += '\\';
			str += strName;
			strName = str;
		}

		p = p->GetRoot ();
	}

	return strName;
}
void vmsDownloadsGroupsMgr::GetGroupWithSubgroups(vmsDownloadsGroupSmartPtr pGroup, std::vector <vmsDownloadsGroupSmartPtr> &v)
{
	PDLDS_GROUPS_TREE pGrp = FindGroupInTree (pGroup);
	if (pGrp != NULL)
	{
		v.push_back (pGrp->GetData ());
		GetSubgroups (pGrp, v);
	}
}
Esempio n. 4
0
void vmsDownloadsGroupsMgr::DeleteGroup(vmsDownloadsGroupSmartPtr pGroup)
{
    PDLDS_GROUPS_TREE pGrp = FindGroupInTree (pGroup);
    PDLDS_GROUPS_TREE pRoot = pGrp->GetRoot ();
    for (int i = 0; i < pRoot->GetLeafCount (); i++)
    {
        if (pRoot->GetLeaf (i) == pGrp)
        {
            pRoot->DeleteLeaf (i);
            RebuildGroupsList ();
            QueryStoringGroupsInformation();
            return;
        }
    }
}
PDLDS_GROUPS_TREE vmsDownloadsGroupsMgr::Add(vmsDownloadsGroupSmartPtr grp, vmsDownloadsGroupSmartPtr pParentGroup, BOOL bKeepIdAsIs, bool bDontQueryStoringGroupsInformation)
{
	PDLDS_GROUPS_TREE pParent = pParentGroup == NULL ? m_tGroups : FindGroupInTree (pParentGroup);
	return Add (grp, pParent, bKeepIdAsIs, bDontQueryStoringGroupsInformation);	
}