VirtualBox

Ignore:
Timestamp:
Mar 12, 2007 11:17:52 AM (18 years ago)
Author:
vboxsync
Message:

VBoxMedia data member integrated into DiskImageItem class allowing access to related disk image through particular list-view item. Used for releasing&removing media.

Location:
trunk/src/VBox/Frontends/VirtualBox/ui
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxDiskImageManagerDlg.ui

    r1381 r1413  
    613613    <function access="private">addDroppedImages( QStringList* )</function>
    614614    <function access="private">addImageToList( const QString &amp; aSource, VBoxDefs::DiskType aDiskType )</function>
    615     <function access="private" returnType="DiskImageItem*">createImageNode( QListView *aList, DiskImageItem *aRoot )</function>
     615    <function access="private" returnType="DiskImageItem*">createImageNode( QListView *aList, DiskImageItem *aRoot, const VBoxMedia &amp; )</function>
    616616    <function access="private">updateHdItem( DiskImageItem*, const VBoxMedia &amp; )</function>
    617617    <function access="private">updateCdItem( DiskImageItem*, const VBoxMedia &amp; )</function>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxDiskImageManagerDlg.ui.h

    r1381 r1413  
    4343        QListViewItem (parent), mStatus (VBoxMedia::Unknown) {}
    4444
     45    void setMedia (const VBoxMedia &aMedia) { mMedia = aMedia; }
     46    VBoxMedia &getMedia() { return mMedia; }
     47
    4548    QString getName() { return mName; }
    4649
     
    126129
    127130protected:
     131
     132    VBoxMedia mMedia;
    128133
    129134    QString mName;
     
    787792
    788793DiskImageItem* VBoxDiskImageManagerDlg::createImageNode (QListView *aList,
    789                                                          DiskImageItem *aRoot)
     794                                                         DiskImageItem *aRoot,
     795                                                         const VBoxMedia &aMedia)
    790796{
    791797    DiskImageItem *item = 0;
     
    797803    else
    798804        Assert (0);
     805
     806    item->setMedia (aMedia);
    799807
    800808    return item;
     
    11851193    QUuid rootId = hd.GetParent().isNull() ? QUuid() : hd.GetParent().GetId();
    11861194    DiskImageItem *root = searchItem (aList, rootId);
    1187     DiskImageItem *item = createImageNode (aList, root);
     1195    DiskImageItem *item = createImageNode (aList, root, aMedia);
    11881196    updateHdItem (item, aMedia);
    11891197    return item;
     
    11931201                                                      const VBoxMedia &aMedia)
    11941202{
    1195     DiskImageItem *item = createImageNode (aList, 0);
     1203    DiskImageItem *item = createImageNode (aList, 0, aMedia);
    11961204    updateCdItem (item, aMedia);
    11971205    return item;
     
    12011209                                                      const VBoxMedia &aMedia)
    12021210{
    1203     DiskImageItem *item = createImageNode (aList, 0);
     1211    DiskImageItem *item = createImageNode (aList, 0, aMedia);
    12041212    updateFdItem (item, aMedia);
    12051213    return item;
     
    15721580    if (parentList == hdsView)
    15731581    {
    1574         QUuid machineId = vbox.GetHardDisk (itemId).GetMachineId();
     1582        CHardDisk hd = aItem->getMedia().disk;
     1583        QUuid machineId = hd.GetMachineId();
    15751584        if (machineId.isNull() ||
    15761585            vbox.GetMachine (machineId).GetState() != CEnums::PoweredOff &&
     
    17951804        title = tr( "Select a floppy disk image file" );
    17961805        type = VBoxDefs::FD;
    1797     } else
     1806    }
     1807    else
    17981808    {
    17991809        AssertMsgFailed (("Root list should be equal to hdsView, cdsView or fdsView"));
     
    18201830    AssertMsg (item, ("Current item must not be null"));
    18211831
     1832    QUuid uuid = QUuid (item->getUuid());
     1833    AssertMsg (!uuid.isNull(), ("Current item must have uuid"));
     1834
    18221835    QString src = item->getPath().stripWhiteSpace();
    1823     QUuid uuid = QUuid (item->getUuid());
    18241836    VBoxDefs::DiskType type = VBoxDefs::InvalidType;
    18251837
     
    18311843        /// enable image deletion for  them as well (use
    18321844        /// GetStorageType() to define the correct cast).
    1833         if (vbox.GetHardDisk (uuid).GetStorageType() == CEnums::VirtualDiskImage &&
     1845        CHardDisk disk = item->getMedia().disk;
     1846        if (disk.GetStorageType() == CEnums::VirtualDiskImage &&
    18341847            item->getStatus() == VBoxMedia::Ok)
    18351848            deleteImage = vboxProblem().confirmHardDiskImageDeletion (this, src);
     
    18811894    AssertMsg (!itemId.isNull(), ("Current item must have uuid"));
    18821895
    1883     VBoxMedia media;
    1884     QUuid machineId;
    18851896    /* if it is a hard disk sub-item: */
    18861897    if (currentList == hdsView)
    18871898    {
    1888         machineId = vbox.GetHardDisk (itemId).GetMachineId();
     1899        CHardDisk hd = item->getMedia().disk;
     1900        QUuid machineId = hd.GetMachineId();
    18891901        if (vboxProblem().confirmReleaseImage (this,
    1890                            vbox.GetMachine(machineId).GetName()))
     1902            vbox.GetMachine (machineId).GetName()))
    18911903        {
    18921904            releaseDisk (machineId, itemId, VBoxDefs::HD);
    1893             CHardDisk hd = vboxGlobal().virtualBox().GetHardDisk (itemId);
    1894             media = VBoxMedia (CUnknown (hd), VBoxDefs::HD, item->getStatus());
     1905            vboxGlobal().updateMedia (item->getMedia());
    18951906        }
    18961907    }
     
    19091920                releaseDisk (QUuid (*it), itemId, VBoxDefs::CD);
    19101921
    1911             CDVDImage cd = vboxGlobal().virtualBox().GetDVDImage (itemId);
    1912             media = VBoxMedia (CUnknown (cd), VBoxDefs::CD, item->getStatus());
     1922            CDVDImage cd = vbox.GetDVDImage (itemId);
     1923            vboxGlobal().updateMedia (item->getMedia());
    19131924        }
    19141925    }
     
    19271938                releaseDisk (QUuid (*it), itemId, VBoxDefs::FD);
    19281939
    1929             CFloppyImage fd = vboxGlobal().virtualBox().GetFloppyImage (itemId);
    1930             media = VBoxMedia (CUnknown (fd), VBoxDefs::FD, item->getStatus());
    1931         }
    1932     }
    1933     if (media.type != VBoxDefs::InvalidType)
    1934         vboxGlobal().updateMedia (media);
     1940            CFloppyImage fd = vbox.GetFloppyImage (itemId);
     1941            vboxGlobal().updateMedia (item->getMedia());
     1942        }
     1943    }
    19351944}
    19361945
     
    19901999        }
    19912000        default:
    1992             AssertFailed();
     2001            AssertMsgFailed (("Incorrect disk type."));
    19932002    }
    19942003    /* save all setting changes: */
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