VirtualBox

Changeset 108002 in vbox for trunk/src/VBox/Frontends


Ignore:
Timestamp:
Jan 31, 2025 12:07:01 PM (3 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
167274
Message:

FE/Qt: bugref:10814: VBox Manager / Tools pane: Make sure extra-button is shown for widget mode if at least one of items is hovered.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/manager/tools
Files:
3 edited

Legend:

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

    r108001 r108002  
    383383    paintToolInfo(pPainter, rectangle);
    384384    /* Paint extra-button if requested: */
    385     if (m_fExtraButton)
     385    if (   m_fExtraButton
     386        && model()->isAtLeastOneItemHovered())
    386387        paintExtraButton(pPainter, rectangle);
    387388}
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.cpp

    r108000 r108002  
    317317            return pItem;
    318318    return 0;
     319}
     320
     321bool UIToolsModel::isAtLeastOneItemHovered() const
     322{
     323    foreach (UIToolsItem *pItem, items())
     324        if (pItem->isHovered())
     325            return true;
     326    return false;
    319327}
    320328
     
    451459}
    452460
     461void UIToolsModel::sltHandleItemHoverChange()
     462{
     463    /* Just update all the items: */
     464    foreach (UIToolsItem *pItem, items())
     465        pItem->update();
     466}
     467
     468void UIToolsModel::sltFocusItemDestroyed()
     469{
     470    AssertMsgFailed(("Focus item destroyed!"));
     471}
     472
    453473void UIToolsModel::sltRetranslateUI()
    454474{
     
    476496}
    477497
    478 void UIToolsModel::sltFocusItemDestroyed()
    479 {
    480     AssertMsgFailed(("Focus item destroyed!"));
    481 }
    482 
    483498void UIToolsModel::prepare()
    484499{
     
    509524            m_items << new UIToolsItem(scene(), UIIconPool::iconSet(":/welcome_screen_24px.png",
    510525                                                                    ":/welcome_screen_24px.png"),
    511                                        UIToolClass_Global, UIToolType_Welcome);
     526                                       UIToolClass_Global, UIToolType_Welcome,
     527                                       !tools()->isPopup() /* extra-button */);
    512528
    513529            /* Extensions: */
     
    584600    connect(&translationEventListener(), &UITranslationEventListener::sigRetranslateUI,
    585601            this, &UIToolsModel::sltRetranslateUI);
     602
     603    /* Connect item hover listeners: */
     604    foreach (UIToolsItem *pItem, m_items)
     605    {
     606        connect(pItem, &UIToolsItem::sigHoverEnter,
     607                this, &UIToolsModel::sltHandleItemHoverChange);
     608        connect(pItem, &UIToolsItem::sigHoverLeave,
     609                this, &UIToolsModel::sltHandleItemHoverChange);
     610    }
    586611}
    587612
  • trunk/src/VBox/Frontends/VirtualBox/src/manager/tools/UIToolsModel.h

    r108000 r108002  
    129129        /** Returns the item of passed @a enmType. */
    130130        UIToolsItem *item(UIToolType enmType) const;
     131
     132        /** Returns whether at least one item hovered: */
     133        bool isAtLeastOneItemHovered() const;
    131134    /** @} */
    132135
     
    185188
    186189private slots:
     190
     191    /** @name Children stuff.
     192      * @{ */
     193       /** Handles signal about one of items was [un]hovered. */
     194       void sltHandleItemHoverChange();
     195    /** @} */
    187196
    188197    /** @name Selection stuff.
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