VirtualBox

Ignore:
Timestamp:
Feb 5, 2014 2:03:26 PM (11 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
92052
Message:

FE/Qt: 4397: Medium Manager cleanup/rework (part 4): Move some update stuff into corresponding place.

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

Legend:

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

    r50327 r50329  
    10981098}
    10991099
     1100void UIMediumManager::updateTabIcons(UIMediumItem *pMediumItem, ItemAction action)
     1101{
     1102    /* Make sure medium-item is valid: */
     1103    AssertReturnVoid(pMediumItem);
     1104
     1105    /* Prepare data for tab: */
     1106    int iTab = -1;
     1107    const QIcon *pIcon = 0;
     1108    bool *pfInaccessible = 0;
     1109    switch (pMediumItem->mediumType())
     1110    {
     1111        case UIMediumType_HardDisk:
     1112            iTab = HDTab;
     1113            pIcon = &m_iconHD;
     1114            pfInaccessible = &m_fInaccessibleHD;
     1115            break;
     1116        case UIMediumType_DVD:
     1117            iTab = CDTab;
     1118            pIcon = &m_iconCD;
     1119            pfInaccessible = &m_fInaccessibleCD;
     1120            break;
     1121        case UIMediumType_Floppy:
     1122            iTab = FDTab;
     1123            pIcon = &m_iconFD;
     1124            pfInaccessible = &m_fInaccessibleFD;
     1125            break;
     1126        default:
     1127            AssertFailed();
     1128    }
     1129    AssertReturnVoid(iTab != -1 && pIcon && pfInaccessible);
     1130
     1131    switch (action)
     1132    {
     1133        case ItemAction_Added:
     1134        {
     1135            /* Does it change the overall state? */
     1136            if (*pfInaccessible || pMediumItem->state() != KMediumState_Inaccessible)
     1137                break; /* no */
     1138
     1139            *pfInaccessible = true;
     1140
     1141            mTabWidget->setTabIcon(iTab, vboxGlobal().warningIcon());
     1142
     1143            break;
     1144        }
     1145        case ItemAction_Updated:
     1146        case ItemAction_Removed:
     1147        {
     1148            bool fCheckRest = false;
     1149
     1150            if (action == ItemAction_Updated)
     1151            {
     1152                /* Does it change the overall state? */
     1153                if ((*pfInaccessible && pMediumItem->state() == KMediumState_Inaccessible) ||
     1154                    (!*pfInaccessible && pMediumItem->state() != KMediumState_Inaccessible))
     1155                    break; /* no */
     1156
     1157                /* Is the given item in charge? */
     1158                if (!*pfInaccessible && pMediumItem->state() == KMediumState_Inaccessible)
     1159                    *pfInaccessible = true; /* yes */
     1160                else
     1161                    fCheckRest = true; /* no */
     1162            }
     1163            else
     1164                fCheckRest = true;
     1165
     1166            if (fCheckRest)
     1167            {
     1168                /* Find the first KMediumState_Inaccessible item to be in charge: */
     1169                UIMediumItem *pInaccessibleMediumItem =
     1170                    searchItem(pMediumItem->treeWidget(), CheckIfSuitableByState(KMediumState_Inaccessible));
     1171                *pfInaccessible = !!pInaccessibleMediumItem;
     1172            }
     1173
     1174            if (*pfInaccessible)
     1175                mTabWidget->setTabIcon(iTab, vboxGlobal().warningIcon());
     1176            else
     1177                mTabWidget->setTabIcon(iTab, *pIcon);
     1178
     1179            break;
     1180        }
     1181    }
     1182}
     1183
    11001184#ifdef Q_WS_MAC
    11011185void UIMediumManager::cleanupMacWindowMenu()
     
    15551639}
    15561640
    1557 void UIMediumManager::updateTabIcons(UIMediumItem *pMediumItem, ItemAction action)
    1558 {
    1559     /* Make sure medium-item is valid: */
    1560     AssertReturnVoid(pMediumItem);
    1561 
    1562     /* Prepare data for tab: */
    1563     int iTab = -1;
    1564     const QIcon *pIcon = 0;
    1565     bool *pfInaccessible = 0;
    1566     switch (pMediumItem->mediumType())
    1567     {
    1568         case UIMediumType_HardDisk:
    1569             iTab = HDTab;
    1570             pIcon = &m_iconHD;
    1571             pfInaccessible = &m_fInaccessibleHD;
    1572             break;
    1573         case UIMediumType_DVD:
    1574             iTab = CDTab;
    1575             pIcon = &m_iconCD;
    1576             pfInaccessible = &m_fInaccessibleCD;
    1577             break;
    1578         case UIMediumType_Floppy:
    1579             iTab = FDTab;
    1580             pIcon = &m_iconFD;
    1581             pfInaccessible = &m_fInaccessibleFD;
    1582             break;
    1583         default:
    1584             AssertFailed();
    1585     }
    1586     AssertReturnVoid(iTab != -1 && pIcon && pfInaccessible);
    1587 
    1588     switch (action)
    1589     {
    1590         case ItemAction_Added:
    1591         {
    1592             /* Does it change the overall state? */
    1593             if (*pfInaccessible || pMediumItem->state() != KMediumState_Inaccessible)
    1594                 break; /* no */
    1595 
    1596             *pfInaccessible = true;
    1597 
    1598             mTabWidget->setTabIcon(iTab, vboxGlobal().warningIcon());
    1599 
    1600             break;
    1601         }
    1602         case ItemAction_Updated:
    1603         case ItemAction_Removed:
    1604         {
    1605             bool fCheckRest = false;
    1606 
    1607             if (action == ItemAction_Updated)
    1608             {
    1609                 /* Does it change the overall state? */
    1610                 if ((*pfInaccessible && pMediumItem->state() == KMediumState_Inaccessible) ||
    1611                     (!*pfInaccessible && pMediumItem->state() != KMediumState_Inaccessible))
    1612                     break; /* no */
    1613 
    1614                 /* Is the given item in charge? */
    1615                 if (!*pfInaccessible && pMediumItem->state() == KMediumState_Inaccessible)
    1616                     *pfInaccessible = true; /* yes */
    1617                 else
    1618                     fCheckRest = true; /* no */
    1619             }
    1620             else
    1621                 fCheckRest = true;
    1622 
    1623             if (fCheckRest)
    1624             {
    1625                 /* Find the first KMediumState_Inaccessible item to be in charge: */
    1626                 UIMediumItem *pInaccessibleMediumItem =
    1627                     searchItem(pMediumItem->treeWidget(), CheckIfSuitableByState(KMediumState_Inaccessible));
    1628                 *pfInaccessible = !!pInaccessibleMediumItem;
    1629             }
    1630 
    1631             if (*pfInaccessible)
    1632                 mTabWidget->setTabIcon(iTab, vboxGlobal().warningIcon());
    1633             else
    1634                 mTabWidget->setTabIcon(iTab, *pIcon);
    1635 
    1636             break;
    1637         }
    1638     }
    1639 }
    1640 
    16411641bool UIMediumManager::checkMediumFor(UIMediumItem *pItem, Action action)
    16421642{
  • trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h

    r50327 r50329  
    123123    /** Update actions according currently chosen medium-item. */
    124124    void updateActions();
     125    /** Update tab icons according last @a action happened with @a pItem. */
     126    void updateTabIcons(UIMediumItem *pItem, ItemAction action);
    125127
    126128    /* Helpers: Cleanup stuff: */
     
    163165    UIMediumItem* searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &functor) const;
    164166    UIMediumItem* createHardDiskItem(QTreeWidget *pTree, const UIMedium &medium) const;
    165 
    166     /* Internal API: Tab-widget access stuff: */
    167     void updateTabIcons(UIMediumItem *pItem, ItemAction action);
    168167
    169168    /* Helpers: Other stuff: */
Note: See TracChangeset for help on using the changeset viewer.

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