Changeset 108157 in vbox
- Timestamp:
- Feb 11, 2025 1:36:49 PM (10 days ago)
- svn:sync-xref-src-repo-rev:
- 167470
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 2 deleted
- 8 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r108145 r108157 598 598 src/manager/chooser/UIChooserItem.h \ 599 599 src/manager/chooser/UIChooserItemGroup.h \ 600 src/manager/chooser/UIChooserItemGlobal.h \601 600 src/manager/chooser/UIChooserItemMachine.h \ 602 601 src/manager/chooser/UIChooserNode.h \ … … 1123 1122 src/manager/chooser/UIChooserItem.cpp \ 1124 1123 src/manager/chooser/UIChooserItemGroup.cpp \ 1125 src/manager/chooser/UIChooserItemGlobal.cpp \1126 1124 src/manager/chooser/UIChooserItemMachine.cpp \ 1127 1125 src/manager/chooser/UIChooserNode.cpp \ -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserHandlerKeyboard.cpp
r106061 r108157 112 112 { 113 113 pPossiblePreviousItem = model()->navigationItems().at(i); 114 if (( pCurrentItem->type() == UIChooserNodeType_Global 115 && pPossiblePreviousItem->type() == UIChooserNodeType_Global) 116 || ( pCurrentItem->type() != UIChooserNodeType_Global 117 && pPossiblePreviousItem->type() != UIChooserNodeType_Global)) 118 pPreviousItem = pPossiblePreviousItem; 114 pPreviousItem = pPossiblePreviousItem; 119 115 } 120 116 } … … 217 213 { 218 214 pPossibleNextItem = model()->navigationItems().at(i); 219 if (( pCurrentItem->type() == UIChooserNodeType_Global 220 && pPossibleNextItem->type() == UIChooserNodeType_Global) 221 || ( pCurrentItem->type() != UIChooserNodeType_Global 222 && pPossibleNextItem->type() != UIChooserNodeType_Global)) 223 pNextItem = pPossibleNextItem; 215 pNextItem = pPossibleNextItem; 224 216 } 225 217 } -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserHandlerMouse.cpp
r108147 r108157 33 33 #include "UIChooserModel.h" 34 34 #include "UIChooserItemGroup.h" 35 #include "UIChooserItemGlobal.h"36 35 #include "UIChooserItemMachine.h" 37 36 … … 78 77 if (UIChooserItemGroup *pGroupItem = qgraphicsitem_cast<UIChooserItemGroup*>(pItemUnderMouse)) 79 78 pClickedItem = pGroupItem; 80 /* Or a global one? */81 else if (UIChooserItemGlobal *pGlobalItem = qgraphicsitem_cast<UIChooserItemGlobal*>(pItemUnderMouse))82 {83 const QPoint itemCursorPos = pGlobalItem->mapFromScene(scenePos).toPoint();84 if ( pGlobalItem->isToolButtonArea(itemCursorPos)85 && ( model()->firstSelectedItem() == pGlobalItem86 || pGlobalItem->isHovered()))87 {88 model()->handleToolButtonClick(pGlobalItem);89 if (model()->firstSelectedItem() != pGlobalItem)90 pClickedItem = pGlobalItem;91 }92 else93 pClickedItem = pGlobalItem;94 }95 79 /* Or a machine one? */ 96 80 else if (UIChooserItemMachine *pMachineItem = qgraphicsitem_cast<UIChooserItemMachine*>(pItemUnderMouse)) … … 130 114 QList<UIChooserItem*> filteredItems; 131 115 foreach (UIChooserItem *pIteratedItem, items) 132 { 133 /* So, the logic is to add intermediate item if 134 * - first and intermediate selected items are global or 135 * - first and intermediate selected items are NOT global. */ 136 if ( ( pFirstItem->type() == UIChooserNodeType_Global 137 && pIteratedItem->type() == UIChooserNodeType_Global) 138 || ( pFirstItem->type() != UIChooserNodeType_Global 139 && pIteratedItem->type() != UIChooserNodeType_Global)) 140 filteredItems << pIteratedItem; 141 } 116 filteredItems << pIteratedItem; 142 117 /* Make that list selected: */ 143 118 model()->setSelectedItems(filteredItems); … … 154 129 else 155 130 { 156 /* So, the logic is to add newly clicked item if157 * - previously and newly selected items are global or158 * - previously and newly selected items are NOT global. */159 131 UIChooserItem *pFirstItem = model()->firstSelectedItem(); 160 132 AssertPtrReturn(pFirstItem, false); // is failure possible? 161 if ( ( pFirstItem->type() == UIChooserNodeType_Global 162 && pClickedItem->type() == UIChooserNodeType_Global) 163 || ( pFirstItem->type() != UIChooserNodeType_Global 164 && pClickedItem->type() != UIChooserNodeType_Global)) 165 model()->addToSelectedItems(pClickedItem); 133 model()->addToSelectedItems(pClickedItem); 166 134 } 167 135 /* Make clicked item current one: */ … … 185 153 if (UIChooserItemGroup *pGroupItem = qgraphicsitem_cast<UIChooserItemGroup*>(pItemUnderMouse)) 186 154 pClickedItem = pGroupItem; 187 /* Or a global one? */188 else if (UIChooserItemGlobal *pGlobalItem = qgraphicsitem_cast<UIChooserItemGlobal*>(pItemUnderMouse))189 pClickedItem = pGlobalItem;190 155 /* Or a machine one? */ 191 156 else if (UIChooserItemMachine *pMachineItem = qgraphicsitem_cast<UIChooserItemMachine*>(pItemUnderMouse)) -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.cpp
r108147 r108157 42 42 #include "UIChooserItem.h" 43 43 #include "UIChooserItemGroup.h" 44 #include "UIChooserItemGlobal.h"45 44 #include "UIChooserItemMachine.h" 46 45 #include "UIChooserView.h" … … 351 350 } 352 351 353 UIChooserItemGlobal *UIChooserItem::toGlobalItem()354 {355 UIChooserItemGlobal *pItem = qgraphicsitem_cast<UIChooserItemGlobal*>(this);356 AssertMsg(pItem, ("Trying to cast invalid item type to UIChooserItemGlobal!"));357 return pItem;358 }359 360 352 UIChooserItemMachine *UIChooserItem::toMachineItem() 361 353 { -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItem.h
r108147 r108157 51 51 class UIActionPool; 52 52 class UIChooserItemGroup; 53 class UIChooserItemGlobal;54 53 class UIChooserItemMachine; 55 54 class UIChooserModel; … … 116 115 /** Casts item to group one. */ 117 116 UIChooserItemGroup *toGroupItem(); 118 /** Casts item to global one. */119 UIChooserItemGlobal *toGlobalItem();120 117 /** Casts item to machine one. */ 121 118 UIChooserItemMachine *toMachineItem(); -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.cpp
r108147 r108157 40 40 41 41 /* GUI includes: */ 42 #include "UIChooserItemGlobal.h"43 42 #include "UIChooserItemGroup.h" 44 43 #include "UIChooserItemMachine.h" … … 374 373 switch (type) 375 374 { 376 case UIChooserNodeType_Any: return items(UIChooserNodeType_Global) + items(UIChooserNodeType_Group) + items(UIChooserNodeType_Machine); 377 case UIChooserNodeType_Global: return m_globalItems; 375 case UIChooserNodeType_Any: return items(UIChooserNodeType_Group) + items(UIChooserNodeType_Machine); 378 376 case UIChooserNodeType_Group: return m_groupItems; 379 377 case UIChooserNodeType_Machine: return m_machineItems; … … 388 386 switch (pItem->type()) 389 387 { 390 case UIChooserNodeType_Global:391 {392 AssertMsg(!m_globalItems.contains(pItem), ("Global-item already added!"));393 if (iPosition < 0 || iPosition >= m_globalItems.size())394 {395 m_pLayoutGlobal->addItem(pItem);396 m_globalItems.append(pItem);397 }398 else399 {400 m_pLayoutGlobal->insertItem(iPosition, pItem);401 m_globalItems.insert(iPosition, pItem);402 }403 break;404 }405 388 case UIChooserNodeType_Group: 406 389 { … … 452 435 switch (pItem->type()) 453 436 { 454 case UIChooserNodeType_Global:455 {456 AssertMsg(m_globalItems.contains(pItem), ("Global-item was not found!"));457 m_globalItems.removeAt(m_globalItems.indexOf(pItem));458 m_pLayoutGlobal->removeItem(pItem);459 break;460 }461 437 case UIChooserNodeType_Group: 462 438 { … … 529 505 /* Search among all the children, but machines first: */ 530 506 foreach (UIChooserItem *pItem, items(UIChooserNodeType_Machine)) 531 if (UIChooserItem *pFoundItem = pItem->searchForItem(strSearchTag, iSearchFlags))532 return pFoundItem;533 foreach (UIChooserItem *pItem, items(UIChooserNodeType_Global))534 507 if (UIChooserItem *pFoundItem = pItem->searchForItem(strSearchTag, iSearchFlags)) 535 508 return pFoundItem; … … 1160 1133 /* Delete all the items: */ 1161 1134 while (!m_groupItems.isEmpty()) { delete m_groupItems.last(); } 1162 while (!m_globalItems.isEmpty()) { delete m_globalItems.last(); }1163 1135 while (!m_machineItems.isEmpty()) { delete m_machineItems.last(); } 1164 1136 … … 1245 1217 foreach (UIChooserNode *pNode, pCopyFrom->nodes(UIChooserNodeType_Group)) 1246 1218 new UIChooserItemGroup(this, pNode->toGroupNode()); 1247 foreach (UIChooserNode *pNode, pCopyFrom->nodes(UIChooserNodeType_Global))1248 new UIChooserItemGlobal(this, pNode->toGlobalNode());1249 1219 foreach (UIChooserNode *pNode, pCopyFrom->nodes(UIChooserNodeType_Machine)) 1250 1220 new UIChooserItemMachine(this, pNode->toMachineNode()); … … 1546 1516 void UIChooserItemGroup::updateLayoutSpacings() 1547 1517 { 1548 m_pLayout->setItemSpacing(0, m_globalItems.isEmpty() ? 0 : 1); 1549 m_pLayout->setItemSpacing(1, m_groupItems.isEmpty() ? 0 : 1); 1550 m_pLayout->setItemSpacing(2, m_machineItems.isEmpty() ? 0 : 1); 1518 m_pLayout->setItemSpacing(0, m_groupItems.isEmpty() ? 0 : 1); 1519 m_pLayout->setItemSpacing(1, m_machineItems.isEmpty() ? 0 : 1); 1551 1520 } 1552 1521 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserItemGroup.h
r108147 r108157 378 378 QGraphicsLinearLayout *m_pLayoutMachine; 379 379 380 /** Holds the global children list. */381 QList<UIChooserItem*> m_globalItems;382 380 /** Holds the group children list. */ 383 381 QList<UIChooserItem*> m_groupItems; -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
r108155 r108157 41 41 #include "UIChooserHandlerKeyboard.h" 42 42 #include "UIChooserItemGroup.h" 43 #include "UIChooserItemGlobal.h"44 43 #include "UIChooserItemMachine.h" 45 44 #include "UIChooserModel.h" … … 376 375 pItem = navigationItems().at(idxAfter); 377 376 if ( !selectedItems().contains(pItem) 378 && ( pItem->type() == UIChooserNodeType_Machine 379 || pItem->type() == UIChooserNodeType_Global)) 377 && pItem->type() == UIChooserNodeType_Machine) 380 378 return pItem; 381 379 ++idxAfter; … … 385 383 pItem = navigationItems().at(idxBefore); 386 384 if ( !selectedItems().contains(pItem) 387 && ( pItem->type() == UIChooserNodeType_Machine 388 || pItem->type() == UIChooserNodeType_Global)) 385 && pItem->type() == UIChooserNodeType_Machine) 389 386 return pItem; 390 387 --idxBefore; … … 415 412 if (selectedItemsSet.intersects(matchedItems)) 416 413 setSelectedItem(findClosestUnselectedItem()); 417 418 /* If global item is currently chosen, selection should be invalidated: */419 if (firstSelectedItem() && firstSelectedItem()->type() == UIChooserNodeType_Global)420 emit sigSelectionInvalidated();421 414 } 422 415 … … 1416 1409 void UIChooserModel::prepareContextMenu() 1417 1410 { 1418 /* Context menu for global(s): */1419 m_localMenus[UIChooserNodeType_Global] = new QMenu;1420 if (QMenu *pMenuGlobal = m_localMenus.value(UIChooserNodeType_Global))1421 {1422 #ifdef VBOX_WS_MAC1423 pMenuGlobal->addAction(actionPool()->action(UIActionIndex_M_Application_S_About));1424 pMenuGlobal->addSeparator();1425 pMenuGlobal->addAction(actionPool()->action(UIActionIndex_M_Application_S_Preferences));1426 pMenuGlobal->addSeparator();1427 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ImportAppliance));1428 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ExportAppliance));1429 # ifdef VBOX_GUI_WITH_EXTRADATA_MANAGER_UI1430 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ShowExtraDataManager));1431 pMenuGlobal->addSeparator();1432 # endif1433 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_M_Tools));1434 1435 #else /* !VBOX_WS_MAC */1436 1437 pMenuGlobal->addAction(actionPool()->action(UIActionIndex_M_Application_S_Preferences));1438 pMenuGlobal->addSeparator();1439 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ImportAppliance));1440 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ExportAppliance));1441 pMenuGlobal->addSeparator();1442 # ifdef VBOX_GUI_WITH_EXTRADATA_MANAGER_UI1443 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_S_ShowExtraDataManager));1444 pMenuGlobal->addSeparator();1445 # endif1446 pMenuGlobal->addAction(actionPool()->action(UIActionIndexMN_M_File_M_Tools));1447 pMenuGlobal->addSeparator();1448 # ifdef VBOX_GUI_WITH_NETWORK_MANAGER1449 if (gEDataManager->applicationUpdateEnabled())1450 pMenuGlobal->addAction(actionPool()->action(UIActionIndex_M_Application_S_CheckForUpdates));1451 # endif1452 #endif /* !VBOX_WS_MAC */1453 }1454 1455 1411 /* Context menu for local group(s): */ 1456 1412 m_localMenus[UIChooserNodeType_Group] = new QMenu; … … 1630 1586 switch (pItem->type()) 1631 1587 { 1632 case UIChooserNodeType_Global:1633 {1634 /* Global context menu for all global item cases: */1635 m_localMenus.value(UIChooserNodeType_Global)->exec(pEvent->screenPos());1636 break;1637 }1638 1588 case UIChooserNodeType_Group: 1639 1589 { … … 1684 1634 switch (pItem->type()) 1685 1635 { 1686 case UIChooserNodeType_Global:1687 {1688 /* Global context menu for all global item cases: */1689 m_localMenus.value(UIChooserNodeType_Global)->exec(pEvent->screenPos());1690 break;1691 }1692 1636 case UIChooserNodeType_Group: 1693 1637 { … … 1746 1690 QList<UIChooserItem*> navigationItems; 1747 1691 1748 /* Iterate over all the global-items: */1749 foreach (UIChooserItem *pGlobalItem, pItem->items(UIChooserNodeType_Global))1750 navigationItems << pGlobalItem;1751 1692 /* Iterate over all the group-items: */ 1752 1693 foreach (UIChooserItem *pGroupItem, pItem->items(UIChooserNodeType_Group))
Note:
See TracChangeset
for help on using the changeset viewer.