Changeset 97007 in vbox
- Timestamp:
- Oct 5, 2022 3:40:19 PM (2 years ago)
- svn:sync-xref-src-repo-rev:
- 153939
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/manager/chooser/UIChooserHandlerKeyboard.cpp
r96407 r97007 98 98 { 99 99 /* Determine current-item position: */ 100 int iPosition = model()->navigationItems().indexOf(model()->currentItem()); 100 UIChooserItem *pCurrentItem = model()->currentItem(); 101 int iPosition = model()->navigationItems().indexOf(pCurrentItem); 101 102 /* Determine 'previous' item: */ 102 103 UIChooserItem *pPreviousItem = 0; 103 104 if (iPosition > 0) 104 105 { 105 if (pEvent->key() == Qt::Key_Up) 106 pPreviousItem = model()->navigationItems().at(iPosition - 1); 107 else if (pEvent->key() == Qt::Key_Home) 108 pPreviousItem = model()->navigationItems().first(); 106 if ( pEvent->key() == Qt::Key_Up 107 || pEvent->key() == Qt::Key_Home) 108 { 109 UIChooserItem *pPossiblePreviousItem = 0; 110 const int iLimit = pEvent->key() == Qt::Key_Up ? iPosition - 1 : 0; 111 for (int i = iPosition - 1; i >= iLimit; --i) 112 { 113 pPossiblePreviousItem = model()->navigationItems().at(i); 114 if (( pCurrentItem->type() == UIChooserNodeType_Global 115 && pPossiblePreviousItem->type() == UIChooserNodeType_Global) 116 || ( pCurrentItem->type() != UIChooserNodeType_Global 117 && pPossiblePreviousItem->type() != UIChooserNodeType_Global)) 118 pPreviousItem = pPossiblePreviousItem; 119 } 120 } 109 121 } 110 122 if (pPreviousItem) … … 191 203 { 192 204 /* Determine current-item position: */ 193 int iPosition = model()->navigationItems().indexOf(model()->currentItem()); 205 UIChooserItem *pCurrentItem = model()->currentItem(); 206 int iPosition = model()->navigationItems().indexOf(pCurrentItem); 194 207 /* Determine 'next' item: */ 195 208 UIChooserItem *pNextItem = 0; 196 209 if (iPosition < model()->navigationItems().size() - 1) 197 210 { 198 if (pEvent->key() == Qt::Key_Down) 199 pNextItem = model()->navigationItems().at(iPosition + 1); 200 else if (pEvent->key() == Qt::Key_End) 201 pNextItem = model()->navigationItems().last(); 211 if ( pEvent->key() == Qt::Key_Down 212 || pEvent->key() == Qt::Key_End) 213 { 214 UIChooserItem *pPossibleNextItem = 0; 215 const int iLimit = pEvent->key() == Qt::Key_Down ? iPosition + 1 : 0; 216 for (int i = iPosition + 1; i <= iLimit; ++i) 217 { 218 pPossibleNextItem = model()->navigationItems().at(i); 219 if (( pCurrentItem->type() == UIChooserNodeType_Global 220 && pPossibleNextItem->type() == UIChooserNodeType_Global) 221 || ( pCurrentItem->type() != UIChooserNodeType_Global 222 && pPossibleNextItem->type() != UIChooserNodeType_Global)) 223 pNextItem = pPossibleNextItem; 224 } 225 } 202 226 } 203 227 if (pNextItem) … … 361 385 { 362 386 case UIItemShiftSize_Item: iNewCurrentNodePosition = iCurrentNodePosition + 2; break; 363 case UIItemShiftSize_Full: iNewCurrentNodePosition = pParentNode->nodes(pCurrentNode->type()).size(); 387 case UIItemShiftSize_Full: iNewCurrentNodePosition = pParentNode->nodes(pCurrentNode->type()).size(); break; 364 388 default: break; 365 389 }
Note:
See TracChangeset
for help on using the changeset viewer.