VirtualBox

Changeset 108121 in vbox


Ignore:
Timestamp:
Feb 9, 2025 5:15:11 PM (12 days ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167420
Message:

FE/Qt: bugref:10814: VBox Manager / Tools pane: Handle all mouse buttons same way.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r108120 r108121  
    419419            if (QGraphicsItem *pItemUnderMouse = itemAt(scenePos))
    420420            {
    421                 /* Which button it was? */
    422                 switch (pMouseEvent->button())
     421                /* Which item we just clicked? */
     422                UIToolsItem *pClickedItem = qgraphicsitem_cast<UIToolsItem*>(pItemUnderMouse);
     423                if (pClickedItem)
    423424                {
    424                     /* Both buttons: */
    425                     case Qt::LeftButton:
    426                     case Qt::RightButton:
     425                    /* Do we have extra-button? */
     426                    if (pClickedItem->hasExtraButton())
    427427                    {
    428                         /* Which item we just clicked? */
    429                         UIToolsItem *pClickedItem = qgraphicsitem_cast<UIToolsItem*>(pItemUnderMouse);
    430                         if (pClickedItem)
     428                        /* Check if clicked place is within extra-button geometry: */
     429                        const QPointF itemPos = pClickedItem->mapFromParent(scenePos);
     430                        if (pClickedItem->extraButtonRect().contains(itemPos.toPoint()))
    431431                        {
    432                             /* Do we have extra-button? */
    433                             if (pClickedItem->hasExtraButton())
     432                            /* Handle known button types: */
     433                            switch (pClickedItem->itemType())
    434434                            {
    435                                 /* Check if clicked place is within extra-button geometry: */
    436                                 const QPointF itemPos = pClickedItem->mapFromParent(scenePos);
    437                                 if (pClickedItem->extraButtonRect().contains(itemPos.toPoint()))
     435                                case UIToolType_Home:
    438436                                {
    439                                     /* Handle known button types: */
    440                                     switch (pClickedItem->itemType())
    441                                     {
    442                                         case UIToolType_Home:
    443                                         {
    444                                             /* Toggle the button: */
    445                                             m_fShowItemNames = !m_fShowItemNames;
    446                                             /* Update geometry for all the items: */
    447                                             foreach (UIToolsItem *pItem, m_items)
    448                                                 pItem->updateGeometry();
    449                                             /* Recalculate layout: */
    450                                             updateLayout();
    451                                             break;
    452                                         }
    453                                         default:
    454                                             break;
    455                                     }
     437                                    /* Toggle the button: */
     438                                    m_fShowItemNames = !m_fShowItemNames;
     439                                    /* Update geometry for all the items: */
     440                                    foreach (UIToolsItem *pItem, m_items)
     441                                        pItem->updateGeometry();
     442                                    /* Recalculate layout: */
     443                                    updateLayout();
     444                                    break;
    456445                                }
    457                             }
    458 
    459                             /* Make clicked item the current one: */
    460                             if (pClickedItem->isEnabled())
    461                             {
    462                                 setCurrentItem(pClickedItem);
    463                                 /* Close the widget in popup mode only: */
    464                                 if (tools()->isPopup())
    465                                     close();
    466                                 return true;
     446                                default:
     447                                    break;
    467448                            }
    468449                        }
    469                         break;
    470450                    }
    471                     default:
    472                         break;
     451
     452                    /* Make clicked item the current one: */
     453                    if (pClickedItem->isEnabled())
     454                    {
     455                        setCurrentItem(pClickedItem);
     456                        /* Close the widget in popup mode only: */
     457                        if (tools()->isPopup())
     458                            close();
     459                        return true;
     460                    }
    473461                }
    474462            }
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