VirtualBox

Changeset 85953 in vbox


Ignore:
Timestamp:
Aug 31, 2020 11:43:58 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
140148
Message:

FE/Qt: bugref:9812: VM settings: Prepare cascade cleanup for USB page.

Location:
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp

    r85795 r85953  
    332332
    333333UIMachineSettingsUSB::UIMachineSettingsUSB()
    334     : m_pToolBar(0)
    335     , m_pActionNew(0),
    336       m_pActionAdd(0),
    337       m_pActionEdit(0),
    338       m_pActionRemove(0)
    339     , m_pActionMoveUp(0),
    340       m_pActionMoveDown(0)
    341     , m_pMenuUSBDevices(0)
    342     , m_pCache(0)
     334    : m_pCache(0)
    343335    , m_pCheckBoxUSB(0)
    344     , m_pTreeWidgetFilters(0)
     336    , m_pWidgetUSBSettings(0)
    345337    , m_pRadioButtonUSB1(0)
    346338    , m_pRadioButtonUSB2(0)
    347339    , m_pRadioButtonUSB3(0)
    348     , m_pCheckBoxUSBFilters(0)
    349     , m_pUSBChild(0)
    350     , m_pFiltersToolBar(0)
     340    , m_pLabelSeparatorFilters(0)
     341    , m_pLayoutFilters(0)
     342    , m_pTreeWidgetFilters(0)
     343    , m_pToolBarFilters(0)
     344    , m_pActionNew(0)
     345    , m_pActionAdd(0)
     346    , m_pActionEdit(0)
     347    , m_pActionRemove(0)
     348    , m_pActionMoveUp(0)
     349    , m_pActionMoveDown(0)
     350    , m_pMenuUSBDevices(0)
    351351{
    352352    /* Prepare: */
     
    570570                                        "this machine. The USB xHCI controller provides USB 3.0 support."));
    571571    m_pRadioButtonUSB3->setText(tr("USB &3.0 (xHCI) Controller"));
    572     m_pCheckBoxUSBFilters->setText(tr("USB Device &Filters"));
     572    m_pLabelSeparatorFilters->setText(tr("USB Device &Filters"));
    573573    QTreeWidgetItem *pQtreewidgetitem = m_pTreeWidgetFilters->headerItem();
    574574    pQtreewidgetitem->setText(0, tr("[filter]"));
     
    607607    /* Polish USB page availability: */
    608608    m_pCheckBoxUSB->setEnabled(isMachineOffline());
    609     m_pUSBChild->setEnabled(isMachineInValidMode() && m_pCheckBoxUSB->isChecked());
     609    m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && m_pCheckBoxUSB->isChecked());
    610610    m_pRadioButtonUSB1->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked());
    611611    m_pRadioButtonUSB2->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked());
     
    616616{
    617617    /* Enable/disable USB children: */
    618     m_pUSBChild->setEnabled(isMachineInValidMode() && fEnabled);
     618    m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && fEnabled);
    619619    m_pRadioButtonUSB1->setEnabled(isMachineOffline() && fEnabled);
    620620    m_pRadioButtonUSB2->setEnabled(isMachineOffline() && fEnabled);
     
    847847void UIMachineSettingsUSB::prepare()
    848848{
    849     prepareWidgets();
    850 
    851     /* Hide radio-button initially: */
    852     m_pRadioButtonUSB1->setVisible(false);
    853     m_pRadioButtonUSB2->setVisible(false);
    854     m_pRadioButtonUSB3->setVisible(false);
    855 
    856849    /* Prepare cache: */
    857850    m_pCache = new UISettingsCacheMachineUSB;
    858851    AssertPtrReturnVoid(m_pCache);
    859852
    860     /* Layout created in the .ui file. */
    861     {
    862         /* Prepare USB Filters tree: */
    863         prepareFiltersTree();
    864         /* Prepare USB Filters toolbar: */
    865         prepareFiltersToolbar();
    866         /* Prepare connections: */
    867         prepareConnections();
    868     }
     853    /* Prepare everything: */
     854    prepareWidgets();
     855    prepareConnections();
    869856
    870857    /* Apply language settings: */
     
    874861void UIMachineSettingsUSB::prepareWidgets()
    875862{
    876     if (objectName().isEmpty())
    877         setObjectName(QStringLiteral("UIMachineSettingsUSB"));
    878     resize(468, 328);
     863    /* Prepare main layout: */
    879864    QGridLayout *pMainLayout = new QGridLayout(this);
    880     pMainLayout->setObjectName(QStringLiteral("pMainLayout"));
    881     m_pCheckBoxUSB = new QCheckBox();
    882     m_pCheckBoxUSB->setObjectName(QStringLiteral("m_pCheckBoxUSB"));
    883     m_pCheckBoxUSB->setChecked(true);
    884     pMainLayout->addWidget(m_pCheckBoxUSB, 0, 0, 1, 2);
    885     QSpacerItem *pSpacerItem = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum);
    886     pMainLayout->addItem(pSpacerItem, 1, 0, 1, 1);
    887 
    888     m_pUSBChild = new QWidget();
    889     m_pUSBChild->setObjectName(QStringLiteral("m_pUSBChild"));
    890     QVBoxLayout *pVboxLayout = new QVBoxLayout(m_pUSBChild);
    891     pVboxLayout->setObjectName(QStringLiteral("pVboxLayout"));
    892     pVboxLayout->setContentsMargins(0, 0, 0, 0);
    893     QWidget *pRadioButtonContainer = new QWidget(m_pUSBChild);
    894     pRadioButtonContainer->setObjectName(QStringLiteral("pRadioButtonContainer"));
    895     QVBoxLayout *vboxLayout1 = new QVBoxLayout(pRadioButtonContainer);
    896     vboxLayout1->setObjectName(QStringLiteral("vboxLayout1"));
    897     vboxLayout1->setContentsMargins(0, 0, 0, 0);
    898 
    899     m_pRadioButtonUSB1 = new QRadioButton(pRadioButtonContainer);
    900     m_pRadioButtonUSB1->setObjectName(QStringLiteral("pRadioButtonUSB1"));
    901     vboxLayout1->addWidget(m_pRadioButtonUSB1);
    902 
    903     m_pRadioButtonUSB2 = new QRadioButton(pRadioButtonContainer);
    904     m_pRadioButtonUSB2->setObjectName(QStringLiteral("m_pRadioButtonUSB2"));
    905     vboxLayout1->addWidget(m_pRadioButtonUSB2);
    906 
    907     m_pRadioButtonUSB3 = new QRadioButton(pRadioButtonContainer);
    908     m_pRadioButtonUSB3->setObjectName(QStringLiteral("m_pRadioButtonUSB3"));
    909     vboxLayout1->addWidget(m_pRadioButtonUSB3);
    910     pVboxLayout->addWidget(pRadioButtonContainer);
    911 
    912     m_pCheckBoxUSBFilters = new QILabelSeparator(m_pUSBChild);
    913     m_pCheckBoxUSBFilters->setObjectName(QStringLiteral("m_pCheckBoxUSBFilters"));
    914     pVboxLayout->addWidget(m_pCheckBoxUSBFilters);
    915 
    916     QWidget *pFilterHandler = new QWidget(m_pUSBChild);
    917     pFilterHandler->setObjectName(QStringLiteral("pFilterHandler"));
    918     QHBoxLayout *pHBoxLayout = new QHBoxLayout(pFilterHandler);
    919     pHBoxLayout->setSpacing(3);
    920     pHBoxLayout->setObjectName(QStringLiteral("pHBoxLayout"));
    921     pHBoxLayout->setContentsMargins(0, 0, 0, 0);
    922     m_pTreeWidgetFilters = new QITreeWidget(pFilterHandler);
    923     m_pTreeWidgetFilters->setObjectName(QStringLiteral("m_pTreeWidgetFilters"));
    924     QSizePolicy sizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding);
    925     sizePolicy.setHorizontalStretch(0);
    926     sizePolicy.setVerticalStretch(0);
    927     sizePolicy.setHeightForWidth(m_pTreeWidgetFilters->sizePolicy().hasHeightForWidth());
    928     m_pTreeWidgetFilters->setSizePolicy(sizePolicy);
    929     m_pTreeWidgetFilters->setContextMenuPolicy(Qt::CustomContextMenu);
    930     m_pTreeWidgetFilters->setRootIsDecorated(false);
    931     pHBoxLayout->addWidget(m_pTreeWidgetFilters);
    932 
    933     m_pFiltersToolBar = new UIToolBar(pFilterHandler);
    934     m_pFiltersToolBar->setObjectName(QStringLiteral("m_pFiltersToolBar"));
    935     pHBoxLayout->addWidget(m_pFiltersToolBar);
    936 
    937     pVboxLayout->addWidget(pFilterHandler);
    938     pMainLayout->addWidget(m_pUSBChild, 1, 1, 1, 2);
    939 
    940     pMainLayout->setColumnStretch(1, 1);
    941     m_pCheckBoxUSBFilters->setBuddy(m_pTreeWidgetFilters);
    942 }
    943 
    944 void UIMachineSettingsUSB::prepareFiltersTree()
    945 {
    946     /* USB Filters tree-widget created in the .ui file. */
    947     AssertPtrReturnVoid(m_pTreeWidgetFilters);
    948     {
    949         /* Configure tree-widget: */
     865    if (pMainLayout)
     866    {
     867        pMainLayout->setRowStretch(2, 1);
     868        pMainLayout->setColumnStretch(1, 1);
     869
     870        /* Prepare USB check-box: */
     871        m_pCheckBoxUSB = new QCheckBox;
     872        if (m_pCheckBoxUSB)
     873            pMainLayout->addWidget(m_pCheckBoxUSB, 0, 0, 1, 2);
     874
     875        /* Prepare 20-px shifting spacer: */
     876        QSpacerItem *pSpacerItem = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum);
     877        if (pSpacerItem)
     878            pMainLayout->addItem(pSpacerItem, 1, 0);
     879
     880        /* Prepare USB settings widget: */
     881        m_pWidgetUSBSettings = new QWidget(this);
     882        if (m_pWidgetUSBSettings)
     883        {
     884            /* Prepare USB settings widget layout: */
     885            m_pLayoutUSBSettings = new QVBoxLayout(m_pWidgetUSBSettings);
     886            if (m_pLayoutUSBSettings)
     887            {
     888                m_pLayoutUSBSettings->setContentsMargins(0, 0, 0, 0);
     889
     890                /* Prepare USB radio-buttons: */
     891                prepareRadioButtons();
     892
     893                /* Prepare separator: */
     894                m_pLabelSeparatorFilters = new QILabelSeparator(m_pWidgetUSBSettings);
     895                if (m_pLabelSeparatorFilters)
     896                    m_pLayoutUSBSettings->addWidget(m_pLabelSeparatorFilters);
     897
     898                /* Prepare USB filters layout: */
     899                m_pLayoutFilters = new QHBoxLayout;
     900                if (m_pLayoutFilters)
     901                {
     902                    m_pLayoutFilters->setContentsMargins(0, 0, 0, 0);
     903                    m_pLayoutFilters->setSpacing(3);
     904
     905                    /* Prepare USB filters tree-widget: */
     906                    prepareFiltersTreeWidget();
     907                    /* Prepare USB filters toolbar: */
     908                    prepareFiltersToolbar();
     909
     910                    m_pLayoutUSBSettings->addLayout(m_pLayoutFilters);
     911                }
     912            }
     913
     914            pMainLayout->addWidget(m_pWidgetUSBSettings, 1, 1, 1, 2);
     915        }
     916    }
     917}
     918
     919void UIMachineSettingsUSB::prepareRadioButtons()
     920{
     921    /* Prepare USB1 radio-button: */
     922    m_pRadioButtonUSB1 = new QRadioButton(m_pWidgetUSBSettings);
     923    if (m_pRadioButtonUSB1)
     924    {
     925        m_pRadioButtonUSB1->setVisible(false);
     926        m_pLayoutUSBSettings->addWidget(m_pRadioButtonUSB1);
     927    }
     928    /* Prepare USB2 radio-button: */
     929    m_pRadioButtonUSB2 = new QRadioButton(m_pWidgetUSBSettings);
     930    if (m_pRadioButtonUSB2)
     931    {
     932        m_pRadioButtonUSB2->setVisible(false);
     933        m_pLayoutUSBSettings->addWidget(m_pRadioButtonUSB2);
     934    }
     935    /* Prepare USB3 radio-button: */
     936    m_pRadioButtonUSB3 = new QRadioButton(m_pWidgetUSBSettings);
     937    if (m_pRadioButtonUSB3)
     938    {
     939        m_pRadioButtonUSB3->setVisible(false);
     940        m_pLayoutUSBSettings->addWidget(m_pRadioButtonUSB3);
     941    }
     942}
     943
     944void UIMachineSettingsUSB::prepareFiltersTreeWidget()
     945{
     946    /* Prepare USB filters tree-widget: */
     947    m_pTreeWidgetFilters = new QITreeWidget(m_pWidgetUSBSettings);
     948    if (m_pTreeWidgetFilters)
     949    {
     950        if (m_pLabelSeparatorFilters)
     951            m_pLabelSeparatorFilters->setBuddy(m_pTreeWidgetFilters);
    950952        m_pTreeWidgetFilters->header()->hide();
     953        m_pTreeWidgetFilters->setRootIsDecorated(false);
     954        m_pTreeWidgetFilters->setContextMenuPolicy(Qt::CustomContextMenu);
     955
     956        m_pLayoutFilters->addWidget(m_pTreeWidgetFilters);
    951957    }
    952958}
     
    954960void UIMachineSettingsUSB::prepareFiltersToolbar()
    955961{
    956     /* USB Filters toolbar created in the .ui file. */
    957     AssertPtrReturnVoid(m_pFiltersToolBar);
    958     {
    959         /* Configure toolbar: */
     962    /* Prepare USB filters toolbar: */
     963    m_pToolBarFilters = new UIToolBar(m_pWidgetUSBSettings);
     964    if (m_pToolBarFilters)
     965    {
    960966        const int iIconMetric = QApplication::style()->pixelMetric(QStyle::PM_SmallIconSize);
    961         m_pFiltersToolBar->setIconSize(QSize(iIconMetric, iIconMetric));
    962         m_pFiltersToolBar->setOrientation(Qt::Vertical);
    963 
    964         /* Create USB devices menu: */
    965         m_pMenuUSBDevices = new VBoxUSBMenu(this);
    966         AssertPtrReturnVoid(m_pMenuUSBDevices);
    967 
    968         /* Create 'New USB Filter' action: */
    969         m_pActionNew = m_pFiltersToolBar->addAction(UIIconPool::iconSet(":/usb_new_16px.png",
     967        m_pToolBarFilters->setIconSize(QSize(iIconMetric, iIconMetric));
     968        m_pToolBarFilters->setOrientation(Qt::Vertical);
     969
     970        /* Prepare 'New USB Filter' action: */
     971        m_pActionNew = m_pToolBarFilters->addAction(UIIconPool::iconSet(":/usb_new_16px.png",
    970972                                                                        ":/usb_new_disabled_16px.png"),
    971973                                                    QString(), this, SLOT(sltNewFilter()));
    972         AssertPtrReturnVoid(m_pActionNew);
    973         {
    974             /* Configure action: */
     974        if (m_pActionNew)
    975975            m_pActionNew->setShortcuts(QList<QKeySequence>() << QKeySequence("Ins") << QKeySequence("Ctrl+N"));
    976         }
    977 
    978         /* Create 'Add USB Filter' action: */
    979         m_pActionAdd = m_pFiltersToolBar->addAction(UIIconPool::iconSet(":/usb_add_16px.png",
     976
     977        /* Prepare 'Add USB Filter' action: */
     978        m_pActionAdd = m_pToolBarFilters->addAction(UIIconPool::iconSet(":/usb_add_16px.png",
    980979                                                                        ":/usb_add_disabled_16px.png"),
    981980                                                    QString(), this, SLOT(sltAddFilter()));
    982         AssertPtrReturnVoid(m_pActionAdd);
    983         {
    984             /* Configure action: */
     981        if (m_pActionAdd)
    985982            m_pActionAdd->setShortcuts(QList<QKeySequence>() << QKeySequence("Alt+Ins") << QKeySequence("Ctrl+A"));
    986         }
    987 
    988         /* Create 'Edit USB Filter' action: */
    989         m_pActionEdit = m_pFiltersToolBar->addAction(UIIconPool::iconSet(":/usb_filter_edit_16px.png",
     983
     984        /* Prepare 'Edit USB Filter' action: */
     985        m_pActionEdit = m_pToolBarFilters->addAction(UIIconPool::iconSet(":/usb_filter_edit_16px.png",
    990986                                                                         ":/usb_filter_edit_disabled_16px.png"),
    991987                                                     QString(), this, SLOT(sltEditFilter()));
    992         AssertPtrReturnVoid(m_pActionEdit);
    993         {
    994             /* Configure action: */
     988        if (m_pActionEdit)
    995989            m_pActionEdit->setShortcuts(QList<QKeySequence>() << QKeySequence("Alt+Return") << QKeySequence("Ctrl+Return"));
    996         }
    997 
    998         /* Create 'Remove USB Filter' action: */
    999         m_pActionRemove = m_pFiltersToolBar->addAction(UIIconPool::iconSet(":/usb_remove_16px.png",
     990
     991        /* Prepare 'Remove USB Filter' action: */
     992        m_pActionRemove = m_pToolBarFilters->addAction(UIIconPool::iconSet(":/usb_remove_16px.png",
    1000993                                                                           ":/usb_remove_disabled_16px.png"),
    1001994                                                       QString(), this, SLOT(sltRemoveFilter()));
    1002         AssertPtrReturnVoid(m_pActionRemove);
    1003         {
    1004             /* Configure action: */
     995        if (m_pActionRemove)
    1005996            m_pActionRemove->setShortcuts(QList<QKeySequence>() << QKeySequence("Del") << QKeySequence("Ctrl+R"));
    1006         }
    1007 
    1008         /* Create 'Move USB Filter Up' action: */
    1009         m_pActionMoveUp = m_pFiltersToolBar->addAction(UIIconPool::iconSet(":/usb_moveup_16px.png",
     997
     998        /* Prepare 'Move USB Filter Up' action: */
     999        m_pActionMoveUp = m_pToolBarFilters->addAction(UIIconPool::iconSet(":/usb_moveup_16px.png",
    10101000                                                                           ":/usb_moveup_disabled_16px.png"),
    10111001                                                       QString(), this, SLOT(sltMoveFilterUp()));
    1012         AssertPtrReturnVoid(m_pActionMoveUp);
    1013         {
    1014             /* Configure action: */
     1002        if (m_pActionMoveUp)
    10151003            m_pActionMoveUp->setShortcuts(QList<QKeySequence>() << QKeySequence("Alt+Up") << QKeySequence("Ctrl+Up"));
    1016         }
    1017 
    1018         /* Create 'Move USB Filter Down' action: */
    1019         m_pActionMoveDown = m_pFiltersToolBar->addAction(UIIconPool::iconSet(":/usb_movedown_16px.png",
     1004
     1005        /* Prepare 'Move USB Filter Down' action: */
     1006        m_pActionMoveDown = m_pToolBarFilters->addAction(UIIconPool::iconSet(":/usb_movedown_16px.png",
    10201007                                                                             ":/usb_movedown_disabled_16px.png"),
    10211008                                                         QString(), this, SLOT(sltMoveFilterDown()));
    1022         AssertPtrReturnVoid(m_pActionMoveDown);
    1023         {
    1024             /* Configure action: */
     1009        if (m_pActionMoveDown)
    10251010            m_pActionMoveDown->setShortcuts(QList<QKeySequence>() << QKeySequence("Alt+Down") << QKeySequence("Ctrl+Down"));
    1026         }
     1011
     1012        /* Prepare USB devices menu: */
     1013        m_pMenuUSBDevices = new VBoxUSBMenu(this);
     1014
     1015        m_pLayoutFilters->addWidget(m_pToolBarFilters);
    10271016    }
    10281017}
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h

    r85791 r85953  
    2727/* Forward declarations: */
    2828class QCheckBox;
     29class QHBoxLayout;
    2930class QRadioButton;
     31class QVBoxLayout;
    3032class QTreeWidgetItem;
    3133class QILabelSeparator;
     
    120122    /** Prepares widgets. */
    121123    void prepareWidgets();
    122     /** Prepares USB filters tree. */
    123     void prepareFiltersTree();
    124     /** Prepares USB filters toolbar. */
     124    /** Prepares radio-buttons. */
     125    void prepareRadioButtons();
     126    /** Prepares filters tree-widget. */
     127    void prepareFiltersTreeWidget();
     128    /** Prepares filters toolbar. */
    125129    void prepareFiltersToolbar();
    126130    /** Prepares connections. */
     
    143147    bool createUSBFilter(CUSBDeviceFilters &comFiltersObject, int iPosition, const UIDataSettingsMachineUSBFilter &filterData);
    144148
    145     /** Holds the toolbar instance. */
    146     UIToolBar   *m_pToolBar;
    147     /** Holds the New action instance. */
    148     QAction     *m_pActionNew;
    149     /** Holds the Add action instance. */
    150     QAction     *m_pActionAdd;
    151     /** Holds the Edit action instance. */
    152     QAction     *m_pActionEdit;
    153     /** Holds the Remove action instance. */
    154     QAction     *m_pActionRemove;
    155     /** Holds the Move Up action instance. */
    156     QAction     *m_pActionMoveUp;
    157     /** Holds the Move Down action instance. */
    158     QAction     *m_pActionMoveDown;
    159     /** Holds the USB devices menu instance. */
    160     VBoxUSBMenu *m_pMenuUSBDevices;
    161 
    162149    /** Holds the "New Filter %1" translation tag. */
    163150    QString  m_strTrUSBFilterName;
     
    165152    /** Holds the page data cache instance. */
    166153    UISettingsCacheMachineUSB *m_pCache;
     154
    167155    /** @name Widgets
    168156     * @{ */
    169        QCheckBox *m_pCheckBoxUSB;
    170        QITreeWidget *m_pTreeWidgetFilters;
    171        QRadioButton *m_pRadioButtonUSB1;
    172        QRadioButton *m_pRadioButtonUSB2;
    173        QRadioButton *m_pRadioButtonUSB3;
    174        QILabelSeparator *m_pCheckBoxUSBFilters;
    175        QWidget *m_pUSBChild;
    176        UIToolBar *m_pFiltersToolBar;
     157        /** Holds the USB check-box instance. */
     158        QCheckBox        *m_pCheckBoxUSB;
     159        /** Holds the USB settings widget instance. */
     160        QWidget          *m_pWidgetUSBSettings;
     161        /** Holds the USB settings widget layout instance. */
     162        QVBoxLayout      *m_pLayoutUSBSettings;
     163        /** Holds the USB1 radio-button instance. */
     164        QRadioButton     *m_pRadioButtonUSB1;
     165        /** Holds the USB2 radio-button instance. */
     166        QRadioButton     *m_pRadioButtonUSB2;
     167        /** Holds the USB3 radio-button instance. */
     168        QRadioButton     *m_pRadioButtonUSB3;
     169        /** Holds the USB widget separator instance. */
     170        QILabelSeparator *m_pLabelSeparatorFilters;
     171        /** Holds the USB filters layout instance. */
     172        QHBoxLayout      *m_pLayoutFilters;
     173        /** Holds the USB filters tree-widget instance. */
     174        QITreeWidget     *m_pTreeWidgetFilters;
     175        /** Holds the USB filters toolbar instance. */
     176        UIToolBar        *m_pToolBarFilters;
     177        /** Holds the New action instance. */
     178        QAction          *m_pActionNew;
     179        /** Holds the Add action instance. */
     180        QAction          *m_pActionAdd;
     181        /** Holds the Edit action instance. */
     182        QAction          *m_pActionEdit;
     183        /** Holds the Remove action instance. */
     184        QAction          *m_pActionRemove;
     185        /** Holds the Move Up action instance. */
     186        QAction          *m_pActionMoveUp;
     187        /** Holds the Move Down action instance. */
     188        QAction          *m_pActionMoveDown;
     189        /** Holds the USB devices menu instance. */
     190        VBoxUSBMenu      *m_pMenuUSBDevices;
    177191    /** @} */
    178192};
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