VirtualBox

Changeset 95286 in vbox for trunk/src


Ignore:
Timestamp:
Jun 15, 2022 1:30:01 PM (3 years ago)
Author:
vboxsync
Message:

FE/Qt/Ds: bugref:6899: Machine settings: USB page accessibility improvements (part 4); Moving USB settings stuff into separate UIUSBSettingsEditor widget.

Location:
trunk/src/VBox/Frontends/VirtualBox
Files:
4 edited
2 copied

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk

    r95277 r95286  
    936936        src/settings/editors/UIUSBFilterDetailsEditor.h \
    937937        src/settings/editors/UIUSBFiltersEditor.h \
     938        src/settings/editors/UIUSBSettingsEditor.h \
    938939        src/settings/editors/UIVideoMemoryEditor.h \
    939940        src/settings/editors/UIVirtualCPUEditor.h \
     
    15151516        src/settings/editors/UIUSBFilterDetailsEditor.cpp \
    15161517        src/settings/editors/UIUSBFiltersEditor.cpp \
     1518        src/settings/editors/UIUSBSettingsEditor.cpp \
    15171519        src/settings/editors/UIVideoMemoryEditor.cpp \
    15181520        src/settings/editors/UIVirtualCPUEditor.cpp \
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUSBSettingsEditor.cpp

    r95282 r95286  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIAudioSettingsEditor class implementation.
     3 * VBox Qt GUI - UIUSBSettingsEditor class implementation.
    44 */
    55
     
    2222
    2323/* GUI includes: */
    24 #include "UIAudioControllerEditor.h"
    25 #include "UIAudioFeaturesEditor.h"
    26 #include "UIAudioHostDriverEditor.h"
    27 #include "UIAudioSettingsEditor.h"
     24#include "UIUSBControllerEditor.h"
     25#include "UIUSBSettingsEditor.h"
    2826
    2927
    30 UIAudioSettingsEditor::UIAudioSettingsEditor(QWidget *pParent /* = 0 */)
     28UIUSBSettingsEditor::UIUSBSettingsEditor(QWidget *pParent /* = 0 */)
    3129    : QIWithRetranslateUI<QWidget>(pParent)
    3230    , m_fFeatureEnabled(false)
    3331    , m_pCheckboxFeature(0)
    3432    , m_pWidgetSettings(0)
    35     , m_pEditorAudioHostDriver(0)
    36     , m_pEditorAudioController(0)
    37     , m_pEditorAudioFeatures(0)
     33    , m_pEditorController(0)
     34    , m_pEditorFilters(0)
    3835{
    3936    prepare();
    4037}
    4138
    42 void UIAudioSettingsEditor::setFeatureEnabled(bool fEnabled)
     39void UIUSBSettingsEditor::setFeatureEnabled(bool fEnabled)
    4340{
    4441    if (m_fFeatureEnabled != fEnabled)
     
    5047}
    5148
    52 bool UIAudioSettingsEditor::isFeatureEnabled() const
     49bool UIUSBSettingsEditor::isFeatureEnabled() const
    5350{
    5451    return m_pCheckboxFeature ? m_pCheckboxFeature->isChecked() : m_fFeatureEnabled;
    5552}
    5653
    57 void UIAudioSettingsEditor::setFeatureAvailable(bool fAvailable)
     54void UIUSBSettingsEditor::setFeatureAvailable(bool fAvailable)
    5855{
    5956    if (m_pCheckboxFeature)
     
    6158}
    6259
    63 void UIAudioSettingsEditor::setHostDriverType(KAudioDriverType enmType)
     60void UIUSBSettingsEditor::setUsbControllerType(KUSBControllerType enmType)
    6461{
    65     if (m_pEditorAudioHostDriver)
    66         m_pEditorAudioHostDriver->setValue(enmType);
     62    if (m_pEditorController)
     63        m_pEditorController->setValue(enmType);
    6764}
    6865
    69 KAudioDriverType UIAudioSettingsEditor::hostDriverType() const
     66KUSBControllerType UIUSBSettingsEditor::usbControllerType() const
    7067{
    71     return m_pEditorAudioHostDriver ? m_pEditorAudioHostDriver->value() : KAudioDriverType_Max;
     68    return m_pEditorController ? m_pEditorController->value() : KUSBControllerType_Max;
    7269}
    7370
    74 void UIAudioSettingsEditor::setHostDriverOptionAvailable(bool fAvailable)
     71void UIUSBSettingsEditor::setUsbControllerOptionAvailable(bool fAvailable)
    7572{
    76     if (m_pEditorAudioHostDriver)
    77         m_pEditorAudioHostDriver->setEnabled(fAvailable);
     73    if (m_pEditorController)
     74        m_pEditorController->setEnabled(fAvailable);
    7875}
    7976
    80 void UIAudioSettingsEditor::setControllerType(KAudioControllerType enmType)
     77void UIUSBSettingsEditor::setUsbFilters(const QList<UIDataUSBFilter> &filters)
    8178{
    82     if (m_pEditorAudioController)
    83         m_pEditorAudioController->setValue(enmType);
     79    if (m_pEditorFilters)
     80        m_pEditorFilters->setValue(filters);
    8481}
    8582
    86 KAudioControllerType UIAudioSettingsEditor::controllerType() const
     83QList<UIDataUSBFilter> UIUSBSettingsEditor::usbFilters() const
    8784{
    88     return m_pEditorAudioController ? m_pEditorAudioController->value() : KAudioControllerType_Max;
     85    return m_pEditorFilters ? m_pEditorFilters->value() : QList<UIDataUSBFilter>();
    8986}
    9087
    91 void UIAudioSettingsEditor::setControllerOptionAvailable(bool fAvailable)
     88void UIUSBSettingsEditor::setUsbFiltersOptionAvailable(bool fAvailable)
    9289{
    93     if (m_pEditorAudioController)
    94         m_pEditorAudioController->setEnabled(fAvailable);
     90    if (m_pEditorFilters)
     91        m_pEditorFilters->setEnabled(fAvailable);
    9592}
    9693
    97 void UIAudioSettingsEditor::setEnableOutput(bool fConnected)
    98 {
    99     if (m_pEditorAudioFeatures)
    100         m_pEditorAudioFeatures->setEnableOutput(fConnected);
    101 }
    102 
    103 bool UIAudioSettingsEditor::outputEnabled() const
    104 {
    105     return m_pEditorAudioFeatures ? m_pEditorAudioFeatures->outputEnabled() : false;
    106 }
    107 
    108 void UIAudioSettingsEditor::setEnableInput(bool fConnected)
    109 {
    110     if (m_pEditorAudioFeatures)
    111         m_pEditorAudioFeatures->setEnableInput(fConnected);
    112 }
    113 
    114 bool UIAudioSettingsEditor::inputEnabled() const
    115 {
    116     return m_pEditorAudioFeatures ? m_pEditorAudioFeatures->inputEnabled() : false;
    117 }
    118 
    119 void UIAudioSettingsEditor::setFeatureOptionsAvailable(bool fAvailable)
    120 {
    121     if (m_pEditorAudioFeatures)
    122         m_pEditorAudioFeatures->setEnabled(fAvailable);
    123 }
    124 
    125 void UIAudioSettingsEditor::retranslateUi()
     94void UIUSBSettingsEditor::retranslateUi()
    12695{
    12796    if (m_pCheckboxFeature)
    12897    {
    129         m_pCheckboxFeature->setText(tr("Enable &Audio"));
    130         m_pCheckboxFeature->setToolTip(tr("When checked, a virtual PCI audio card will be plugged into the virtual machine "
    131                                           "and will communicate with the host audio system using the specified driver."));
     98        m_pCheckboxFeature->setText(tr("Enable &USB Controller"));
     99        m_pCheckboxFeature->setToolTip(tr("When checked, enables the virtual USB controller of this machine."));
    132100    }
    133 
    134     /* These editors have own labels, but we want them to be properly layouted according to each other: */
    135     int iMinimumLayoutHint = 0;
    136     if (m_pEditorAudioHostDriver)
    137         iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorAudioHostDriver->minimumLabelHorizontalHint());
    138     if (m_pEditorAudioController)
    139         iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorAudioController->minimumLabelHorizontalHint());
    140     if (m_pEditorAudioFeatures)
    141         iMinimumLayoutHint = qMax(iMinimumLayoutHint, m_pEditorAudioFeatures->minimumLabelHorizontalHint());
    142     if (m_pEditorAudioHostDriver)
    143         m_pEditorAudioHostDriver->setMinimumLayoutIndent(iMinimumLayoutHint);
    144     if (m_pEditorAudioController)
    145         m_pEditorAudioController->setMinimumLayoutIndent(iMinimumLayoutHint);
    146     if (m_pEditorAudioFeatures)
    147         m_pEditorAudioFeatures->setMinimumLayoutIndent(iMinimumLayoutHint);
    148101}
    149102
    150 void UIAudioSettingsEditor::sltHandleFeatureToggled()
     103void UIUSBSettingsEditor::sltHandleFeatureToggled()
    151104{
    152105    /* Update widget availability: */
     
    154107}
    155108
    156 void UIAudioSettingsEditor::prepare()
     109void UIUSBSettingsEditor::prepare()
    157110{
    158111    /* Prepare stuff: */
     
    167120}
    168121
    169 void UIAudioSettingsEditor::prepareWidgets()
     122void UIUSBSettingsEditor::prepareWidgets()
    170123{
    171124    /* Prepare main layout: */
     
    190143        {
    191144            /* Prepare settings layout: */
    192             QVBoxLayout *pLayoutAudioSettings = new QVBoxLayout(m_pWidgetSettings);
    193             if (pLayoutAudioSettings)
     145            QVBoxLayout *pLayoutSettings = new QVBoxLayout(m_pWidgetSettings);
     146            if (pLayoutSettings)
    194147            {
    195                 pLayoutAudioSettings->setContentsMargins(0, 0, 0, 0);
     148                pLayoutSettings->setContentsMargins(0, 0, 0, 0);
    196149
    197                 /* Prepare host driver editor: */
    198                 m_pEditorAudioHostDriver = new UIAudioHostDriverEditor(m_pWidgetSettings);
    199                 if (m_pEditorAudioHostDriver)
    200                     pLayoutAudioSettings->addWidget(m_pEditorAudioHostDriver);
     150                /* Prepare USB controller editor: */
     151                m_pEditorController = new UIUSBControllerEditor(m_pWidgetSettings);
     152                if (m_pEditorController)
     153                    pLayoutSettings->addWidget(m_pEditorController);
    201154
    202                 /* Prepare controller editor: */
    203                 m_pEditorAudioController = new UIAudioControllerEditor(m_pWidgetSettings);
    204                 if (m_pEditorAudioController)
    205                     pLayoutAudioSettings->addWidget(m_pEditorAudioController);
    206 
    207                 /* Prepare features editor: */
    208                 m_pEditorAudioFeatures = new UIAudioFeaturesEditor(m_pWidgetSettings);
    209                 if (m_pEditorAudioFeatures)
    210                     pLayoutAudioSettings->addWidget(m_pEditorAudioFeatures);
     155                /* Prepare USB filters editor: */
     156                m_pEditorFilters = new UIUSBFiltersEditor(m_pWidgetSettings);
     157                if (m_pEditorFilters)
     158                    pLayoutSettings->addWidget(m_pEditorFilters);
    211159            }
    212160
     
    216164}
    217165
    218 void UIAudioSettingsEditor::prepareConnections()
     166void UIUSBSettingsEditor::prepareConnections()
    219167{
    220168    if (m_pCheckboxFeature)
     169    {
    221170        connect(m_pCheckboxFeature, &QCheckBox::stateChanged,
    222                 this, &UIAudioSettingsEditor::sltHandleFeatureToggled);
     171                this, &UIUSBSettingsEditor::sltHandleFeatureToggled);
     172        connect(m_pCheckboxFeature, &QCheckBox::stateChanged,
     173                this, &UIUSBSettingsEditor::sigValueChanged);
     174    }
     175    if (m_pEditorController)
     176        connect(m_pEditorController, &UIUSBControllerEditor::sigValueChanged,
     177                this, &UIUSBSettingsEditor::sigValueChanged);
     178    if (m_pEditorFilters)
     179        connect(m_pEditorFilters, &UIUSBFiltersEditor::sigValueChanged,
     180                this, &UIUSBSettingsEditor::sigValueChanged);
    223181}
    224182
    225 void UIAudioSettingsEditor::updateFeatureAvailability()
     183void UIUSBSettingsEditor::updateFeatureAvailability()
    226184{
    227185    m_pWidgetSettings->setEnabled(m_pCheckboxFeature->isChecked());
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUSBSettingsEditor.h

    r95282 r95286  
    11/* $Id$ */
    22/** @file
    3  * VBox Qt GUI - UIAudioSettingsEditor class declaration.
     3 * VBox Qt GUI - UIUSBSettingsEditor class declaration.
    44 */
    55
     
    1616 */
    1717
    18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UIAudioSettingsEditor_h
    19 #define FEQT_INCLUDED_SRC_settings_editors_UIAudioSettingsEditor_h
     18#ifndef FEQT_INCLUDED_SRC_settings_editors_UIUSBSettingsEditor_h
     19#define FEQT_INCLUDED_SRC_settings_editors_UIUSBSettingsEditor_h
    2020#ifndef RT_WITHOUT_PRAGMA_ONCE
    2121# pragma once
     
    2828#include "QIWithRetranslateUI.h"
    2929#include "UILibraryDefs.h"
    30 #include "UIPortForwardingTable.h"
     30#include "UIUSBFiltersEditor.h"
    3131
    3232/* COM includes: */
     
    3535/* Forward declarations: */
    3636class QCheckBox;
    37 class UIAudioControllerEditor;
    38 class UIAudioFeaturesEditor;
    39 class UIAudioHostDriverEditor;
     37class UIUSBControllerEditor;
    4038
    41 /** QWidget subclass used as a audio settings editor. */
    42 class SHARED_LIBRARY_STUFF UIAudioSettingsEditor : public QIWithRetranslateUI<QWidget>
     39/** QWidget subclass used as a USB settings editor. */
     40class SHARED_LIBRARY_STUFF UIUSBSettingsEditor : public QIWithRetranslateUI<QWidget>
    4341{
    4442    Q_OBJECT;
     43
     44signals:
     45
     46    /** Notifies listeners about value change. */
     47    void sigValueChanged();
    4548
    4649public:
    4750
    4851    /** Constructs editor passing @a pParent to the base-class. */
    49     UIAudioSettingsEditor(QWidget *pParent = 0);
     52    UIUSBSettingsEditor(QWidget *pParent = 0);
    5053
    5154    /** @name General stuff
     
    6063    /** @} */
    6164
    62     /** @name Host driver editor stuff
     65    /** @name USB controller editor stuff
    6366     * @{ */
    64         /** Defines host driver @a enmType. */
    65         void setHostDriverType(KAudioDriverType enmType);
    66         /** Returns host driver type. */
    67         KAudioDriverType hostDriverType() const;
     67        /** Defines USB controller @a enmType. */
     68        void setUsbControllerType(KUSBControllerType enmType);
     69        /** Returns USB controller type. */
     70        KUSBControllerType usbControllerType() const;
    6871
    69         /** Defines whether host driver option @a fAvailable. */
    70         void setHostDriverOptionAvailable(bool fAvailable);
     72        /** Defines whether USB controller option @a fAvailable. */
     73        void setUsbControllerOptionAvailable(bool fAvailable);
    7174    /** @} */
    7275
    73     /** @name Controller editor stuff
     76    /** @name USB filters editor stuff
    7477     * @{ */
    75         /** Defines controller @a enmType. */
    76         void setControllerType(KAudioControllerType enmValue);
    77         /** Returns controller type. */
    78         KAudioControllerType controllerType() const;
     78        /** Defines a list of USB @a filters. */
     79        void setUsbFilters(const QList<UIDataUSBFilter> &filters);
     80        /** Returns a list of USB filters. */
     81        QList<UIDataUSBFilter> usbFilters() const;
    7982
    80         /** Defines whether controller option @a fAvailable. */
    81         void setControllerOptionAvailable(bool fAvailable);
    82     /** @} */
    83 
    84     /** @name Features editor stuff
    85      * @{ */
    86         /** Defines whether 'enable output' feature in @a fOn. */
    87         void setEnableOutput(bool fOn);
    88         /** Returns 'enable output' feature value. */
    89         bool outputEnabled() const;
    90 
    91         /** Defines whether 'enable input' feature in @a fOn. */
    92         void setEnableInput(bool fOn);
    93         /** Returns 'enable input' feature value. */
    94         bool inputEnabled() const;
    95 
    96         /** Defines whether feature options @a fAvailable. */
    97         void setFeatureOptionsAvailable(bool fAvailable);
     83        /** Defines whether USB filters option @a fAvailable. */
     84        void setUsbFiltersOptionAvailable(bool fAvailable);
    9885    /** @} */
    9986
     
    129116     * @{ */
    130117        /** Holds the feature check-box instance. */
    131         QCheckBox               *m_pCheckboxFeature;
     118        QCheckBox             *m_pCheckboxFeature;
    132119        /** Holds the settings widget instance. */
    133         QWidget                 *m_pWidgetSettings;
    134         /** Holds the host driver editor instance. */
    135         UIAudioHostDriverEditor *m_pEditorAudioHostDriver;
     120        QWidget               *m_pWidgetSettings;
    136121        /** Holds the controller editor instance. */
    137         UIAudioControllerEditor *m_pEditorAudioController;
    138         /** Holds the features editor instance. */
    139         UIAudioFeaturesEditor   *m_pEditorAudioFeatures;
     122        UIUSBControllerEditor *m_pEditorController;
     123        /** Holds the filters editor instance. */
     124        UIUSBFiltersEditor    *m_pEditorFilters;
    140125    /** @} */
    141126};
    142127
    143 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UIAudioSettingsEditor_h */
     128#endif /* !FEQT_INCLUDED_SRC_settings_editors_UIUSBSettingsEditor_h */
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsSF.cpp

    r95077 r95286  
    233233        if (m_pEditorSharedFolders)
    234234            pLayout->addWidget(m_pEditorSharedFolders);
    235 
    236         pLayout->addStretch();
    237235    }
    238236}
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp

    r95277 r95286  
    3838#include "QIToolBar.h"
    3939#include "UICommon.h"
    40 #include "UIUSBControllerEditor.h"
    41 #include "UIUSBFilterDetailsEditor.h"
    4240#include "UIUSBFiltersEditor.h"
     41#include "UIUSBSettingsEditor.h"
    4342
    4443/* COM includes: */
     
    106105UIMachineSettingsUSB::UIMachineSettingsUSB()
    107106    : m_pCache(0)
    108     , m_pCheckBoxUSB(0)
    109     , m_pWidgetUSBSettings(0)
    110     , m_pEditorController(0)
    111     , m_pEditorFilters(0)
     107    , m_pEditorUsbSettings(0)
    112108{
    113109    prepare();
     
    121117bool UIMachineSettingsUSB::isUSBEnabled() const
    122118{
    123     return m_pCheckBoxUSB->isChecked();
     119    return m_pEditorUsbSettings->isFeatureEnabled();
    124120}
    125121
     
    207203
    208204    /* Load old USB data from cache: */
    209     if (m_pCheckBoxUSB)
    210         m_pCheckBoxUSB->setChecked(oldUsbData.m_fUSBEnabled);
    211     if (m_pEditorController)
    212         m_pEditorController->setValue(oldUsbData.m_enmUSBControllerType);
    213     if (m_pEditorFilters)
    214     {
     205    if (m_pEditorUsbSettings)
     206    {
     207        m_pEditorUsbSettings->setFeatureEnabled(oldUsbData.m_fUSBEnabled);
     208        m_pEditorUsbSettings->setUsbControllerType(oldUsbData.m_enmUSBControllerType);
     209
    215210        /* For each filter => load it from cache: */
    216211        QList<UIDataUSBFilter> filters;
     
    231226            filters << filter;
    232227        }
    233         m_pEditorFilters->setValue(filters);
    234     }
    235 
    236     /* Update widget availability: */
    237     if (m_pCheckBoxUSB)
    238         sltHandleUsbAdapterToggle(m_pCheckBoxUSB->isChecked());
     228        m_pEditorUsbSettings->setUsbFilters(filters);
     229    }
    239230
    240231    /* Polish page finally: */
     
    248239{
    249240    /* Sanity check: */
    250     if (   !m_pCache
    251         || !m_pEditorFilters)
     241    if (!m_pCache)
    252242        return;
    253243
     
    256246
    257247    /* Gather new USB data: */
    258     if (m_pCheckBoxUSB)
    259         newUsbData.m_fUSBEnabled = m_pCheckBoxUSB->isChecked();
    260     if (m_pEditorController)
    261         newUsbData.m_enmUSBControllerType = newUsbData.m_fUSBEnabled ? m_pEditorController->value() : KUSBControllerType_Null;
    262     if (m_pEditorFilters)
    263     {
     248    if (m_pEditorUsbSettings)
     249    {
     250        newUsbData.m_fUSBEnabled = m_pEditorUsbSettings->isFeatureEnabled();
     251        newUsbData.m_enmUSBControllerType = newUsbData.m_fUSBEnabled
     252                                          ? m_pEditorUsbSettings->usbControllerType()
     253                                          : KUSBControllerType_Null;
    264254        /* For each filter => save it to cache: */
    265         const QList<UIDataUSBFilter> filters = m_pEditorFilters->value();
     255        const QList<UIDataUSBFilter> filters = m_pEditorUsbSettings->usbFilters();
    266256        for (int iFilterIndex = 0; iFilterIndex < filters.size(); ++iFilterIndex)
    267257        {
     
    306296
    307297    /* USB 2.0/3.0 Extension Pack presence test: */
    308     if (   m_pCheckBoxUSB->isChecked()
    309         && (   m_pEditorController->value() == KUSBControllerType_EHCI
    310             || m_pEditorController->value() == KUSBControllerType_XHCI))
     298    if (   m_pEditorUsbSettings
     299        && m_pEditorUsbSettings->isFeatureEnabled()
     300        && (   m_pEditorUsbSettings->usbControllerType() == KUSBControllerType_EHCI
     301            || m_pEditorUsbSettings->usbControllerType() == KUSBControllerType_XHCI))
    311302    {
    312303        CExtPackManager extPackManager = uiCommon().virtualBox().GetExtensionPackManager();
     
    332323void UIMachineSettingsUSB::setOrderAfter(QWidget *pWidget)
    333324{
    334     setTabOrder(pWidget, m_pCheckBoxUSB);
    335     setTabOrder(m_pCheckBoxUSB, m_pEditorController);
    336     setTabOrder(m_pEditorController, m_pEditorFilters);
     325    setTabOrder(pWidget, m_pEditorUsbSettings);
    337326}
    338327
    339328void UIMachineSettingsUSB::retranslateUi()
    340329{
    341     m_pCheckBoxUSB->setToolTip(tr("When checked, enables the virtual USB controller of this machine."));
    342     m_pCheckBoxUSB->setText(tr("Enable &USB Controller"));
    343330}
    344331
     
    346333{
    347334    /* Polish USB page availability: */
    348     m_pCheckBoxUSB->setEnabled(isMachineOffline());
    349     m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && m_pCheckBoxUSB->isChecked());
    350     m_pEditorController->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked());
    351 }
    352 
    353 void UIMachineSettingsUSB::sltHandleUsbAdapterToggle(bool fEnabled)
    354 {
    355     /* Enable/disable USB children: */
    356     m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && fEnabled);
    357     m_pEditorController->setEnabled(isMachineOffline() && fEnabled);
     335    m_pEditorUsbSettings->setFeatureAvailable(isMachineOffline());
     336    m_pEditorUsbSettings->setUsbControllerOptionAvailable(isMachineOffline());
     337    m_pEditorUsbSettings->setUsbFiltersOptionAvailable(isMachineInValidMode());
    358338}
    359339
     
    375355{
    376356    /* Prepare main layout: */
    377     QGridLayout *pLayoutMain = new QGridLayout(this);
    378     if (pLayoutMain)
    379     {
    380         pLayoutMain->setRowStretch(2, 1);
    381         pLayoutMain->setColumnStretch(1, 1);
    382 
    383         /* Prepare USB check-box: */
    384         m_pCheckBoxUSB = new QCheckBox;
    385         if (m_pCheckBoxUSB)
    386             pLayoutMain->addWidget(m_pCheckBoxUSB, 0, 0, 1, 2);
    387 
    388         /* Prepare 20-px shifting spacer: */
    389         QSpacerItem *pSpacerItem = new QSpacerItem(20, 0, QSizePolicy::Fixed, QSizePolicy::Minimum);
    390         if (pSpacerItem)
    391             pLayoutMain->addItem(pSpacerItem, 1, 0);
    392 
    393         /* Prepare USB settings widget: */
    394         m_pWidgetUSBSettings = new QWidget(this);
    395         if (m_pWidgetUSBSettings)
    396         {
    397             /* Prepare USB settings widget layout: */
    398             QVBoxLayout *pLayoutUSBSettings = new QVBoxLayout(m_pWidgetUSBSettings);
    399             if (pLayoutUSBSettings)
    400             {
    401                 pLayoutUSBSettings->setContentsMargins(0, 0, 0, 0);
    402 
    403                 /* Prepare USB controller editor: */
    404                 m_pEditorController = new UIUSBControllerEditor(m_pWidgetUSBSettings);
    405                 if (m_pEditorController)
    406                     pLayoutUSBSettings->addWidget(m_pEditorController);
    407 
    408                 /* Prepare USB filters editor: */
    409                 m_pEditorFilters = new UIUSBFiltersEditor(m_pWidgetUSBSettings);
    410                 if (m_pEditorFilters)
    411                     pLayoutUSBSettings->addWidget(m_pEditorFilters);
    412             }
    413 
    414             pLayoutMain->addWidget(m_pWidgetUSBSettings, 1, 1, 1, 2);
    415         }
     357    QVBoxLayout *pLayout = new QVBoxLayout(this);
     358    if (pLayout)
     359    {
     360        /* Prepare settings editor: */
     361        m_pEditorUsbSettings = new UIUSBSettingsEditor(this);
     362        if (m_pEditorUsbSettings)
     363            pLayout->addWidget(m_pEditorUsbSettings);
    416364    }
    417365}
     
    420368{
    421369    /* Configure validation connections: */
    422     connect(m_pCheckBoxUSB, &QCheckBox::stateChanged,
     370    connect(m_pEditorUsbSettings, &UIUSBSettingsEditor::sigValueChanged,
    423371            this, &UIMachineSettingsUSB::revalidate);
    424     connect(m_pEditorController, &UIUSBControllerEditor::sigValueChanged,
    425             this, &UIMachineSettingsUSB::revalidate);
    426     connect(m_pEditorFilters, &UIUSBFiltersEditor::sigValueChanged,
    427             this, &UIMachineSettingsUSB::revalidate);
    428 
    429     /* Configure widget connections: */
    430     connect(m_pCheckBoxUSB, &QCheckBox::toggled,
    431             this, &UIMachineSettingsUSB::sltHandleUsbAdapterToggle);
    432372}
    433373
  • trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h

    r95277 r95286  
    2626
    2727/* Forward declarations: */
    28 class QCheckBox;
    29 class UIUSBControllerEditor;
    30 class UIUSBFiltersEditor;
     28class UIUSBSettingsEditor;
    3129struct UIDataSettingsMachineUSB;
    3230struct UIDataSettingsMachineUSBFilter;
     
    8078    virtual void polishPage() RT_OVERRIDE;
    8179
    82 private slots:
    83 
    84     /** Handles whether USB adapted is @a fEnabled. */
    85     void sltHandleUsbAdapterToggle(bool fEnabled);
    86 
    8780private:
    8881
     
    112105    /** @name Widgets
    113106     * @{ */
    114         /** Holds the USB check-box instance. */
    115         QCheckBox             *m_pCheckBoxUSB;
    116         /** Holds the USB settings widget instance. */
    117         QWidget               *m_pWidgetUSBSettings;
    118         /** Holds the USB controller editor instance. */
    119         UIUSBControllerEditor *m_pEditorController;
    120         /** Holds the USB filters editor instance. */
    121         UIUSBFiltersEditor    *m_pEditorFilters;
     107        /** Holds the USB settings editor instance. */
     108        UIUSBSettingsEditor *m_pEditorUsbSettings;
    122109    /** @} */
    123110};
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