Changeset 50329 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Feb 5, 2014 2:03:26 PM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 92052
- 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 1098 1098 } 1099 1099 1100 void 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 1100 1184 #ifdef Q_WS_MAC 1101 1185 void UIMediumManager::cleanupMacWindowMenu() … … 1555 1639 } 1556 1640 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 else1618 fCheckRest = true; /* no */1619 }1620 else1621 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 else1634 mTabWidget->setTabIcon(iTab, *pIcon);1635 1636 break;1637 }1638 }1639 }1640 1641 1641 bool UIMediumManager::checkMediumFor(UIMediumItem *pItem, Action action) 1642 1642 { -
trunk/src/VBox/Frontends/VirtualBox/src/medium/UIMediumManager.h
r50327 r50329 123 123 /** Update actions according currently chosen medium-item. */ 124 124 void updateActions(); 125 /** Update tab icons according last @a action happened with @a pItem. */ 126 void updateTabIcons(UIMediumItem *pItem, ItemAction action); 125 127 126 128 /* Helpers: Cleanup stuff: */ … … 163 165 UIMediumItem* searchItem(QTreeWidgetItem *pParentItem, const CheckIfSuitableBy &functor) const; 164 166 UIMediumItem* createHardDiskItem(QTreeWidget *pTree, const UIMedium &medium) const; 165 166 /* Internal API: Tab-widget access stuff: */167 void updateTabIcons(UIMediumItem *pItem, ItemAction action);168 167 169 168 /* Helpers: Other stuff: */
Note:
See TracChangeset
for help on using the changeset viewer.