Changeset 43554 in vbox
- Timestamp:
- Oct 5, 2012 11:07:09 AM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 81166
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/selector/graphics/chooser/UIGChooserHandlerMouse.cpp
r43552 r43554 74 74 if (pClickedItem && !pClickedItem->isRoot()) 75 75 { 76 /* Old selection list: */77 QList<UIGChooserItem*> oldSelectionList = model()->currentItems();78 /* Move focus to clicked item: */79 model()->setFocusItem(pClickedItem);80 76 /* Was 'shift' modifier pressed? */ 81 77 if (pEvent->modifiers() == Qt::ShiftModifier) … … 85 81 int iFirstPosition = model()->navigationList().indexOf(pFirstItem); 86 82 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; 90 85 if (iFirstPosition <= iClickedPosition) 91 86 for (int i = iFirstPosition; i <= iClickedPosition; ++i) 92 model()->addToCurrentItems(model()->navigationList().at(i));87 items << model()->navigationList().at(i); 93 88 else 94 89 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); 96 95 } 97 96 /* Was 'control' modifier pressed? */ 98 97 else if (pEvent->modifiers() == Qt::ControlModifier) 99 98 { 100 /* Select clicked item, inverting if necessary: */99 /* Invert selection state for clicked item: */ 101 100 if (model()->currentItems().contains(pClickedItem)) 102 101 model()->removeFromCurrentItems(pClickedItem); 103 102 else 104 103 model()->addToCurrentItems(pClickedItem); 104 /* Move focus to clicked item: */ 105 model()->setFocusItem(pClickedItem); 105 106 } 106 107 /* Was no modifiers pressed? */ 107 108 else if (pEvent->modifiers() == Qt::NoModifier) 108 109 { 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 } 116 113 } 117 114 break; … … 129 126 pClickedItem = pMachineItem; 130 127 /* 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)) 137 132 model()->setCurrentItem(pClickedItem); 138 }139 133 } 140 134 break;
Note:
See TracChangeset
for help on using the changeset viewer.