VirtualBox

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


Ignore:
Timestamp:
Apr 17, 2013 1:49:06 PM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: Popup-center / Popup-pane: Moving resize animation from hovering to focusing signals.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/widgets
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.cpp

    r45586 r45588  
    8282signals:
    8383
    84     /* Notifiers: Hover stuff: */
     84    /* Notifiers: Animation stuff: */
    8585    void sigHoverEnter();
    8686    void sigHoverLeave();
     87    void sigFocusEnter();
     88    void sigFocusLeave();
    8789
    8890public:
     
    121123signals:
    122124
    123     /* Notifiers: Hover stuff: */
     125    /* Notifier: Animation stuff: */
    124126    void sigHoverEnter();
    125127    void sigHoverLeave();
     128    void sigFocusEnter();
     129    void sigFocusLeave();
    126130    void sigGeometryChanged();
    127131
     
    180184    , m_iButtonEsc(0)
    181185    , m_fHovered(false)
     186    , m_fFocused(false)
    182187    , m_pMainFrame(0), m_pTextPane(0), m_pButtonBox(0)
    183188    , m_pButton1(0), m_pButton2(0), m_pButton3(0)
     
    292297                break;
    293298            }
     299            case QEvent::FocusIn:
     300            {
     301                if (!m_fFocused)
     302                {
     303                    m_fFocused = true;
     304                    emit sigFocusEnter();
     305                }
     306                break;
     307            }
     308            case QEvent::FocusOut:
     309            {
     310                if (m_fFocused && (pWatched == m_pButton1 ||
     311                                   pWatched == m_pButton2 ||
     312                                   pWatched == m_pButton3))
     313                {
     314                    m_fFocused = false;
     315                    emit sigFocusLeave();
     316                }
     317                break;
     318            }
    294319            /* Default case: */
    295320            default: break;
     
    415440    /* Prepare this: */
    416441    installEventFilter(this);
    417     setFocusPolicy(Qt::StrongFocus);
    418442    /* Create main-frame: */
    419443    m_pMainFrame = new UIPopupPaneFrame(this);
     
    421445        /* Prepare frame: */
    422446        m_pMainFrame->installEventFilter(this);
     447        m_pMainFrame->setFocusPolicy(Qt::StrongFocus);
    423448        /* Create message-label: */
    424449        m_pTextPane = new UIPopupPaneTextPane(m_pMainFrame);
     
    463488        if (pButton && pButton->isDefault())
    464489        {
    465             setFocusProxy(pButton);
     490            m_pMainFrame->setFocusProxy(pButton);
    466491            m_pTextPane->setFocusProxy(pButton);
    467492            break;
     
    472497    if (m_pButton1)
    473498    {
     499        m_pButton1->installEventFilter(this);
    474500        connect(m_pButton1, SIGNAL(clicked()), SLOT(done1()));
    475501        if (!m_strButtonText1.isEmpty())
     
    480506    if (m_pButton2)
    481507    {
     508        m_pButton2->installEventFilter(this);
    482509        connect(m_pButton2, SIGNAL(clicked()), SLOT(done2()));
    483510        if (!m_strButtonText2.isEmpty())
     
    488515    if (m_pButton3)
    489516    {
     517        m_pButton3->installEventFilter(this);
    490518        connect(m_pButton3, SIGNAL(clicked()), SLOT(done3()));
    491519        if (!m_strButtonText3.isEmpty())
     
    547575    QPushButton *pButton = pButtonBox->addButton(strText, role);
    548576
     577    /* Configure button: */
     578    pButton->setFocusPolicy(Qt::StrongFocus);
     579
    549580    /* Configure 'default' button: */
    550581    if (iButton & AlertButtonOption_Default)
    551     {
    552582        pButton->setDefault(true);
    553         pButton->setFocusPolicy(Qt::StrongFocus);
    554         pButton->setFocus();
    555     }
    556583
    557584    /* Return button: */
     
    579606void UIPopupPaneFrame::prepare()
    580607{
    581     /* Install 'hover' animation for 'opacity' property: */
     608    /* Propagate parent signals: */
    582609    connect(parent(), SIGNAL(sigHoverEnter()), this, SIGNAL(sigHoverEnter()));
    583610    connect(parent(), SIGNAL(sigHoverLeave()), this, SIGNAL(sigHoverLeave()));
     611    connect(parent(), SIGNAL(sigFocusEnter()), this, SIGNAL(sigFocusEnter()));
     612    connect(parent(), SIGNAL(sigFocusLeave()), this, SIGNAL(sigFocusLeave()));
     613    /* Install 'hover' animation for 'opacity' property: */
    584614    UIAnimationFramework::installPropertyAnimation(this, QByteArray("opacity"),
    585615                                                   m_iDefaultOpacity, m_iHoveredOpacity, m_iHoverAnimationDuration,
     
    677707void UIPopupPaneTextPane::prepare()
    678708{
    679     /* Install 'hover' animation for 'height' property: */
     709    /* Propagate parent signals: */
    680710    connect(parent(), SIGNAL(sigHoverEnter()), this, SIGNAL(sigHoverEnter()));
    681711    connect(parent(), SIGNAL(sigHoverLeave()), this, SIGNAL(sigHoverLeave()));
     712    connect(parent(), SIGNAL(sigFocusEnter()), this, SIGNAL(sigFocusEnter()));
     713    connect(parent(), SIGNAL(sigFocusLeave()), this, SIGNAL(sigFocusLeave()));
     714    /* Install 'focus' animation for 'height' property: */
    682715    UIAnimationFramework::installPropertyAnimation(this, QByteArray("percentage"),
    683716                                                   m_iDefaultPercentage, m_iHoveredPercentage, m_iHoverAnimationDuration,
    684                                                    SIGNAL(sigHoverEnter()), SIGNAL(sigHoverLeave()));
     717                                                   SIGNAL(sigFocusEnter()), SIGNAL(sigFocusLeave()));
    685718    /* Prepare content: */
    686719    prepareContent();
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupPane.h

    r45586 r45588  
    5050signals:
    5151
    52     /* Notifiers: Hover stuff: */
     52    /* Notifiers: Animation stuff: */
    5353    void sigHoverEnter();
    5454    void sigHoverLeave();
     55    void sigFocusEnter();
     56    void sigFocusLeave();
    5557
    5658    /* Notifier: Complete stuff: */
     
    133135    int m_iButtonEsc;
    134136
    135     /* Variables: Hover stuff: */
     137    /* Variables: Animation stuff: */
    136138    bool m_fHovered;
     139    bool m_fFocused;
    137140
    138141    /* Widgets: */
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