Example #1
0
void CDirstatDoc::OnTreemapZoomin()
{
    // FIXME: Multi-select
    CItem *p = GetSelection(0);
    CItem *z = NULL;
    while(p != GetZoomItem())
    {
        z = p;
        p = p->GetParent();
    }
    ASSERT(z != NULL);
    SetZoomItem(z);
}
Example #2
0
// Starts a refresh of an item.
// If the physical item has been deleted,
// updates selection, zoom and working item accordingly.
//
void CDirstatDoc::RefreshItem(CItem *item)
{
	ASSERT(item != NULL);

	CWaitCursor wc;

	ClearReselectChildStack();

	if (item->IsAncestorOf(GetZoomItem()))
		SetZoomItem(item);

	if (item->IsAncestorOf(GetSelection()))
	{
		SetSelection(item);
		UpdateAllViews(NULL, HINT_SELECTIONCHANGED);
	}

	SetWorkingItemAncestor(item);

	CItem *parent= item->GetParent();

	if (!item->StartRefresh())
	{
		if (GetZoomItem() == item)
			SetZoomItem(parent);
		if (GetSelection() == item)
		{
			SetSelection(parent);
			UpdateAllViews(NULL, HINT_SELECTIONCHANGED);
		}
		if (m_workingItem == item)
			SetWorkingItem(parent);
	}

	UpdateAllViews(NULL);
}
Example #3
0
void CDirstatDoc::OnViewShowunknown()
{
    CArray<CItem *, CItem *> drives;
    GetDriveItems(drives);

    if(m_showUnknown)
    {
        for(int i = 0; i < drives.GetSize(); i++)
        {
            CItem *unknown = drives[i]->FindUnknownItem();
            ASSERT(unknown != NULL);

            // FIXME: Multi-select
            if(GetSelection(0) == unknown)
            {
                SetSelection(unknown->GetParent());
            }

            if(GetZoomItem() == unknown)
            {
                m_zoomItem = unknown->GetParent();
            }

            drives[i]->RemoveUnknownItem();
        }
        m_showUnknown = false;
    }
    else
    {
        for(int i = 0; i < drives.GetSize(); i++)
        {
            drives[i]->CreateUnknownItem();
        }
        m_showUnknown = true;
    }

    if(drives.GetSize() > 0)
    {
        SetWorkingItem(GetRootItem());
    }

    UpdateAllViews(NULL);
}
Example #4
0
void CDirstatDoc::OnViewShowfreespace()
{
    CArray<CItem *, CItem *> drives;
    GetDriveItems(drives);

    if(m_showFreeSpace)
    {
        for(int i = 0; i < drives.GetSize(); i++)
        {
            CItem *free = drives[i]->FindFreeSpaceItem();
            ASSERT(free != NULL);

            // FIXME: Multi-select
            if(GetSelection(0) == free)
            {
                SetSelection(free->GetParent());
            }

            if(GetZoomItem() == free)
            {
                m_zoomItem = free->GetParent();
            }

            drives[i]->RemoveFreeSpaceItem();
        }
        m_showFreeSpace = false;
    }
    else
    {
        for(int i = 0; i < drives.GetSize(); i++)
        {
            drives[i]->CreateFreeSpaceItem();
        }
        m_showFreeSpace = true;
    }

    if(drives.GetSize() > 0)
    {
        SetWorkingItem(GetRootItem());
    }

    UpdateAllViews(NULL);
}
Example #5
0
bool CDirstatDoc::IsZoomed()
{
	return GetZoomItem() != GetRootItem();
}
Example #6
0
void CDirstatDoc::OnTreemapZoomout()
{
	SetZoomItem(GetZoomItem()->GetParent());
}