Changeset 88560 in vbox for trunk/src/VBox/Frontends/VirtualBox
- Timestamp:
- Apr 16, 2021 10:56:37 AM (4 years ago)
- svn:sync-xref-src-repo-rev:
- 143855
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp
r88102 r88560 62 62 , m_pMouseHandler(0) 63 63 , m_pKeyboardHandler(0) 64 , m_fSelectionSaveAllowed(false) 64 65 , m_iCurrentSearchResultIndex(-1) 65 66 , m_iScrollingTokenSize(30) … … 82 83 /* Build tree for main root: */ 83 84 buildTreeForMainRoot(); 84 /* Load last selected-item: */85 load LastSelectedItem();85 /* Load settings: */ 86 loadSettings(); 86 87 } 87 88 88 89 void UIChooserModel::deinit() 89 90 { 90 /* Save last selected-item: */91 saveLastSelectedItem();91 /* Clean tree for main root: */ 92 clearTreeForMainRoot(); 92 93 93 94 /* Call to base-class: */ … … 188 189 pItem->setSelected(true); 189 190 pItem->update(); 191 } 192 193 /* Should the selection changes be saved? */ 194 if (m_fSelectionSaveAllowed) 195 { 196 /* Acquire first selected item: */ 197 UIChooserItem *pFirstSelectedItem = m_selectedItems.value(0); 198 /* If this item is of machine type: */ 199 if ( pFirstSelectedItem 200 && pFirstSelectedItem->type() == UIChooserNodeType_Machine) 201 { 202 /* Cast to machine item: */ 203 UIChooserItemMachine *pMachineItem = pFirstSelectedItem->toMachineItem(); 204 /* If this machine item is of cloud type => 205 * Choose the parent (profile) group item as the last one selected: */ 206 if ( pMachineItem 207 && ( pMachineItem->cacheType() == UIVirtualMachineItemType_CloudFake 208 || pMachineItem->cacheType() == UIVirtualMachineItemType_CloudReal)) 209 pFirstSelectedItem = pMachineItem->parentItem(); 210 } 211 /* Save last selected-item: */ 212 gEDataManager->setSelectorWindowLastItemChosen(pFirstSelectedItem ? pFirstSelectedItem->definition() : QString()); 190 213 } 191 214 … … 1546 1569 } 1547 1570 1548 void UIChooserModel::load LastSelectedItem()1571 void UIChooserModel::loadSettings() 1549 1572 { 1550 1573 /* Load last selected-item (choose first if unable to load): */ 1551 1574 setSelectedItem(gEDataManager->selectorWindowLastItemChosen()); 1552 1575 makeSureAtLeastOneItemSelected(); 1553 }1554 1555 void UIChooserModel::saveLastSelectedItem()1556 {1557 /* Acquire first selected item: */1558 UIChooserItem *pFirstSelectedItem = firstSelectedItem();1559 /* If this item is of machine type: */1560 if ( pFirstSelectedItem1561 && pFirstSelectedItem->type() == UIChooserNodeType_Machine)1562 {1563 /* Cast to machine item: */1564 UIChooserItemMachine *pMachineItem = pFirstSelectedItem->toMachineItem();1565 AssertPtrReturnVoid(pMachineItem);1566 /* If this machine item is of cloud type: */1567 if ( pMachineItem->cacheType() == UIVirtualMachineItemType_CloudFake1568 || pMachineItem->cacheType() == UIVirtualMachineItemType_CloudReal)1569 {1570 /* Choose the parent (profile) group item as the last one selected: */1571 pFirstSelectedItem = pMachineItem->parentItem();1572 }1573 }1574 /* Save last selected-item: */1575 gEDataManager->setSelectorWindowLastItemChosen(pFirstSelectedItem ? pFirstSelectedItem->definition() : QString());1576 1576 } 1577 1577 … … 1761 1761 } 1762 1762 1763 void UIChooserModel::clearTreeForMainRoot() 1764 { 1765 /* Forbid to save selection changes: */ 1766 m_fSelectionSaveAllowed = false; 1767 1768 /* Cleanup tree if exists: */ 1769 delete m_pRoot; 1770 m_pRoot = 0; 1771 } 1772 1763 1773 void UIChooserModel::buildTreeForMainRoot(bool fPreserveSelection /* = false */) 1764 1774 { … … 1778 1788 selectedItemDefinitions << pSelectedItem->definition(); 1779 1789 1780 /* Cleanup previous tree if exists: */ 1781 delete m_pRoot; 1782 m_pRoot = 0; 1790 /* Clean tree for main root: */ 1791 clearTreeForMainRoot(); 1783 1792 1784 1793 /* Build whole tree for invisible root item: */ … … 1813 1822 if (view() && view()->isSearchWidgetVisible()) 1814 1823 view()->redoSearch(); 1824 1825 /* Allow to save selection changes: */ 1826 m_fSelectionSaveAllowed = true; 1815 1827 } 1816 1828 -
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h
r87102 r88560 360 360 /** Prepares connections. */ 361 361 void prepareConnections(); 362 /** Loads last selected-items. */ 363 void loadLastSelectedItem(); 364 365 /** Saves last selected-items. */ 366 void saveLastSelectedItem(); 362 /** Loads settings. */ 363 void loadSettings(); 364 367 365 /** Cleanups connections. */ 368 366 void cleanupConnections(); … … 399 397 /** @name Children stuff. 400 398 * @{ */ 399 /** Clears tree for main root. */ 400 void clearTreeForMainRoot(); 401 401 /** [Re]builds tree for main root, preserves selection if requested. */ 402 402 void buildTreeForMainRoot(bool fPreserveSelection = false); … … 440 440 /** Holds the current-item reference. */ 441 441 QPointer<UIChooserItem> m_pCurrentItem; 442 443 /** Holds whether selection save allowed. */ 444 bool m_fSelectionSaveAllowed; 442 445 /** @} */ 443 446
Note:
See TracChangeset
for help on using the changeset viewer.