VirtualBox

Changeset 84546 in vbox


Ignore:
Timestamp:
May 26, 2020 4:18:54 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
138276
Message:

FE/Qt: bugref:9743: VirtualBox Manager: Chooser pane: Moving items to another group should be followed by selection of moved items if possible, or at least one of parents of the group they were moved to.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp

    r84542 r84546  
    769769    QStringList busyGroupNames;
    770770    QStringList busyMachineNames;
     771    QList<UIChooserItem*> copiedItems;
    771772    foreach (UIChooserItem *pItem, selectedItems())
    772773    {
     
    785786                                                                              pItem->node()->toGroupNode(),
    786787                                                                              pTargetGroupNode->nodes().size());
    787                 new UIChooserItemGroup(pTargetGroupItem, pNewGroupSubNode);
     788                copiedItems << new UIChooserItemGroup(pTargetGroupItem, pNewGroupSubNode);
    788789                delete pItem->node();
    789790                break;
     
    800801                                                                                    pItem->node()->toMachineNode(),
    801802                                                                                    pTargetGroupNode->nodes().size());
    802                 new UIChooserItemMachine(pTargetGroupItem, pNewMachineSubNode);
     803                copiedItems << new UIChooserItemMachine(pTargetGroupItem, pNewMachineSubNode);
    803804                delete pItem->node();
    804805                break;
     
    810811    wipeOutEmptyGroups();
    811812    updateTreeForMainRoot();
    812     setSelectedItem(pTargetGroupItem);
     813
     814    /* Check if we can select copied items: */
     815    QList<UIChooserItem*> itemsToSelect;
     816    foreach (UIChooserItem *pCopiedItem, copiedItems)
     817        if (navigationItems().contains(pCopiedItem))
     818            itemsToSelect << pCopiedItem;
     819    if (!itemsToSelect.isEmpty())
     820    {
     821        setSelectedItems(itemsToSelect);
     822        setCurrentItem(firstSelectedItem());
     823    }
     824    else
     825    {
     826        /* Otherwise check if we can select one of our parents: */
     827        UIChooserItem *pItemToSelect = pTargetGroupItem;
     828        while (   !navigationItems().contains(pItemToSelect)
     829               && pItemToSelect->parentItem() != root())
     830            pItemToSelect = pItemToSelect->parentItem();
     831        if (navigationItems().contains(pItemToSelect))
     832            setSelectedItem(pItemToSelect);
     833    }
     834
     835    /* Save groups finally: */
    813836    saveGroups();
    814837}
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