VirtualBox

Changeset 46756 in vbox for trunk/src


Ignore:
Timestamp:
Jun 24, 2013 2:28:59 PM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: UI medium handling: Make sure medium attached to hidden VMs *only* is hidden too. Affected by the GUI/HideFromManager extra-data flag. Affects Virtual Medium Manager.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/medium
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.cpp

    r44528 r46756  
    4242UIMedium& UIMedium::operator= (const UIMedium &aOther)
    4343{
     44    m_fAttachedToHiddenMachinesOnly = aOther.isAttachedToHiddenMachinesOnly();
     45
    4446    mMedium = aOther.medium();
    4547    mType = aOther.type();
     
    121123void UIMedium::refresh()
    122124{
     125    /* We assume this flag is 'false' by default: */
     126    m_fAttachedToHiddenMachinesOnly = false;
     127
    123128    /* Detect basic parameters */
    124129    mId = mMedium.isNull() ? QUuid().toString().remove ('{').remove ('}') : mMedium.GetId();
     
    201206        if (machineIds.size() > 0)
    202207        {
     208            /* We assume this flag is 'true' if at least one machine present: */
     209            m_fAttachedToHiddenMachinesOnly = true;
     210
    203211            QString sUsage;
    204212
     
    214222                 * CVirtualBox::FindMachine() will return null machine for such case. */
    215223                if (machine.isNull())
     224                {
     225                    /* We can't decide for that medium yet,
     226                     * assume this flag is 'false' for now: */
     227                    m_fAttachedToHiddenMachinesOnly = false;
    216228                    continue;
     229                }
     230
     231                /* Finally, we are checking if current machine overrides this flag: */
     232                if (m_fAttachedToHiddenMachinesOnly && vboxGlobal().shouldWeShowMachine(machine))
     233                    m_fAttachedToHiddenMachinesOnly = false;
    217234
    218235                QString sName = machine.GetName();
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMedium.h

    r41650 r46756  
    130130    void refresh();
    131131
     132    bool isAttachedToHiddenMachinesOnly() const { return m_fAttachedToHiddenMachinesOnly; }
     133
    132134    const CMedium &medium() const { return mMedium; }
    133135
     
    242244    void checkNoDiffs (bool aNoDiffs);
    243245
     246    bool m_fAttachedToHiddenMachinesOnly;
     247
    244248    CMedium mMedium;
    245249
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.cpp

    r45377 r46756  
    778778        return;
    779779
     780    /* Ignore mediums (and their children) attached to hidden machines only: */
     781    if (isMediumAttachedToHiddenMachinesOnly(aMedium))
     782        return;
     783
    780784    if (!mShowDiffs && aMedium.type() == UIMediumType_HardDisk)
    781785    {
     
    887891        (mType != UIMediumType_All && mType != aMedium.type()) ||
    888892        (aMedium.isHostDrive()))
     893        return;
     894
     895    /* Ignore mediums (and their children) attached to hidden machines only: */
     896    if (isMediumAttachedToHiddenMachinesOnly(aMedium))
    889897        return;
    890898
     
    19831991}
    19841992
     1993/* static */
     1994bool UIMediumManager::isMediumAttachedToHiddenMachinesOnly(const UIMedium &medium)
     1995{
     1996    /* Iterate till the root: */
     1997    const UIMedium *pMedium = &medium;
     1998    do
     1999    {
     2000        /* Ignore medium if its attached to hidden machines only: */
     2001        if (pMedium->isAttachedToHiddenMachinesOnly())
     2002            return true;
     2003        /* Move iterator to parent: */
     2004        pMedium = pMedium->parent();
     2005    }
     2006    while (pMedium);
     2007    /* False by default: */
     2008    return false;
     2009}
     2010
    19852011#include "UIMediumManager.moc"
    19862012
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h

    r45290 r46756  
    133133    QString formatPaneText (const QString &aText, bool aCompact = true, const QString &aElipsis = "middle");
    134134
     135    /* Helper: Enumeration stuff: */
     136    static bool isMediumAttachedToHiddenMachinesOnly(const UIMedium &medium);
     137
    135138    /* Private member vars */
    136139    /* Window status */
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette