VirtualBox

Changeset 43554 in vbox


Ignore:
Timestamp:
Oct 5, 2012 11:07:09 AM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
81166
Message:

FE/Qt: VM group feature UI: Mouse-handler cleanup (part 2).

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserHandlerMouse.cpp

    r43552 r43554  
    7474                if (pClickedItem && !pClickedItem->isRoot())
    7575                {
    76                     /* Old selection list: */
    77                     QList<UIGChooserItem*> oldSelectionList = model()->currentItems();
    78                     /* Move focus to clicked item: */
    79                     model()->setFocusItem(pClickedItem);
    8076                    /* Was 'shift' modifier pressed? */
    8177                    if (pEvent->modifiers() == Qt::ShiftModifier)
     
    8581                        int iFirstPosition = model()->navigationList().indexOf(pFirstItem);
    8682                        int iClickedPosition = model()->navigationList().indexOf(pClickedItem);
    87                         /* Clear selection: */
    88                         model()->clearSelectionList();
    89                         /* Select all the items from 'first' to 'clicked': */
     83                        /* Populate list of items from 'first' to 'clicked': */
     84                        QList<UIGChooserItem*> items;
    9085                        if (iFirstPosition <= iClickedPosition)
    9186                            for (int i = iFirstPosition; i <= iClickedPosition; ++i)
    92                                 model()->addToCurrentItems(model()->navigationList().at(i));
     87                                items << model()->navigationList().at(i);
    9388                        else
    9489                            for (int i = iFirstPosition; i >= iClickedPosition; --i)
    95                                 model()->addToCurrentItems(model()->navigationList().at(i));
     90                                items << model()->navigationList().at(i);
     91                        /* Set that list as current: */
     92                        model()->setCurrentItems(items);
     93                        /* Move focus to clicked item: */
     94                        model()->setFocusItem(pClickedItem);
    9695                    }
    9796                    /* Was 'control' modifier pressed? */
    9897                    else if (pEvent->modifiers() == Qt::ControlModifier)
    9998                    {
    100                         /* Select clicked item, inverting if necessary: */
     99                        /* Invert selection state for clicked item: */
    101100                        if (model()->currentItems().contains(pClickedItem))
    102101                            model()->removeFromCurrentItems(pClickedItem);
    103102                        else
    104103                            model()->addToCurrentItems(pClickedItem);
     104                        /* Move focus to clicked item: */
     105                        model()->setFocusItem(pClickedItem);
    105106                    }
    106107                    /* Was no modifiers pressed? */
    107108                    else if (pEvent->modifiers() == Qt::NoModifier)
    108109                    {
    109                         /* Move selection to clicked item: */
    110                         model()->clearSelectionList();
    111                         model()->addToCurrentItems(pClickedItem);
    112                     }
    113                     /* Selection list changed?: */
    114                     if (oldSelectionList != model()->currentItems())
    115                         model()->notifyCurrentItemChanged();
     110                        /* Make clicked item the current one: */
     111                        model()->setCurrentItem(pClickedItem);
     112                    }
    116113                }
    117114                break;
     
    129126                    pClickedItem = pMachineItem;
    130127                /* If we had clicked one of required item types: */
    131                 if (pClickedItem)
    132                 {
    133                     /* For non-root items: */
    134                     if (!pClickedItem->isRoot())
    135                     {
    136                         /* Move focus to clicked item (with selection if not selected yet): */
     128                if (pClickedItem && !pClickedItem->isRoot())
     129                {
     130                    /* Select clicked item if not selected yet: */
     131                    if (!model()->currentItems().contains(pClickedItem))
    137132                        model()->setCurrentItem(pClickedItem);
    138                     }
    139133                }
    140134                break;
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