VirtualBox

Changeset 83896 in vbox for trunk


Ignore:
Timestamp:
Apr 21, 2020 3:16:32 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
137428
Message:

FE/Qt: bugref:9653: VirtualBox Manager: Chooser pane: A bit of cleanup/rework for selection stuff.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser
Files:
3 edited

Legend:

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

    r83672 r83896  
    136136                        /* Make clicked item current one: */
    137137                        model()->setCurrentItem(pClickedItem);
    138                         model()->makeSureSomeItemIsSelected();
    139138                    }
    140139                    /* Was no modifiers pressed? */
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.cpp

    r83892 r83896  
    184184    }
    185185
     186    /* Make sure selection list is never empty if current-item present: */
     187    if (m_selectedItems.isEmpty() && currentItem() && navigationItems().contains(currentItem()))
     188        m_selectedItems << currentItem();
     189
    186190    /* Is there something really changed? */
    187191    if (oldCurrentItems == m_selectedItems)
     
    240244    else if (strItemType == "m")
    241245    {
    242         /* Check if machine-item with passed descriptor (name or id) registered: */
    243         CMachine comMachine = uiCommon().virtualBox().FindMachine(strItemDescriptor);
    244         if (!comMachine.isNull())
    245         {
    246             /* Search for machine-item with required name: */
    247             pItem = root()->searchForItem(comMachine.GetName(),
    248                                           UIChooserItemSearchFlag_Machine |
    249                                           UIChooserItemSearchFlag_ExactName);
    250         }
     246        /* Search for machine-item with required ID: */
     247        pItem = root()->searchForItem(strItemDescriptor,
     248                                      UIChooserItemSearchFlag_Machine |
     249                                      UIChooserItemSearchFlag_ExactId);
    251250    }
    252251
     
    267266void UIChooserModel::addToSelectedItems(UIChooserItem *pItem)
    268267{
     268    /* Prepare updated list: */
     269    QList<UIChooserItem*> list(selectedItems());
     270    list << pItem;
    269271    /* Call for wrapper above: */
    270     setSelectedItems(QList<UIChooserItem*>(m_selectedItems) << pItem);
     272    setSelectedItems(list);
    271273}
    272274
    273275void UIChooserModel::removeFromSelectedItems(UIChooserItem *pItem)
    274276{
    275     /* Prepare filtered list: */
    276     QList<UIChooserItem*> list(m_selectedItems);
     277    /* Prepare updated list: */
     278    QList<UIChooserItem*> list(selectedItems());
    277279    list.removeAll(pItem);
    278280    /* Call for wrapper above: */
     
    283285{
    284286    /* Return first of selected-items, if any: */
    285     return selectedItems().isEmpty() ? 0 : selectedItems().first();
     287    return selectedItems().value(0);
    286288}
    287289
     
    408410}
    409411
    410 void UIChooserModel::makeSureSomeItemIsSelected()
    411 {
    412     /* Make sure selection list is never empty if at
    413      * least one item (for example 'current') present: */
    414     if (!firstSelectedItem() && currentItem())
    415         setSelectedItem(currentItem());
    416 }
    417 
    418412void UIChooserModel::setCurrentItem(UIChooserItem *pItem)
    419413{
     
    442436        if (view()->window()->isVisible() && pItem)
    443437            root()->toGroupItem()->makeSureItemIsVisible(pItem);
     438
     439    /* Make sure selection list is never empty if current-item present: */
     440    if (!firstSelectedItem() && m_pCurrentItem)
     441        setSelectedItem(m_pCurrentItem);
    444442}
    445443
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserModel.h

    r83709 r83896  
    167167        /** Finds closest non-selected-item. */
    168168        UIChooserItem *findClosestUnselectedItem() const;
    169 
    170         /** Makes sure some item is selected. */
    171         void makeSureSomeItemIsSelected();
    172169
    173170        /** Defines current @a pItem. */
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