VirtualBox

Ignore:
Timestamp:
Aug 2, 2013 1:11:24 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
87713
Message:

FE/Qt: Popup-center: Make sure *every* popup-stack can have independent integration-type which persists through popup-stack recreation.

Location:
trunk/src/VBox/Frontends/VirtualBox/src
Files:
10 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.cpp

    r47511 r47523  
    7373void UIPopupCenter::prepare()
    7474{
    75     /* Embedded by default: */
    76     m_type = UIPopupIntegrationType_Embedded;
    7775}
    7876
    7977void UIPopupCenter::cleanup()
    8078{
     79    /* Make sure all the popup-stack types destroyed: */
     80    foreach (const QString &strPopupStackTypeID, m_stackTypes.keys())
     81        m_stackTypes.remove(strPopupStackTypeID);
    8182    /* Make sure all the popup-stacks destroyed: */
    8283    foreach (const QString &strPopupStackID, m_stacks.keys())
     
    8788}
    8889
    89 void UIPopupCenter::setStackIntegrationType(UIPopupIntegrationType type)
    90 {
    91     /* Make sure type changed: */
    92     if (m_type == type)
    93         return;
    94 
    95     /* Assign new type:  */
    96     m_type = type;
     90void UIPopupCenter::showPopupStack(QWidget *pParent)
     91{
     92    /* Make sure parent is set! */
     93    AssertMsg(pParent, ("Parent is NULL!"));
     94    if (!pParent)
     95        return;
     96
     97    /* Make sure corresponding popup-stack *exists*: */
     98    const QString strPopupStackID(popupStackID(pParent));
     99    if (!m_stacks.contains(strPopupStackID))
     100        return;
     101
     102    /* Assign stack with passed parent: */
     103    UIPopupStack *pPopupStack = m_stacks[strPopupStackID];
     104    assignPopupStackParent(pPopupStack, pParent, m_stackTypes[strPopupStackID]);
     105    pPopupStack->show();
     106}
     107
     108void UIPopupCenter::hidePopupStack(QWidget *pParent)
     109{
     110    /* Make sure parent is set! */
     111    AssertMsg(pParent, ("Parent is NULL!"));
     112    if (!pParent)
     113        return;
     114
     115    /* Make sure corresponding popup-stack *exists*: */
     116    const QString strPopupStackID(popupStackID(pParent));
     117    if (!m_stacks.contains(strPopupStackID))
     118        return;
     119
     120    /* Unassign stack with passed parent: */
     121    UIPopupStack *pPopupStack = m_stacks[strPopupStackID];
     122    pPopupStack->hide();
     123    unassignPopupStackParent(pPopupStack, pParent);
     124}
     125
     126void UIPopupCenter::setPopupStackType(QWidget *pParent, UIPopupStackType newStackType)
     127{
     128    /* Make sure parent is set! */
     129    AssertMsg(pParent, ("Parent is NULL!"));
     130    if (!pParent)
     131        return;
     132
     133    /* Composing corresponding popup-stack: */
     134    const QString strPopupStackID(popupStackID(pParent));
     135
     136    /* Looking for current popup-stack type, create if it doesn't exists: */
     137    UIPopupStackType &stackType = m_stackTypes[strPopupStackID];
     138
     139    /* Make sure stack-type has changed: */
     140    if (stackType == newStackType)
     141        return;
     142
     143    /* Remember new stack type: */
     144    LogRelFlow(("UIPopupCenter::setPopupStackType: Changing type of popup-stack with ID = '%s' from '%s' to '%s'.\n",
     145                strPopupStackID.toAscii().constData(),
     146                stackType == UIPopupStackType_Separate ? "separate window" : "embedded widget",
     147                newStackType == UIPopupStackType_Separate ? "separate window" : "embedded widget"));
     148    stackType = newStackType;
    97149}
    98150
     
    201253    }
    202254
    203     /* Looking for the corresponding popup-stack: */
     255    /* Looking for corresponding popup-stack: */
    204256    const QString strPopupStackID(popupStackID(pParent));
    205257    UIPopupStack *pPopupStack = 0;
    206     /* Is there already popup-stack with the same ID? */
     258    /* If there is already popup-stack with such ID: */
    207259    if (m_stacks.contains(strPopupStackID))
    208260    {
    209         /* Get existing one: */
     261        /* Just get existing one: */
    210262        pPopupStack = m_stacks[strPopupStackID];
    211263    }
    212     /* There is no popup-stack with the same ID? */
     264    /* If there is no popup-stack with such ID: */
    213265    else
    214266    {
    215267        /* Create new one: */
    216         pPopupStack = m_stacks[strPopupStackID] = new UIPopupStack;
     268        pPopupStack = m_stacks[strPopupStackID] = new UIPopupStack(strPopupStackID);
    217269        /* Attach popup-stack connections: */
    218270        connect(pPopupStack, SIGNAL(sigPopupPaneDone(QString, int)), this, SLOT(sltPopupPaneDone(QString, int)));
    219         connect(pPopupStack, SIGNAL(sigRemove()), this, SLOT(sltRemovePopupStack()));
     271        connect(pPopupStack, SIGNAL(sigRemove(QString)), this, SLOT(sltRemovePopupStack(QString)));
    220272        /* Show popup-stack: */
    221273        showPopupStack(pParent);
    222274    }
    223275
    224     /* Looking for the corresponding popup-pane: */
     276    /* If there is already popup-pane with such ID: */
    225277    if (pPopupStack->exists(strPopupPaneID))
    226278    {
    227         /* Update existing one: */
     279        /* Just update existing one: */
    228280        pPopupStack->updatePopupPane(strPopupPaneID, strMessage, strDetails);
    229281    }
     282    /* If there is no popup-pane with such ID: */
    230283    else
    231284    {
     
    263316}
    264317
    265 void UIPopupCenter::showPopupStack(QWidget *pParent)
    266 {
    267     /* Make sure passed parent is valid: */
    268     if (!pParent)
    269     {
    270         AssertMsgFailed(("Passed parent is NULL"));
    271         return;
    272     }
    273 
    274     /* Do we have a stack for passed parent? */
    275     const QString strPopupStackID(popupStackID(pParent));
     318void UIPopupCenter::sltPopupPaneDone(QString strPopupPaneID, int iResultCode)
     319{
     320    /* Was the result auto-confirmated? */
     321    if (iResultCode & AlertOption_AutoConfirmed)
     322    {
     323        /* Remember auto-confirmation fact: */
     324        QStringList confirmedPopupList = vboxGlobal().virtualBox().GetExtraData(GUI_SuppressMessages).split(',');
     325        confirmedPopupList << strPopupPaneID;
     326        vboxGlobal().virtualBox().SetExtraData(GUI_SuppressMessages, confirmedPopupList.join(","));
     327    }
     328
     329    /* Notify listeners: */
     330    emit sigPopupPaneDone(strPopupPaneID, iResultCode);
     331}
     332
     333void UIPopupCenter::sltRemovePopupStack(QString strPopupStackID)
     334{
     335    /* Make sure corresponding popup-stack *exists*: */
    276336    if (!m_stacks.contains(strPopupStackID))
    277         return;
    278 
    279     /* Assign stack with passed parent: */
    280     UIPopupStack *pPopupStack = m_stacks[strPopupStackID];
    281     assignPopupStackParent(pPopupStack, pParent);
    282     pPopupStack->show();
    283 }
    284 
    285 void UIPopupCenter::hidePopupStack(QWidget *pParent)
    286 {
    287     /* Make sure passed parent is valid: */
    288     if (!pParent)
    289     {
    290         AssertMsgFailed(("Passed parent is NULL"));
    291         return;
    292     }
    293 
    294     /* Do we have a stack for passed parent? */
    295     const QString strPopupStackID(popupStackID(pParent));
    296     if (!m_stacks.contains(strPopupStackID))
    297         return;
    298 
    299     /* Unassign stack with passed parent: */
    300     UIPopupStack *pPopupStack = m_stacks[strPopupStackID];
    301     pPopupStack->hide();
    302     unassignPopupStackParent(pPopupStack, pParent);
    303 }
    304 
    305 void UIPopupCenter::reinstallPopupStack(QWidget *pParent, bool fAsTopLevel)
    306 {
    307     /* Make sure passed parent is valid: */
    308     if (!pParent)
    309         return;
    310 
    311     /* Do we have a stack for passed parent? */
    312     const QString strPopupStackID(popupStackID(pParent));
    313     if (!m_stacks.contains(strPopupStackID))
    314         return;
    315 
    316     /* Make sure we should really reinstall stack: */
    317     if ((fAsTopLevel && m_type == UIPopupIntegrationType_Toplevel) ||
    318         (!fAsTopLevel && m_type == UIPopupIntegrationType_Embedded))
    319         return;
    320 
    321     LogRelFlow(("UIPopupCenter::reinstallPopupStack: Reinstalling popup-stack as %s.\n",
    322                 fAsTopLevel ? "top level window" : "embedded widget"));
    323 
    324     /* Remove stack: */
    325     hidePopupStack(pParent);
    326 
    327     /* Make sure integration type is correct: */
    328     setStackIntegrationType(fAsTopLevel ? UIPopupIntegrationType_Toplevel : UIPopupIntegrationType_Embedded);
    329 
    330     /* Return stack again: */
    331     showPopupStack(pParent);
    332 }
    333 
    334 void UIPopupCenter::assignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent)
    335 {
    336     /* Make sure parent is not NULL: */
    337     AssertMsg(pParent, ("Invalid parent passed!"));
     337    {
     338        AssertMsgFailed(("Popup-stack already destroyed!"));
     339        return;
     340    }
     341
     342    /* Delete popup-stack: */
     343    delete m_stacks[strPopupStackID];
     344    m_stacks.remove(strPopupStackID);
     345}
     346
     347/* static */
     348QString UIPopupCenter::popupStackID(QWidget *pParent)
     349{
     350    /* Make sure parent is set! */
     351    AssertMsg(pParent, ("Parent is NULL!"));
     352    if (!pParent)
     353        return QString();
     354
     355    /* Special handling for Runtime UI: */
     356    if (qobject_cast<UIMachineWindow*>(pParent))
     357        return QString("UIMachineWindow");
     358
     359    /* Common handling for other cases: */
     360    return pParent->metaObject()->className();
     361}
     362
     363/* static */
     364void UIPopupCenter::assignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent, UIPopupStackType stackType)
     365{
     366    /* Make sure parent is set! */
     367    AssertMsg(pParent, ("Parent is NULL!"));
     368    if (!pParent)
     369        return;
    338370
    339371    /* Assign event-filter: */
    340372    pParent->installEventFilter(pPopupStack);
    341373
    342     /* Assign parent depending on *integration* type: */
    343     switch (m_type)
    344     {
    345         case UIPopupIntegrationType_Embedded:
     374    /* Assign parent depending on passed *stack* type: */
     375    switch (stackType)
     376    {
     377        case UIPopupStackType_Embedded:
    346378        {
    347379            pPopupStack->setParent(pParent);
    348380            break;
    349381        }
    350         case UIPopupIntegrationType_Toplevel:
     382        case UIPopupStackType_Separate:
    351383        {
    352384            pPopupStack->setParent(pParent, Qt::Tool | Qt::FramelessWindowHint);
     
    357389}
    358390
     391/* static */
    359392void UIPopupCenter::unassignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent)
    360393{
    361     /* Make sure parent is not NULL: */
    362     AssertMsg(pParent, ("Invalid parent passed!"));
     394    /* Make sure parent is set! */
     395    AssertMsg(pParent, ("Parent is NULL!"));
     396    if (!pParent)
     397        return;
    363398
    364399    /* Unassign parent: */
     
    367402    /* Unassign event-filter: */
    368403    pParent->removeEventFilter(pPopupStack);
    369 }
    370 
    371 void UIPopupCenter::sltPopupPaneDone(QString strPopupPaneID, int iResultCode)
    372 {
    373     /* Was the result auto-confirmated? */
    374     if (iResultCode & AlertOption_AutoConfirmed)
    375     {
    376         /* Remember auto-confirmation fact: */
    377         QStringList confirmedPopupList = vboxGlobal().virtualBox().GetExtraData(GUI_SuppressMessages).split(',');
    378         confirmedPopupList << strPopupPaneID;
    379         vboxGlobal().virtualBox().SetExtraData(GUI_SuppressMessages, confirmedPopupList.join(","));
    380     }
    381 
    382     /* Notify listeners: */
    383     emit sigPopupPaneDone(strPopupPaneID, iResultCode);
    384 }
    385 
    386 void UIPopupCenter::sltShowPopupStack()
    387 {
    388     showPopupStack(vboxGlobal().activeMachineWindow());
    389 }
    390 
    391 void UIPopupCenter::sltHidePopupStack()
    392 {
    393     hidePopupStack(vboxGlobal().activeMachineWindow());
    394 }
    395 
    396 void UIPopupCenter::sltReinstallPopupStack(bool fAsTopLevel)
    397 {
    398     reinstallPopupStack(vboxGlobal().activeMachineWindow(), fAsTopLevel);
    399 }
    400 
    401 void UIPopupCenter::sltRemovePopupStack()
    402 {
    403     /* Make sure the sender is the popup-stack: */
    404     UIPopupStack *pPopupStack = qobject_cast<UIPopupStack*>(sender());
    405     if (!pPopupStack)
    406     {
    407         AssertMsgFailed(("Should be called by popup-stack only!"));
    408         return;
    409     }
    410 
    411     /* Make sure the popup-stack still exists: */
    412     const QString strPopupStackID(m_stacks.key(pPopupStack, QString()));
    413     if (strPopupStackID.isNull())
    414     {
    415         AssertMsgFailed(("Popup-stack already destroyed!"));
    416         return;
    417     }
    418 
    419     /* Cleanup the popup-stack: */
    420     m_stacks.remove(strPopupStackID);
    421     delete pPopupStack;
    422 }
    423 
    424 /* static */
    425 QString UIPopupCenter::popupStackID(QWidget *pParent)
    426 {
    427     /* Make sure passed parent is always valid: */
    428     if (!pParent)
    429     {
    430         AssertMsgFailed(("Passed parent is NULL"));
    431         return QString();
    432     }
    433 
    434     /* Special handling for Runtime UI: */
    435     if (qobject_cast<UIMachineWindow*>(pParent))
    436         return QString("UIMachineWindow");
    437 
    438     /* Common handling for other cases: */
    439     return pParent->metaObject()->className();
    440404}
    441405
  • trunk/src/VBox/Frontends/VirtualBox/src/globals/UIPopupCenter.h

    r47511 r47523  
    2929class UIPopupStack;
    3030
    31 /* Popup integration types: */
    32 enum UIPopupIntegrationType
     31/* Popup-stack types: */
     32enum UIPopupStackType
    3333{
    34     UIPopupIntegrationType_Embedded,
    35     UIPopupIntegrationType_Toplevel
     34    UIPopupStackType_Embedded,
     35    UIPopupStackType_Separate
    3636};
    3737
     
    5252    static void destroy();
    5353
    54     /* API: Stack layout stuff: */
    55     void setStackIntegrationType(UIPopupIntegrationType type);
     54    /* API: Popup-stack stuff: */
     55    void showPopupStack(QWidget *pParent);
     56    void hidePopupStack(QWidget *pParent);
     57    void setPopupStackType(QWidget *pParent, UIPopupStackType newStackType);
    5658
    5759    /* API: Main message function.
     
    113115    void sltPopupPaneDone(QString strPopupPaneID, int iResultCode);
    114116
    115     /* Handlers: Popup-stack stuff: */
    116     void sltShowPopupStack();
    117     void sltHidePopupStack();
    118     void sltReinstallPopupStack(bool fAsTopLevel);
    119     void sltRemovePopupStack();
     117    /* Handler: Popup-stack stuff: */
     118    void sltRemovePopupStack(QString strPopupStackID);
    120119
    121120private:
     
    137136    void hidePopupPane(QWidget *pParent, const QString &strPopupPaneID);
    138137
    139     /* Helpers: Popup-stack stuff: */
    140     void showPopupStack(QWidget *pParent);
    141     void hidePopupStack(QWidget *pParent);
    142     void reinstallPopupStack(QWidget *pParent, bool fAsTopLevel);
    143     void assignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent);
    144     void unassignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent);
    145 
    146138    /* Static helper: Popup-stack stuff: */
    147139    static QString popupStackID(QWidget *pParent);
     140    static void assignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent, UIPopupStackType stackType);
     141    static void unassignPopupStackParent(UIPopupStack *pPopupStack, QWidget *pParent);
    148142
    149     /* Variable: Popup-stack stuff: */
    150     UIPopupIntegrationType m_type;
     143    /* Variables: Popup-stack stuff: */
     144    QMap<QString, UIPopupStackType> m_stackTypes;
    151145    QMap<QString, QPointer<UIPopupStack> > m_stacks;
    152146
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.cpp

    r47493 r47523  
    353353void UIMachineLogic::notifyAbout3DOverlayVisibilityChange(bool fVisible)
    354354{
    355     /* Notify listener about 3D overlay visibility change: */
    356     emit sigNotifyAbout3DOverlayVisibilityChange(fVisible);
     355    /* If active machine-window is defined now: */
     356    if (activeMachineWindow())
     357    {
     358        /* Reinstall corresponding popup-stack according 3D overlay visibility status: */
     359        popupCenter().hidePopupStack(activeMachineWindow());
     360        popupCenter().setPopupStackType(activeMachineWindow(), fVisible ? UIPopupStackType_Separate : UIPopupStackType_Embedded);
     361        popupCenter().showPopupStack(activeMachineWindow());
     362    }
    357363}
    358364
     
    544550#endif /* Q_WS_MAC */
    545551{
    546     /* Register popup-center connections: */
    547     connect(this, SIGNAL(sigMachineWindowsCreated()),
    548             &popupCenter(), SLOT(sltShowPopupStack()));
    549     connect(this, SIGNAL(sigMachineWindowsDestroyed()),
    550             &popupCenter(), SLOT(sltHidePopupStack()));
    551     connect(this, SIGNAL(sigNotifyAbout3DOverlayVisibilityChange(bool)),
    552             &popupCenter(), SLOT(sltReinstallPopupStack(bool)));
    553 }
    554 
    555 UIMachineLogic::~UIMachineLogic()
    556 {
    557     /* Unregister popup-center connections: */
    558     disconnect(this, SIGNAL(sigMachineWindowsCreated()),
    559                &popupCenter(), SLOT(sltShowPopupStack()));
    560     disconnect(this, SIGNAL(sigMachineWindowsDestroyed()),
    561                &popupCenter(), SLOT(sltHidePopupStack()));
    562     disconnect(this, SIGNAL(sigNotifyAbout3DOverlayVisibilityChange(bool)),
    563                &popupCenter(), SLOT(sltReinstallPopupStack(bool)));
    564552}
    565553
     
    573561    if (!fIsWindowsCreated)
    574562    {
    575         /* We emit this signal *before* the remembering new value
     563        /* We ask popup-center to hide corresponding popup-stack *before* the remembering new value
    576564         * because we want UIMachineLogic::activeMachineWindow() to be yet alive. */
    577         emit sigMachineWindowsDestroyed();
     565        popupCenter().hidePopupStack(activeMachineWindow());
    578566    }
    579567
     
    584572    if (fIsWindowsCreated)
    585573    {
    586         /* We emit this signal *after* the remembering new value
     574        /* We ask popup-center to show corresponding popup-stack *after* the remembering new value
    587575         * because we want UIMachineLogic::activeMachineWindow() to be already alive. */
    588         emit sigMachineWindowsCreated();
     576        popupCenter().setPopupStackType(activeMachineWindow(),
     577                                        visualStateType() == UIVisualStateType_Seamless ?
     578                                        UIPopupStackType_Separate : UIPopupStackType_Embedded);
     579        popupCenter().showPopupStack(activeMachineWindow());
    589580    }
    590581}
     
    663654# endif /* VBOX_WITH_ICHAT_THEATER */
    664655#endif /* Q_WS_MAC */
    665 
    666     /* Switch popup-center into default integration mode: */
    667     popupCenter().setStackIntegrationType(UIPopupIntegrationType_Embedded);
    668656}
    669657
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMachineLogic.h

    r47507 r47523  
    5353    Q_OBJECT;
    5454
    55 signals:
    56 
    57     /* Notifiers: Machine-window(s) stuff: */
    58     void sigMachineWindowsCreated();
    59     void sigMachineWindowsDestroyed();
    60     void sigNotifyAbout3DOverlayVisibilityChange(bool fVisible);
    61 
    6255public:
    6356
     
    122115protected:
    123116
    124     /* Constructor/destructor: */
     117    /* Constructor: */
    125118    UIMachineLogic(QObject *pParent, UISession *pSession, UIVisualStateType visualStateType);
    126     ~UIMachineLogic();
    127119
    128120    /* Protected getters/setters: */
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.cpp

    r47507 r47523  
    9191void UIMachineLogicSeamless::notifyAbout3DOverlayVisibilityChange(bool)
    9292{
    93     /* Ignore this event in seamless mode.
    94      * We have to keep popup-stack integration type 'top-level'.
    95      * S.A. UIMachineLogicSeamless::prepareRequiredFeatures(). */
     93    /* If active machine-window is defined now: */
     94    if (activeMachineWindow())
     95    {
     96        /* Reinstall corresponding popup-stack and make sure it has proper type: */
     97        popupCenter().hidePopupStack(activeMachineWindow());
     98        popupCenter().setPopupStackType(activeMachineWindow(), UIPopupStackType_Separate);
     99        popupCenter().showPopupStack(activeMachineWindow());
     100    }
    96101}
    97102
     
    118123    /* Call to base-class: */
    119124    UIMachineLogic::sltHostScreenCountChanged(cScreenCount);
    120 }
    121 
    122 void UIMachineLogicSeamless::prepareRequiredFeatures()
    123 {
    124     /* Call to base-class: */
    125     UIMachineLogic::prepareRequiredFeatures();
    126 
    127     /* Switch popup-center into 'top-level' integration mode: */
    128     popupCenter().setStackIntegrationType(UIPopupIntegrationType_Toplevel);
    129125}
    130126
  • trunk/src/VBox/Frontends/VirtualBox/src/runtime/seamless/UIMachineLogicSeamless.h

    r47507 r47523  
    5555
    5656    /* Prepare helpers: */
    57     void prepareRequiredFeatures();
    5857    void prepareActionGroups();
    5958    void prepareMachineWindows();
     
    6463    void cleanupMachineWindows();
    6564    void cleanupActionGroups();
    66     //void cleanupRequiredFeatures();
    6765
    6866    /* Variables: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.cpp

    r47462 r47523  
    3030#include "UIPopupStackViewport.h"
    3131
    32 UIPopupStack::UIPopupStack()
    33     : m_pScrollArea(0)
     32UIPopupStack::UIPopupStack(const QString &strID)
     33    : m_strID(strID)
     34    , m_pScrollArea(0)
    3435    , m_pScrollViewport(0)
    3536    , m_iParentMenuBarHeight(0)
     
    138139    if (parentWidget())
    139140        parentWidget()->setFocus();
     141}
     142
     143void UIPopupStack::sltPopupPanesRemoved()
     144{
     145    /* Ask popup-center to remove us: */
     146    emit sigRemove(m_strID);
    140147}
    141148
     
    194201                connect(m_pScrollViewport, SIGNAL(sigPopupPaneRemoved(QString)),
    195202                        this, SLOT(sltPopupPaneRemoved(QString)));
    196                 connect(m_pScrollViewport, SIGNAL(sigRemove()),
    197                         this, SIGNAL(sigRemove()));
     203                connect(m_pScrollViewport, SIGNAL(sigPopupPanesRemoved()),
     204                        this, SLOT(sltPopupPanesRemoved()));
    198205            }
    199206            /* Assign scroll-viewport to scroll-area: */
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStack.h

    r47461 r47523  
    4343
    4444    /* Notifier: Popup-stack stuff: */
    45     void sigRemove();
     45    void sigRemove(QString strID);
    4646
    4747public:
    4848
    4949    /* Constructor: */
    50     UIPopupStack();
     50    UIPopupStack(const QString &strID);
    5151
    5252    /* API: Popup-pane stuff: */
     
    6969    void sltAdjustGeometry();
    7070
    71     /* Handler: Popuyp-pane stuff: */
     71    /* Handlers: Popup-pane stuff: */
    7272    void sltPopupPaneRemoved(QString strPopupPaneID);
     73    void sltPopupPanesRemoved();
    7374
    7475private:
     
    9192    static int parentStatusBarHeight(QWidget *pParent);
    9293
     94    /* Variable: General stuff: */
     95    QString m_strID;
     96
    9397    /* Variables: Widget stuff: */
    9498    QVBoxLayout *m_pMainLayout;
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.cpp

    r47461 r47523  
    155155
    156156    /* Notify listeners about popup-stack: */
    157     emit sigRemove();
     157    emit sigPopupPanesRemoved();
    158158}
    159159
  • trunk/src/VBox/Frontends/VirtualBox/src/widgets/UIPopupStackViewport.h

    r47462 r47523  
    4141    void sigPopupPaneDone(QString strPopupPaneID, int iResultCode);
    4242    void sigPopupPaneRemoved(QString strPopupPaneID);
    43 
    44     /* Notifier: Popup-stack stuff: */
    45     void sigRemove();
     43    void sigPopupPanesRemoved();
    4644
    4745public:
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