VirtualBox

Ignore:
Timestamp:
Aug 28, 2012 5:49:54 PM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: 6234: Support for VM groups: Handle Home/End keys.

File:
1 edited

Legend:

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

    r42832 r43054  
    5656        /* Key UP? */
    5757        case Qt::Key_Up:
     58        /* Key HOME? */
     59        case Qt::Key_Home:
    5860        {
    5961            /* Not during sliding: */
     
    7779                if (iFocusPosition > 0)
    7880                {
    79                     items.move(iFocusPosition, iFocusPosition - 1);
     81                    if (pEvent->key() == Qt::Key_Up)
     82                        items.move(iFocusPosition, iFocusPosition - 1);
     83                    else if (pEvent->key() == Qt::Key_Home)
     84                        items.move(iFocusPosition, 0);
    8085                    pParentItem->setItems(items, type);
    8186                    model()->updateNavigation();
     
    96101                int iPosition = model()->navigationList().indexOf(model()->focusItem());
    97102                /* Determine 'previous' item: */
    98                 UIGChooserItem *pPreviousItem = iPosition > 0 ?
    99                                                 model()->navigationList().at(iPosition - 1) : 0;
     103                UIGChooserItem *pPreviousItem = 0;
     104                if (iPosition > 0)
     105                {
     106                    if (pEvent->key() == Qt::Key_Up)
     107                        pPreviousItem = model()->navigationList().at(iPosition - 1);
     108                    else if (pEvent->key() == Qt::Key_Home)
     109                        pPreviousItem = model()->navigationList().first();
     110                }
    100111                if (pPreviousItem)
    101112                {
     
    133144                int iPosition = model()->navigationList().indexOf(model()->focusItem());
    134145                /* Determine 'previous' item: */
    135                 UIGChooserItem *pPreviousItem = iPosition > 0 ?
    136                                                  model()->navigationList().at(iPosition - 1) : 0;
     146                UIGChooserItem *pPreviousItem = 0;
     147                if (iPosition > 0)
     148                {
     149                    if (pEvent->key() == Qt::Key_Up)
     150                        pPreviousItem = model()->navigationList().at(iPosition - 1);
     151                    else if (pEvent->key() == Qt::Key_Home)
     152                        pPreviousItem = model()->navigationList().first();
     153                }
    137154                if (pPreviousItem)
    138155                {
     
    155172        /* Key DOWN? */
    156173        case Qt::Key_Down:
     174        /* Key END? */
     175        case Qt::Key_End:
    157176        {
    158177            /* Not during sliding: */
     
    176195                if (iFocusPosition < items.size() - 1)
    177196                {
    178                     items.move(iFocusPosition, iFocusPosition + 1);
     197                    if (pEvent->key() == Qt::Key_Down)
     198                        items.move(iFocusPosition, iFocusPosition + 1);
     199                    else if (pEvent->key() == Qt::Key_End)
     200                        items.move(iFocusPosition, items.size() - 1);
    179201                    pParentItem->setItems(items, type);
    180202                    model()->updateNavigation();
     
    195217                int iPosition = model()->navigationList().indexOf(model()->focusItem());
    196218                /* Determine 'next' item: */
    197                 UIGChooserItem *pNextItem = iPosition < model()->navigationList().size() - 1 ?
    198                                             model()->navigationList().at(iPosition + 1) : 0;
     219                UIGChooserItem *pNextItem = 0;
     220                if (iPosition < model()->navigationList().size() - 1)
     221                {
     222                    if (pEvent->key() == Qt::Key_Down)
     223                        pNextItem = model()->navigationList().at(iPosition + 1);
     224                    else if (pEvent->key() == Qt::Key_End)
     225                        pNextItem = model()->navigationList().last();
     226                }
    199227                if (pNextItem)
    200228                {
     
    232260                int iPosition = model()->navigationList().indexOf(model()->focusItem());
    233261                /* Determine 'next' item: */
    234                 UIGChooserItem *pNextItem = iPosition < model()->navigationList().size() - 1 ?
    235                                             model()->navigationList().at(iPosition + 1) : 0;
     262                UIGChooserItem *pNextItem = 0;
     263                if (iPosition < model()->navigationList().size() - 1)
     264                {
     265                    if (pEvent->key() == Qt::Key_Down)
     266                        pNextItem = model()->navigationList().at(iPosition + 1);
     267                    else if (pEvent->key() == Qt::Key_End)
     268                        pNextItem = model()->navigationList().last();
     269                }
    236270                if (pNextItem)
    237271                {
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette