VirtualBox

Ignore:
Timestamp:
Oct 12, 2007 8:24:28 PM (17 years ago)
Author:
vboxsync
Message:

FE/Qt: Don't disable the Release Media action only because the name of the VM the DVD/Floppy is mounted to contains parenthesis; also lots of optimizations and small fixes.

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

Legend:

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

    r5247 r5281  
    597597    <function access="private" returnType="DiskImageItem*">searchItem( QListView*, const QUuid &amp; )</function>
    598598    <function access="private" returnType="DiskImageItem*">searchItem( QListView*, VBoxMedia::Status )</function>
    599     <function specifier="static" access="private" returnType="QString">getDVDImageUsage( const QUuid &amp; id )</function>
    600     <function specifier="static" access="private" returnType="QString">getFloppyImageUsage( const QUuid &amp; id )</function>
    601     <function specifier="static" access="private">sourceSnapshotsCD( const QUuid &amp; aImageId, const CSnapshot &amp; aSnapshot, QString &amp; aUsage )</function>
    602     <function specifier="static" access="private">sourceSnapshotsFD( const QUuid &amp; aImageId, const CSnapshot &amp; aSnapshot, QString &amp; aUsage )</function>
     599    <function specifier="static" access="private" returnType="QString">getDVDImageUsage( const QUuid &amp; aId, QString &amp; aSnapshotUsage )</function>
     600    <function specifier="static" access="private" returnType="QString">getFloppyImageUsage( const QUuid &amp; aId, QString &amp; aSnapshotUsage )</function>
     601    <function specifier="static" access="private">getDVDImageSnapshotUsage( const QUuid &amp; aImageId, const CSnapshot &amp; aSnapshot, QString &amp; aUsage )</function>
     602    <function specifier="static" access="private">getFloppyImageSnapshotUsage( const QUuid &amp; aImageId, const CSnapshot &amp; aSnapshot, QString &amp; aUsage )</function>
    603603    <function access="private" returnType="bool">checkImage( DiskImageItem* item )</function>
    604604    <function access="private">releaseDisk( QUuid machineId, QUuid itemId, VBoxDefs::DiskType diskType )</function>
     
    627627    <function access="protected">setCurrentItem( QListView*, QListViewItem* )</function>
    628628    <function specifier="static"> showModeless( bool aRefresh = true )</function>
    629     <function specifier="static" returnType="QString">composeHdToolTip( CHardDisk &amp;, VBoxMedia::Status = VBoxMedia::Ok )</function>
    630     <function specifier="static" returnType="QString">composeCdToolTip( CDVDImage &amp;, VBoxMedia::Status = VBoxMedia::Ok )</function>
    631     <function specifier="static" returnType="QString">composeFdToolTip( CFloppyImage &amp;, VBoxMedia::Status = VBoxMedia::Ok )</function>
     629    <function specifier="static" returnType="QString">composeHdToolTip( CHardDisk &amp;, VBoxMedia::Status = VBoxMedia::Ok, DiskImageItem *aItem = NULL )</function>
     630    <function specifier="static" returnType="QString">composeCdToolTip( CDVDImage &amp;, VBoxMedia::Status = VBoxMedia::Ok, DiskImageItem *aItem = NULL )</function>
     631    <function specifier="static" returnType="QString">composeFdToolTip( CFloppyImage &amp;, VBoxMedia::Status = VBoxMedia::Ok, DiskImageItem *aItem = NULL )</function>
    632632    <function access="protected">clearInfoPanes()</function>
    633633    <function access="protected">prepareToRefresh( int aTotal = 0 )</function>
  • trunk/src/VBox/Frontends/VirtualBox/ui/VBoxDiskImageManagerDlg.ui.h

    r5247 r5281  
    4040
    4141    void setMedia (const VBoxMedia &aMedia) { mMedia = aMedia; }
    42     VBoxMedia &getMedia() { return mMedia; }
    43 
    44     QString getName() { return mName; }
     42    const VBoxMedia &getMedia() const { return mMedia; }
    4543
    4644    void setPath (QString aPath) { mPath = aPath; }
    47     const QString &getPath() { return mPath; }
     45    const QString &getPath() const { return mPath; }
    4846
    4947    void setUsage (QString aUsage) { mUsage = aUsage; }
    50     const QString &getUsage() { return mUsage; }
     48    const QString &getUsage() const { return mUsage; }
     49
     50    void setSnapshotUsage (QString aSnapshotUsage) { mSnapshotUsage = aSnapshotUsage; }
     51    const QString &getSnapshotUsage() const { return mSnapshotUsage; }
     52
     53    QString getTotalUsage() const
     54    {
     55        /* should correlate with VBoxDiskImageManagerDlg::compose[Cd/Fd]Tooltip */
     56        return mSnapshotUsage.isNull() ? mUsage :
     57            QString ("%1 (%2)").arg (mUsage, mSnapshotUsage);
     58    }
    5159
    5260    void setSnapshotName (QString aSnapshotName) { mSnapshotName = aSnapshotName; }
    53     const QString &getSnapshotName() { return mSnapshotName; }
     61    const QString &getSnapshotName() const { return mSnapshotName; }
    5462
    5563    void setDiskType (QString aDiskType) { mDiskType = aDiskType; }
    56     const QString &getDiskType() { return mDiskType; }
     64    const QString &getDiskType() const { return mDiskType; }
    5765
    5866    void setStorageType (QString aStorageType) { mStorageType = aStorageType; }
    59     const QString &getStorageType() { return mStorageType; }
     67    const QString &getStorageType() const { return mStorageType; }
    6068
    6169    void setVirtualSize (QString aVirtualSize) { mVirtualSize = aVirtualSize; }
    62     const QString &getVirtualSize() { return mVirtualSize; }
     70    const QString &getVirtualSize() const { return mVirtualSize; }
    6371
    6472    void setActualSize (QString aActualSize) { mActualSize = aActualSize; }
    65     const QString &getActualSize() { return mActualSize; }
    66 
     73    const QString &getActualSize() const { return mActualSize; }
    6774
    6875    void setUuid (QUuid aUuid) { mUuid = aUuid; }
    69     const QString &getUuid() { return mUuid; }
     76    const QString &getUuid() const { return mUuid; }
    7077
    7178    void setMachineId (QString aMachineId) { mMachineId = aMachineId; }
    72     const QString &getMachineId() { return mMachineId; }
    73 
     79    const QString &getMachineId() const { return mMachineId; }
    7480
    7581    void setStatus (VBoxMedia::Status aStatus) { mStatus = aStatus; }
    76     VBoxMedia::Status getStatus() { return mStatus; }
    77 
     82    VBoxMedia::Status getStatus() const { return mStatus; }
    7883
    7984    void setToolTip (QString aToolTip) { mToolTip = aToolTip; }
    80     const QString &getToolTip() { return mToolTip; }
     85    const QString &getToolTip() const { return mToolTip; }
    8186
    8287    QString getInformation (const QString &aInfo, bool aCompact = true,
     
    133138    QString mPath;
    134139    QString mUsage;
     140    QString mSnapshotUsage;
    135141    QString mSnapshotName;
    136142    QString mDiskType;
     
    857863
    858864
    859 QString VBoxDiskImageManagerDlg::getDVDImageUsage (const QUuid &aId)
     865QString VBoxDiskImageManagerDlg::getDVDImageUsage (const QUuid &aId,
     866                                                   QString &aSnapshotUsage)
    860867{
    861868    CVirtualBox vbox = vboxGlobal().virtualBox();
     
    877884        usage += machine.GetName();
    878885
    879         QString snapshots;
    880         sourceSnapshotsCD (aId, machine.GetSnapshot (QUuid()), snapshots);
    881         if (!snapshots.isEmpty())
    882             usage += QString (" (%1)").arg (snapshots);
     886        getDVDImageSnapshotUsage (aId, machine.GetSnapshot (QUuid()),
     887                                  aSnapshotUsage);
    883888    }
    884889
     
    897902            usage += machine.GetName() + "]";
    898903
    899             QString snapshots;
    900             sourceSnapshotsCD (aId, machine.GetSnapshot (QUuid()), snapshots);
    901             if (!snapshots.isEmpty())
    902                 usage += QString (" (%1)").arg (snapshots);
     904            getDVDImageSnapshotUsage (aId, machine.GetSnapshot (QUuid()),
     905                                      aSnapshotUsage);
    903906        }
    904907    }
     
    907910}
    908911
    909 QString VBoxDiskImageManagerDlg::getFloppyImageUsage (const QUuid &aId)
     912QString VBoxDiskImageManagerDlg::getFloppyImageUsage (const QUuid &aId,
     913                                                      QString &aSnapshotUsage)
    910914{
    911915    CVirtualBox vbox = vboxGlobal().virtualBox();
     
    927931        usage += machine.GetName();
    928932
    929         QString snapshots;
    930         sourceSnapshotsFD (aId, machine.GetSnapshot (QUuid()), snapshots);
    931         if (!snapshots.isEmpty())
    932             usage += QString (" (%1)").arg (snapshots);
     933        getFloppyImageSnapshotUsage (aId, machine.GetSnapshot (QUuid()),
     934                                     aSnapshotUsage);
    933935    }
    934936
     
    947949            usage += machine.GetName() + "]";
    948950
    949             QString snapshots;
    950             sourceSnapshotsFD (aId, machine.GetSnapshot (QUuid()), snapshots);
    951             if (!snapshots.isEmpty())
    952                 usage += QString (" (%1)").arg (snapshots);
     951            getFloppyImageSnapshotUsage (aId, machine.GetSnapshot (QUuid()),
     952                                         aSnapshotUsage);
    953953        }
    954954    }
     
    958958
    959959
    960 void VBoxDiskImageManagerDlg::sourceSnapshotsCD (const QUuid &aImageId,
    961                                                  const CSnapshot &aSnapshot,
    962                                                  QString &aUsage)
     960void VBoxDiskImageManagerDlg::getDVDImageSnapshotUsage (const QUuid &aImageId,
     961                                                        const CSnapshot &aSnapshot,
     962                                                        QString &aUsage)
    963963{
    964964    if (aSnapshot.isNull())
     
    975975    CSnapshotEnumerator en = aSnapshot.GetChildren().Enumerate();
    976976    while (en.HasMore())
    977         sourceSnapshotsCD (aImageId, en.GetNext(), aUsage);
    978 }
    979 
    980 void VBoxDiskImageManagerDlg::sourceSnapshotsFD (const QUuid &aImageId,
    981                                                  const CSnapshot &aSnapshot,
    982                                                  QString &aUsage)
     977        getDVDImageSnapshotUsage (aImageId, en.GetNext(), aUsage);
     978}
     979
     980void VBoxDiskImageManagerDlg::getFloppyImageSnapshotUsage (const QUuid &aImageId,
     981                                                           const CSnapshot &aSnapshot,
     982                                                           QString &aUsage)
    983983{
    984984    if (aSnapshot.isNull())
     
    995995    CSnapshotEnumerator en = aSnapshot.GetChildren().Enumerate();
    996996    while (en.HasMore())
    997         sourceSnapshotsFD (aImageId, en.GetNext(), aUsage);
     997        getFloppyImageSnapshotUsage (aImageId, en.GetNext(), aUsage);
    998998}
    999999
    10001000
    10011001QString VBoxDiskImageManagerDlg::composeHdToolTip (CHardDisk &aHd,
    1002                                                    VBoxMedia::Status aStatus)
     1002                                                   VBoxMedia::Status aStatus,
     1003                                                   DiskImageItem *aItem)
    10031004{
    10041005    CVirtualBox vbox = vboxGlobal().virtualBox();
    1005     QUuid machineId = aHd.GetMachineId();
    1006 
    1007     QString src = aHd.GetLocation();
    1008     QFileInfo fi (src);
    1009     QString location = aHd.GetStorageType() == CEnums::ISCSIHardDisk ? src :
    1010                        QDir::convertSeparators (fi.absFilePath());
    1011 
    1012     QString storageType = vboxGlobal().toString (aHd.GetStorageType());
    1013     QString hardDiskType = vboxGlobal().hardDiskTypeString (aHd);
     1006    QUuid machineId = aItem ? aItem->getMachineId() : aHd.GetMachineId();
     1007
     1008    QString src = aItem ? aItem->getPath() : aHd.GetLocation();
     1009    QString location = aItem || aHd.GetStorageType() == CEnums::ISCSIHardDisk ? src :
     1010        QDir::convertSeparators (QFileInfo (src).absFilePath());
     1011
     1012    QString storageType = aItem ? aItem->getStorageType() :
     1013        vboxGlobal().toString (aHd.GetStorageType());
     1014    QString hardDiskType = aItem ? aItem->getDiskType() :
     1015        vboxGlobal().hardDiskTypeString (aHd);
    10141016
    10151017    QString usage;
    1016     if (!machineId.isNull())
     1018    if (aItem)
     1019        usage = aItem->getUsage();
     1020    else if (!machineId.isNull())
    10171021        usage = vbox.GetMachine (machineId).GetName();
    10181022
     1023    QUuid snapshotId = aItem ? aItem->getUuid() : aHd.GetSnapshotId();
    10191024    QString snapshotName;
    1020     if (!machineId.isNull() && !aHd.GetSnapshotId().isNull())
     1025    if (aItem)
     1026        snapshotName = aItem->getSnapshotName();
     1027    else if (!machineId.isNull() && !snapshotId.isNull())
    10211028    {
    10221029        CSnapshot snapshot = vbox.GetMachine (machineId).
     
    10781085
    10791086QString VBoxDiskImageManagerDlg::composeCdToolTip (CDVDImage &aCd,
    1080                                                    VBoxMedia::Status aStatus)
    1081 {
    1082     QString src = aCd.GetFilePath();
    1083     QFileInfo fi (src);
    1084     QString location = QDir::convertSeparators (fi.absFilePath ());
    1085     QUuid uuid = aCd.GetId();
    1086     QString usage = getDVDImageUsage (uuid);
     1087                                                   VBoxMedia::Status aStatus,
     1088                                                   DiskImageItem *aItem)
     1089{
     1090    QString location = aItem ? aItem->getPath() :
     1091        QDir::convertSeparators (QFileInfo (aCd.GetFilePath()).absFilePath());
     1092    QUuid uuid = aItem ? aItem->getUuid() : aCd.GetId();
     1093    QString usage;
     1094    if (aItem)
     1095        usage = aItem->getTotalUsage();
     1096    else
     1097    {
     1098        QString snapshotUsage;
     1099        usage = getDVDImageUsage (uuid, snapshotUsage);
     1100        /* should correlate with DiskImageItem::getTotalUsage() */
     1101        if (!snapshotUsage.isNull())
     1102            usage = QString ("%1 (%2)").arg (usage, snapshotUsage);
     1103    }
    10871104
    10881105    /* compose tool-tip information */
     
    11341151
    11351152QString VBoxDiskImageManagerDlg::composeFdToolTip (CFloppyImage &aFd,
    1136                                                    VBoxMedia::Status aStatus)
    1137 {
    1138     QString src = aFd.GetFilePath();
    1139     QFileInfo fi (src);
    1140     QString location = QDir::convertSeparators (fi.absFilePath ());
    1141     QUuid uuid = aFd.GetId();
    1142     QString usage = getFloppyImageUsage (uuid);
    1143 
    1144     /* compose tool-tip information */
     1153                                                   VBoxMedia::Status aStatus,
     1154                                                   DiskImageItem *aItem)
     1155{
     1156    QString location = aItem ? aItem->getPath() :
     1157        QDir::convertSeparators (QFileInfo (aFd.GetFilePath()).absFilePath());
     1158    QUuid uuid = aItem ? aItem->getUuid() : aFd.GetId();
     1159    QString usage;
     1160    if (aItem)
     1161        usage = aItem->getTotalUsage();
     1162    else
     1163    {
     1164        QString snapshotUsage;
     1165        usage = getFloppyImageUsage (uuid, snapshotUsage);
     1166        /* should correlate with DiskImageItem::getTotalUsage() */
     1167        if (!snapshotUsage.isNull())
     1168            usage = QString ("%1 (%2)").arg (usage, snapshotUsage);
     1169    }
     1170
    11451171    /* compose tool-tip information */
    11461172    QString tip;
     
    11941220                                            const VBoxMedia &aMedia)
    11951221{
    1196     if (!aItem) return;
     1222    if (!aItem)
     1223        return;
     1224
    11971225    CHardDisk hd = aMedia.disk;
    11981226    VBoxMedia::Status status = aMedia.status;
     
    12241252    aItem->setText (2, actualSize);
    12251253    aItem->setPath (hd.GetStorageType() == CEnums::ISCSIHardDisk ? src :
    1226                    QDir::convertSeparators (fi.absFilePath()));
     1254                    QDir::convertSeparators (fi.absFilePath()));
    12271255    aItem->setUsage (usage);
    12281256    aItem->setSnapshotName (snapshotName);
     
    12331261    aItem->setUuid (uuid);
    12341262    aItem->setMachineId (machineId);
    1235     aItem->setToolTip (composeHdToolTip (hd, status));
     1263    aItem->setToolTip (composeHdToolTip (hd, status, aItem));
    12361264    aItem->setStatus (status);
    12371265
     
    12421270                                            const VBoxMedia &aMedia)
    12431271{
    1244     if (!aItem) return;
     1272    if (!aItem)
     1273        return;
     1274
    12451275    CDVDImage cd = aMedia.disk;
    12461276    VBoxMedia::Status status = aMedia.status;
     
    12481278    QUuid uuid = cd.GetId();
    12491279    QString src = cd.GetFilePath();
    1250     QString usage = getDVDImageUsage (uuid);
     1280    QString snapshotUsage;
     1281    QString usage = getDVDImageUsage (uuid, snapshotUsage);
    12511282    QString size = status == VBoxMedia::Ok ?
    12521283        vboxGlobal().formatSize (cd.GetSize()) : QString ("--");
     
    12571288    aItem->setPath (QDir::convertSeparators (fi.absFilePath ()));
    12581289    aItem->setUsage (usage);
     1290    aItem->setSnapshotUsage (snapshotUsage);
    12591291    aItem->setActualSize (size);
    12601292    aItem->setUuid (uuid);
    1261     aItem->setToolTip (composeCdToolTip (cd, status));
     1293    aItem->setToolTip (composeCdToolTip (cd, status, aItem));
    12621294    aItem->setStatus (status);
    12631295
     
    12681300                                            const VBoxMedia &aMedia)
    12691301{
    1270     if (!aItem) return;
     1302    if (!aItem)
     1303        return;
     1304
    12711305    CFloppyImage fd = aMedia.disk;
    12721306    VBoxMedia::Status status = aMedia.status;
     
    12741308    QUuid uuid = fd.GetId();
    12751309    QString src = fd.GetFilePath();
    1276     QString usage = getFloppyImageUsage (uuid);
     1310    QString snapshotUsage;
     1311    QString usage = getFloppyImageUsage (uuid, snapshotUsage);
    12771312    QString size = status == VBoxMedia::Ok ?
    12781313        vboxGlobal().formatSize (fd.GetSize()) : QString ("--");
     
    12831318    aItem->setPath (QDir::convertSeparators (fi.absFilePath ()));
    12841319    aItem->setUsage (usage);
     1320    aItem->setSnapshotUsage (snapshotUsage);
    12851321    aItem->setActualSize (size);
    12861322    aItem->setUuid (uuid);
    1287     aItem->setToolTip (composeFdToolTip (fd, status));
     1323    aItem->setToolTip (composeFdToolTip (fd, status, aItem));
    12881324    aItem->setStatus (status);
    12891325
     
    17181754    else if (parentList == cdsView)
    17191755    {
    1720         QString usage = getDVDImageUsage (itemId);
    17211756        /* check if there is temporary usage: */
    17221757        QStringList tempMachines =
     
    17371772    else if (parentList == fdsView)
    17381773    {
    1739         QString usage = getFloppyImageUsage(itemId);
    17401774        /* check if there is temporary usage: */
    17411775        QStringList tempMachines =
     
    18101844                          !item->firstChild() && !item->getPath().isNull();
    18111845    bool releaseEnabled = item && !item->getUsage().isNull() &&
    1812         item->getUsage().find (QRegExp ("\\([\\s\\S]+\\)")) == -1 &&
    1813         checkImage (item) &&
    1814         !item->parent() && !item->firstChild() &&
    1815         item->getSnapshotName().isNull();
     1846                          item->getSnapshotUsage().isNull() &&
     1847                          checkImage (item) &&
     1848                          !item->parent() && !item->firstChild() &&
     1849                          item->getSnapshotName().isNull();
    18161850    bool newEnabled     = notInEnum &&
    18171851                          getCurrentListView() == hdsView ? true : false;
     
    18511885        {
    18521886            cdsPane1->setText (item->getInformation (item->getPath(), true, "end"));
    1853             cdsPane2->setText (item->getInformation (item->getUsage()));
     1887            cdsPane2->setText (item->getInformation (item->getTotalUsage()));
    18541888        }
    18551889        else if (item->listView() == fdsView)
    18561890        {
    18571891            fdsPane1->setText (item->getInformation (item->getPath(), true, "end"));
    1858             fdsPane2->setText (item->getInformation (item->getUsage()));
     1892            fdsPane2->setText (item->getInformation (item->getTotalUsage()));
    18591893        }
    18601894    }
     
    20412075    else if (currentList == cdsView)
    20422076    {
    2043         QString usage = getDVDImageUsage (itemId);
    2044         /* only permamently mounted .iso could be released */
     2077        QString usage = item->getTotalUsage();
    20452078        if (vboxProblem().confirmReleaseImage (this, usage))
    20462079        {
     
    20592092    else if (currentList == fdsView)
    20602093    {
    2061         QString usage = getFloppyImageUsage (itemId);
    2062         /* only permamently mounted .img could be released */
     2094        QString usage = item->getTotalUsage();
    20632095        if (vboxProblem().confirmReleaseImage (this, usage))
    20642096        {
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