Changeset 95245 in vbox
- Timestamp:
- Jun 10, 2022 9:05:10 AM (3 years ago)
- svn:sync-xref-src-repo-rev:
- 151792
- Location:
- trunk/src/VBox/Frontends/VirtualBox
- Files:
-
- 3 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/Makefile.kmk
r95222 r95245 933 933 src/settings/editors/UIShortcutConfigurationEditor.h \ 934 934 src/settings/editors/UISnapshotFolderEditor.h \ 935 src/settings/editors/UIUSBControllerEditor.h \ 935 936 src/settings/editors/UIVideoMemoryEditor.h \ 936 937 src/settings/editors/UIVirtualCPUEditor.h \ … … 1510 1511 src/settings/editors/UIShortcutConfigurationEditor.cpp \ 1511 1512 src/settings/editors/UISnapshotFolderEditor.cpp \ 1513 src/settings/editors/UIUSBControllerEditor.cpp \ 1512 1514 src/settings/editors/UIVideoMemoryEditor.cpp \ 1513 1515 src/settings/editors/UIVirtualCPUEditor.cpp \ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUSBControllerEditor.cpp
r95244 r95245 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI AudioControllerEditor class implementation.3 * VBox Qt GUI - UIUSBControllerEditor class implementation. 4 4 */ 5 5 … … 17 17 18 18 /* Qt includes: */ 19 #include <QComboBox> 20 #include <QGridLayout> 21 #include <QHBoxLayout> 22 #include <QLabel> 19 #include <QButtonGroup> 20 #include <QRadioButton> 21 #include <QVBoxLayout> 23 22 24 23 /* GUI includes: */ 25 24 #include "UICommon.h" 26 #include "UIConverter.h" 27 #include "UIAudioControllerEditor.h" 25 #include "UIUSBControllerEditor.h" 28 26 29 27 /* COM includes: */ … … 31 29 32 30 33 UI AudioControllerEditor::UIAudioControllerEditor(QWidget *pParent /* = 0 */)31 UIUSBControllerEditor::UIUSBControllerEditor(QWidget *pParent /* = 0 */) 34 32 : QIWithRetranslateUI<QWidget>(pParent) 35 , m_enmValue(KAudioControllerType_Max) 36 , m_pLabel(0) 37 , m_pCombo(0) 33 , m_enmValue(KUSBControllerType_Max) 34 , m_pRadioButtonUSB1(0) 35 , m_pRadioButtonUSB2(0) 36 , m_pRadioButtonUSB3(0) 38 37 { 39 38 prepare(); 40 39 } 41 40 42 void UI AudioControllerEditor::setValue(KAudioControllerType enmValue)41 void UIUSBControllerEditor::setValue(KUSBControllerType enmValue) 43 42 { 44 43 /* Update cached value and … … 47 46 { 48 47 m_enmValue = enmValue; 49 populateCombo();48 updateButtonSet(); 50 49 } 51 50 } 52 51 53 K AudioControllerType UIAudioControllerEditor::value() const52 KUSBControllerType UIUSBControllerEditor::value() const 54 53 { 55 return m_pCombo ? m_pCombo->currentData().value<KAudioControllerType>() : m_enmValue; 54 if ( m_pRadioButtonUSB1 55 && m_pRadioButtonUSB1->isChecked()) 56 return KUSBControllerType_OHCI; 57 else if ( m_pRadioButtonUSB2 58 && m_pRadioButtonUSB2->isChecked()) 59 return KUSBControllerType_EHCI; 60 else if ( m_pRadioButtonUSB3 61 && m_pRadioButtonUSB3->isChecked()) 62 return KUSBControllerType_XHCI; 63 return m_enmValue; 56 64 } 57 65 58 int UIAudioControllerEditor::minimumLabelHorizontalHint() const 66 void UIUSBControllerEditor::retranslateUi() 59 67 { 60 return m_pLabel ? m_pLabel->minimumSizeHint().width() : 0; 61 } 62 63 void UIAudioControllerEditor::setMinimumLayoutIndent(int iIndent) 64 { 65 if (m_pLayout) 66 m_pLayout->setColumnMinimumWidth(0, iIndent); 67 } 68 69 void UIAudioControllerEditor::retranslateUi() 70 { 71 if (m_pLabel) 72 m_pLabel->setText(tr("Audio &Controller:")); 73 if (m_pCombo) 68 if (m_pRadioButtonUSB1) 74 69 { 75 for (int i = 0; i < m_pCombo->count(); ++i) 76 { 77 const KAudioControllerType enmType = m_pCombo->itemData(i).value<KAudioControllerType>(); 78 m_pCombo->setItemText(i, gpConverter->toString(enmType)); 79 } 80 m_pCombo->setToolTip(tr("Selects the type of the virtual sound card. Depending on this value, " 81 "VirtualBox will provide different audio hardware to the virtual machine.")); 70 m_pRadioButtonUSB1->setText(tr("USB &1.1 (OHCI) Controller")); 71 m_pRadioButtonUSB1->setToolTip(tr("When chosen, enables the virtual USB OHCI controller of " 72 "this machine. The USB OHCI controller provides USB 1.0 support.")); 73 } 74 if (m_pRadioButtonUSB2) 75 { 76 m_pRadioButtonUSB2->setText(tr("USB &2.0 (OHCI + EHCI) Controller")); 77 m_pRadioButtonUSB2->setToolTip(tr("When chosen, enables the virtual USB OHCI and EHCI " 78 "controllers of this machine. Together they provide USB 2.0 support.")); 79 } 80 if (m_pRadioButtonUSB3) 81 { 82 m_pRadioButtonUSB3->setText(tr("USB &3.0 (xHCI) Controller")); 83 m_pRadioButtonUSB3->setToolTip(tr("When chosen, enables the virtual USB xHCI controller of " 84 "this machine. The USB xHCI controller provides USB 3.0 support.")); 82 85 } 83 86 } 84 87 85 void UI AudioControllerEditor::prepare()88 void UIUSBControllerEditor::prepare() 86 89 { 87 90 /* Create main layout: */ 88 m_pLayout = new QGridLayout(this);89 if ( m_pLayout)91 QVBoxLayout *pLayout = new QVBoxLayout(this); 92 if (pLayout) 90 93 { 91 m_pLayout->setContentsMargins(0, 0, 0, 0);94 pLayout->setContentsMargins(0, 0, 0, 0); 92 95 93 /* Create label: */94 m_pLabel = new QLabel(this);95 if ( m_pLabel)96 /* Prepare button-group: */ 97 QButtonGroup *pButtonGroup = new QButtonGroup(this); 98 if (pButtonGroup) 96 99 { 97 m_pLabel->setAlignment(Qt::AlignRight | Qt::AlignVCenter); 98 m_pLayout->addWidget(m_pLabel, 0, 0); 99 } 100 101 /* Create combo layout: */ 102 QHBoxLayout *pComboLayout = new QHBoxLayout; 103 if (pComboLayout) 104 { 105 /* Create combo: */ 106 m_pCombo = new QComboBox(this); 107 if (m_pCombo) 100 /* Prepare USB1 radio-button: */ 101 m_pRadioButtonUSB1 = new QRadioButton(this); 102 if (m_pRadioButtonUSB1) 108 103 { 109 /* This is necessary since contents is dynamical now: */ 110 m_pCombo->setSizeAdjustPolicy(QComboBox::AdjustToContents); 111 if (m_pLabel) 112 m_pLabel->setBuddy(m_pCombo); 113 pComboLayout->addWidget(m_pCombo); 104 m_pRadioButtonUSB1->setVisible(false); 105 pLayout->addWidget(m_pRadioButtonUSB1); 106 } 107 /* Prepare USB2 radio-button: */ 108 m_pRadioButtonUSB2 = new QRadioButton(this); 109 if (m_pRadioButtonUSB2) 110 { 111 m_pRadioButtonUSB2->setVisible(false); 112 pLayout->addWidget(m_pRadioButtonUSB2); 113 } 114 /* Prepare USB3 radio-button: */ 115 m_pRadioButtonUSB3 = new QRadioButton(this); 116 if (m_pRadioButtonUSB3) 117 { 118 m_pRadioButtonUSB3->setVisible(false); 119 pLayout->addWidget(m_pRadioButtonUSB3); 114 120 } 115 121 116 /* Add stretch: */ 117 pComboLayout->addStretch(); 118 119 /* Add combo-layout into main-layout: */ 120 m_pLayout->addLayout(pComboLayout, 0, 1); 122 connect(pButtonGroup, static_cast<void(QButtonGroup::*)(QAbstractButton*)>(&QButtonGroup::buttonClicked), 123 this, &UIUSBControllerEditor::sigValueChanged); 121 124 } 122 125 } 123 126 124 /* Populate combo: */125 populateCombo();127 /* Update button set: */ 128 updateButtonSet(); 126 129 127 130 /* Apply language settings: */ … … 129 132 } 130 133 131 void UI AudioControllerEditor::populateCombo()134 void UIUSBControllerEditor::updateButtonSet() 132 135 { 133 if (m_pCombo) 136 /* Load currently supported types: */ 137 CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties(); 138 m_supportedValues = comProperties.GetSupportedUSBControllerTypes(); 139 140 /* Make sure requested value if sane is present as well: */ 141 if ( m_enmValue != KUSBControllerType_Max 142 && !m_supportedValues.contains(m_enmValue)) 143 m_supportedValues.prepend(m_enmValue); 144 145 /* Update visibility for all values: */ 146 if (m_pRadioButtonUSB1) 147 m_pRadioButtonUSB1->setVisible(m_supportedValues.contains(KUSBControllerType_OHCI)); 148 if (m_pRadioButtonUSB2) 149 m_pRadioButtonUSB2->setVisible(m_supportedValues.contains(KUSBControllerType_EHCI)); 150 if (m_pRadioButtonUSB3) 151 m_pRadioButtonUSB3->setVisible(m_supportedValues.contains(KUSBControllerType_XHCI)); 152 153 /* Look for proper button to choose: */ 154 switch (m_enmValue) 134 155 { 135 /* Clear combo first of all: */ 136 m_pCombo->clear(); 137 138 /* Load currently supported audio driver types: */ 139 CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties(); 140 m_supportedValues = comProperties.GetSupportedAudioControllerTypes(); 141 142 /* Make sure requested value if sane is present as well: */ 143 if ( m_enmValue != KAudioControllerType_Max 144 && !m_supportedValues.contains(m_enmValue)) 145 m_supportedValues.prepend(m_enmValue); 146 147 /* Update combo with all the supported values: */ 148 foreach (const KAudioControllerType &enmType, m_supportedValues) 149 m_pCombo->addItem(QString(), QVariant::fromValue(enmType)); 150 151 /* Look for proper index to choose: */ 152 const int iIndex = m_pCombo->findData(QVariant::fromValue(m_enmValue)); 153 if (iIndex != -1) 154 m_pCombo->setCurrentIndex(iIndex); 155 156 /* Retranslate finally: */ 157 retranslateUi(); 156 default: 157 case KUSBControllerType_OHCI: 158 { 159 if (m_pRadioButtonUSB1) 160 m_pRadioButtonUSB1->setChecked(true); 161 break; 162 } 163 case KUSBControllerType_EHCI: 164 { 165 if (m_pRadioButtonUSB2) 166 m_pRadioButtonUSB2->setChecked(true); 167 break; 168 } 169 case KUSBControllerType_XHCI: 170 { 171 if (m_pRadioButtonUSB3) 172 m_pRadioButtonUSB3->setChecked(true); 173 break; 174 } 158 175 } 159 176 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/editors/UIUSBControllerEditor.h
r95244 r95245 1 1 /* $Id$ */ 2 2 /** @file 3 * VBox Qt GUI - UI AudioControllerEditor class declaration.3 * VBox Qt GUI - UIUSBControllerEditor class declaration. 4 4 */ 5 5 … … 16 16 */ 17 17 18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UI AudioControllerEditor_h19 #define FEQT_INCLUDED_SRC_settings_editors_UI AudioControllerEditor_h18 #ifndef FEQT_INCLUDED_SRC_settings_editors_UIUSBControllerEditor_h 19 #define FEQT_INCLUDED_SRC_settings_editors_UIUSBControllerEditor_h 20 20 #ifndef RT_WITHOUT_PRAGMA_ONCE 21 21 # pragma once … … 33 33 34 34 /* Forward declarations: */ 35 class QComboBox; 36 class QGridLayout; 37 class QLabel; 35 class QRadioButton; 38 36 39 /** QWidget subclass used as a n audiocontroller editor. */40 class SHARED_LIBRARY_STUFF UI AudioControllerEditor : public QIWithRetranslateUI<QWidget>37 /** QWidget subclass used as a USB controller editor. */ 38 class SHARED_LIBRARY_STUFF UIUSBControllerEditor : public QIWithRetranslateUI<QWidget> 41 39 { 42 40 Q_OBJECT; 41 42 signals: 43 44 /** Notifies listeners about value change. */ 45 void sigValueChanged(); 43 46 44 47 public: 45 48 46 49 /** Constructs editor passing @a pParent to the base-class. */ 47 UI AudioControllerEditor(QWidget *pParent = 0);50 UIUSBControllerEditor(QWidget *pParent = 0); 48 51 49 52 /** Defines editor @a enmValue. */ 50 void setValue(K AudioControllerType enmValue);53 void setValue(KUSBControllerType enmValue); 51 54 /** Returns editor value. */ 52 K AudioControllerType value() const;55 KUSBControllerType value() const; 53 56 54 57 /** Returns the vector of supported values. */ 55 QVector<KAudioControllerType> supportedValues() const { return m_supportedValues; } 56 57 /** Returns minimum layout hint. */ 58 int minimumLabelHorizontalHint() const; 59 /** Defines minimum layout @a iIndent. */ 60 void setMinimumLayoutIndent(int iIndent); 58 QVector<KUSBControllerType> supportedValues() const { return m_supportedValues; } 61 59 62 60 protected: … … 69 67 /** Prepares all. */ 70 68 void prepare(); 71 /** Populates combo. */ 72 void populateCombo(); 69 70 /** Updates button set. */ 71 void updateButtonSet(); 73 72 74 73 /** Holds the value to be selected. */ 75 K AudioControllerType m_enmValue;74 KUSBControllerType m_enmValue; 76 75 77 76 /** Holds the vector of supported values. */ 78 QVector<K AudioControllerType> m_supportedValues;77 QVector<KUSBControllerType> m_supportedValues; 79 78 80 /** Holds the main layoutinstance. */81 Q GridLayout *m_pLayout;82 /** Holds the labelinstance. */83 Q Label *m_pLabel;84 /** Holds the comboinstance. */85 Q ComboBox *m_pCombo;79 /** Holds the USB1 radio-button instance. */ 80 QRadioButton *m_pRadioButtonUSB1; 81 /** Holds the USB2 radio-button instance. */ 82 QRadioButton *m_pRadioButtonUSB2; 83 /** Holds the USB3 radio-button instance. */ 84 QRadioButton *m_pRadioButtonUSB3; 86 85 }; 87 86 88 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UI AudioControllerEditor_h */87 #endif /* !FEQT_INCLUDED_SRC_settings_editors_UIUSBControllerEditor_h */ -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.cpp
r94667 r95245 40 40 #include "QIToolBar.h" 41 41 #include "UICommon.h" 42 #include "UIUSBControllerEditor.h" 42 43 43 44 /* COM includes: */ … … 136 137 UIDataSettingsMachineUSB() 137 138 : m_fUSBEnabled(false) 138 , m_ USBControllerType(KUSBControllerType_Null)139 , m_enmUSBControllerType(KUSBControllerType_Null) 139 140 {} 140 141 … … 144 145 return true 145 146 && (m_fUSBEnabled == other.m_fUSBEnabled) 146 && (m_ USBControllerType == other.m_USBControllerType)147 && (m_enmUSBControllerType == other.m_enmUSBControllerType) 147 148 ; 148 149 } … … 154 155 155 156 /** Holds whether the USB is enabled. */ 156 bool m_fUSBEnabled;157 bool m_fUSBEnabled; 157 158 /** Holds the USB controller type. */ 158 KUSBControllerType m_USBControllerType;159 KUSBControllerType m_enmUSBControllerType; 159 160 }; 160 161 … … 337 338 , m_pCheckBoxUSB(0) 338 339 , m_pWidgetUSBSettings(0) 339 , m_pRadioButtonUSB1(0) 340 , m_pRadioButtonUSB2(0) 341 , m_pRadioButtonUSB3(0) 340 , m_pEditorController(0) 342 341 , m_pLabelSeparatorFilters(0) 343 342 , m_pLayoutFilters(0) … … 352 351 , m_pMenuUSBDevices(0) 353 352 { 354 /* Prepare: */355 353 prepare(); 356 354 } … … 358 356 UIMachineSettingsUSB::~UIMachineSettingsUSB() 359 357 { 360 /* Cleanup: */361 358 cleanup(); 362 359 } … … 389 386 /* Gather old USB data: */ 390 387 oldUsbData.m_fUSBEnabled = !m_machine.GetUSBControllers().isEmpty(); 391 oldUsbData.m_ USBControllerType = m_machine.GetUSBControllerCountByType(KUSBControllerType_XHCI) > 0 ? KUSBControllerType_XHCI :392 m_machine.GetUSBControllerCountByType(KUSBControllerType_EHCI) > 0 ? KUSBControllerType_EHCI :393 m_machine.GetUSBControllerCountByType(KUSBControllerType_OHCI) > 0 ? KUSBControllerType_OHCI :394 KUSBControllerType_Null;388 oldUsbData.m_enmUSBControllerType = m_machine.GetUSBControllerCountByType(KUSBControllerType_XHCI) > 0 ? KUSBControllerType_XHCI 389 : m_machine.GetUSBControllerCountByType(KUSBControllerType_EHCI) > 0 ? KUSBControllerType_EHCI 390 : m_machine.GetUSBControllerCountByType(KUSBControllerType_OHCI) > 0 ? KUSBControllerType_OHCI 391 : KUSBControllerType_Null; 395 392 396 393 /* Check whether controller is valid: */ … … 447 444 const UIDataSettingsMachineUSB &oldUsbData = m_pCache->base(); 448 445 449 /* Load currently supported USB controllers: */450 CSystemProperties comProperties = uiCommon().virtualBox().GetSystemProperties();451 QVector<KUSBControllerType> supportedTypes = comProperties.GetSupportedUSBControllerTypes();452 /* Take currently requested type into account if it's sane: */453 if (!supportedTypes.contains(oldUsbData.m_USBControllerType) && oldUsbData.m_USBControllerType != KUSBControllerType_Null)454 supportedTypes.prepend(oldUsbData.m_USBControllerType);455 456 /* Adjust radio-button visibility: */457 if (m_pRadioButtonUSB1)458 m_pRadioButtonUSB1->setVisible(supportedTypes.contains(KUSBControllerType_OHCI));459 if (m_pRadioButtonUSB2)460 m_pRadioButtonUSB2->setVisible(supportedTypes.contains(KUSBControllerType_EHCI));461 if (m_pRadioButtonUSB3)462 m_pRadioButtonUSB3->setVisible(supportedTypes.contains(KUSBControllerType_XHCI));463 464 446 /* Load old USB data from cache: */ 465 447 if (m_pCheckBoxUSB) 466 448 m_pCheckBoxUSB->setChecked(oldUsbData.m_fUSBEnabled); 467 switch (oldUsbData.m_USBControllerType) 468 { 469 default: 470 case KUSBControllerType_OHCI: 471 { 472 if (m_pRadioButtonUSB1) 473 m_pRadioButtonUSB1->setChecked(true); 474 break; 475 } 476 case KUSBControllerType_EHCI: 477 { 478 if (m_pRadioButtonUSB2) 479 m_pRadioButtonUSB2->setChecked(true); 480 break; 481 } 482 case KUSBControllerType_XHCI: 483 { 484 if (m_pRadioButtonUSB3) 485 m_pRadioButtonUSB3->setChecked(true); 486 break; 487 } 488 } 449 if (m_pEditorController) 450 m_pEditorController->setValue(oldUsbData.m_enmUSBControllerType); 489 451 490 452 /* For each filter => load it from cache: */ … … 517 479 if (m_pCheckBoxUSB) 518 480 newUsbData.m_fUSBEnabled = m_pCheckBoxUSB->isChecked(); 519 if (!newUsbData.m_fUSBEnabled) 520 newUsbData.m_USBControllerType = KUSBControllerType_Null; 521 else 522 { 523 if ( m_pRadioButtonUSB1 524 && m_pRadioButtonUSB1->isChecked()) 525 newUsbData.m_USBControllerType = KUSBControllerType_OHCI; 526 else if ( m_pRadioButtonUSB2 527 && m_pRadioButtonUSB2->isChecked()) 528 newUsbData.m_USBControllerType = KUSBControllerType_EHCI; 529 else if ( m_pRadioButtonUSB3 530 && m_pRadioButtonUSB3->isChecked()) 531 newUsbData.m_USBControllerType = KUSBControllerType_XHCI; 532 } 481 if (m_pEditorController) 482 newUsbData.m_enmUSBControllerType = newUsbData.m_fUSBEnabled ? m_pEditorController->value() : KUSBControllerType_Null; 533 483 534 484 /* For each filter: */ … … 566 516 /* USB 2.0/3.0 Extension Pack presence test: */ 567 517 if ( m_pCheckBoxUSB->isChecked() 568 && (m_pRadioButtonUSB2->isChecked() || m_pRadioButtonUSB3->isChecked())) 518 && ( m_pEditorController->value() == KUSBControllerType_EHCI 519 || m_pEditorController->value() == KUSBControllerType_XHCI)) 569 520 { 570 521 CExtPackManager extPackManager = uiCommon().virtualBox().GetExtensionPackManager(); … … 591 542 { 592 543 setTabOrder(pWidget, m_pCheckBoxUSB); 593 setTabOrder(m_pCheckBoxUSB, m_pRadioButtonUSB1); 594 setTabOrder(m_pRadioButtonUSB1, m_pRadioButtonUSB2); 595 setTabOrder(m_pRadioButtonUSB2, m_pRadioButtonUSB3); 596 setTabOrder(m_pRadioButtonUSB3, m_pTreeWidgetFilters); 544 setTabOrder(m_pCheckBoxUSB, m_pEditorController); 545 setTabOrder(m_pEditorController, m_pTreeWidgetFilters); 597 546 } 598 547 … … 601 550 m_pCheckBoxUSB->setToolTip(tr("When checked, enables the virtual USB controller of this machine.")); 602 551 m_pCheckBoxUSB->setText(tr("Enable &USB Controller")); 603 m_pRadioButtonUSB1->setToolTip(tr("When chosen, enables the virtual USB OHCI controller of "604 "this machine. The USB OHCI controller provides USB 1.0 support."));605 m_pRadioButtonUSB1->setText(tr("USB &1.1 (OHCI) Controller"));606 m_pRadioButtonUSB2->setToolTip(tr("When chosen, enables the virtual USB OHCI and EHCI "607 "controllers of this machine. Together they provide USB 2.0 support."));608 m_pRadioButtonUSB2->setText(tr("USB &2.0 (OHCI + EHCI) Controller"));609 m_pRadioButtonUSB3->setToolTip(tr("When chosen, enables the virtual USB xHCI controller of "610 "this machine. The USB xHCI controller provides USB 3.0 support."));611 m_pRadioButtonUSB3->setText(tr("USB &3.0 (xHCI) Controller"));612 552 m_pLabelSeparatorFilters->setText(tr("USB Device &Filters")); 613 553 QTreeWidgetItem *pQtreewidgetitem = m_pTreeWidgetFilters->headerItem(); … … 648 588 m_pCheckBoxUSB->setEnabled(isMachineOffline()); 649 589 m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && m_pCheckBoxUSB->isChecked()); 650 m_pRadioButtonUSB1->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked()); 651 m_pRadioButtonUSB2->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked()); 652 m_pRadioButtonUSB3->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked()); 590 m_pEditorController->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked()); 653 591 } 654 592 … … 657 595 /* Enable/disable USB children: */ 658 596 m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && fEnabled); 659 m_pRadioButtonUSB1->setEnabled(isMachineOffline() && fEnabled); 660 m_pRadioButtonUSB2->setEnabled(isMachineOffline() && fEnabled); 661 m_pRadioButtonUSB3->setEnabled(isMachineOffline() && fEnabled); 597 m_pEditorController->setEnabled(isMachineOffline() && fEnabled); 662 598 if (fEnabled) 663 599 { … … 923 859 { 924 860 /* Prepare USB settings widget layout: */ 925 m_pLayoutUSBSettings = new QVBoxLayout(m_pWidgetUSBSettings); 926 if (m_pLayoutUSBSettings) 927 { 928 m_pLayoutUSBSettings->setContentsMargins(0, 0, 0, 0); 929 930 /* Prepare USB radio-buttons: */ 931 prepareRadioButtons(); 861 QVBoxLayout *pLayoutUSBSettings = new QVBoxLayout(m_pWidgetUSBSettings); 862 if (pLayoutUSBSettings) 863 { 864 pLayoutUSBSettings->setContentsMargins(0, 0, 0, 0); 865 866 /* Prepare USB controller editor: */ 867 m_pEditorController = new UIUSBControllerEditor(m_pWidgetUSBSettings); 868 if (m_pEditorController) 869 pLayoutUSBSettings->addWidget(m_pEditorController); 932 870 933 871 /* Prepare separator: */ 934 872 m_pLabelSeparatorFilters = new QILabelSeparator(m_pWidgetUSBSettings); 935 873 if (m_pLabelSeparatorFilters) 936 m_pLayoutUSBSettings->addWidget(m_pLabelSeparatorFilters);874 pLayoutUSBSettings->addWidget(m_pLabelSeparatorFilters); 937 875 938 876 /* Prepare USB filters layout: */ … … 948 886 prepareFiltersToolbar(); 949 887 950 m_pLayoutUSBSettings->addLayout(m_pLayoutFilters);888 pLayoutUSBSettings->addLayout(m_pLayoutFilters); 951 889 } 952 890 } … … 954 892 pLayoutMain->addWidget(m_pWidgetUSBSettings, 1, 1, 1, 2); 955 893 } 956 }957 }958 959 void UIMachineSettingsUSB::prepareRadioButtons()960 {961 /* Prepare USB1 radio-button: */962 m_pRadioButtonUSB1 = new QRadioButton(m_pWidgetUSBSettings);963 if (m_pRadioButtonUSB1)964 {965 m_pRadioButtonUSB1->setVisible(false);966 m_pLayoutUSBSettings->addWidget(m_pRadioButtonUSB1);967 }968 /* Prepare USB2 radio-button: */969 m_pRadioButtonUSB2 = new QRadioButton(m_pWidgetUSBSettings);970 if (m_pRadioButtonUSB2)971 {972 m_pRadioButtonUSB2->setVisible(false);973 m_pLayoutUSBSettings->addWidget(m_pRadioButtonUSB2);974 }975 /* Prepare USB3 radio-button: */976 m_pRadioButtonUSB3 = new QRadioButton(m_pWidgetUSBSettings);977 if (m_pRadioButtonUSB3)978 {979 m_pRadioButtonUSB3->setVisible(false);980 m_pLayoutUSBSettings->addWidget(m_pRadioButtonUSB3);981 894 } 982 895 } … … 1060 973 { 1061 974 /* Configure validation connections: */ 1062 connect(m_pCheckBoxUSB, &QCheckBox::stateChanged, this, &UIMachineSettingsUSB::revalidate);1063 connect(m_pRadioButtonUSB1, &QRadioButton::toggled,this, &UIMachineSettingsUSB::revalidate);1064 connect(m_p RadioButtonUSB2, &QRadioButton::toggled, this, &UIMachineSettingsUSB::revalidate);1065 connect(m_pRadioButtonUSB3, &QRadioButton::toggled,this, &UIMachineSettingsUSB::revalidate);975 connect(m_pCheckBoxUSB, &QCheckBox::stateChanged, 976 this, &UIMachineSettingsUSB::revalidate); 977 connect(m_pEditorController, &UIUSBControllerEditor::sigValueChanged, 978 this, &UIMachineSettingsUSB::revalidate); 1066 979 1067 980 /* Configure widget connections: */ … … 1150 1063 /* Create/update USB controllers: */ 1151 1064 if (newUsbData.m_fUSBEnabled) 1152 fSuccess = createUSBControllers(newUsbData.m_ USBControllerType);1065 fSuccess = createUSBControllers(newUsbData.m_enmUSBControllerType); 1153 1066 } 1154 1067 -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h
r94333 r95245 28 28 class QCheckBox; 29 29 class QHBoxLayout; 30 class QRadioButton;31 class QVBoxLayout;32 30 class QTreeWidgetItem; 33 31 class QILabelSeparator; 32 class QIToolBar; 34 33 class QITreeWidget; 35 34 class VBoxUSBMenu; 36 class QIToolBar;35 class UIUSBControllerEditor; 37 36 struct UIDataSettingsMachineUSB; 38 37 struct UIDataSettingsMachineUSBFilter; … … 122 121 /** Prepares widgets. */ 123 122 void prepareWidgets(); 124 /** Prepares radio-buttons. */125 void prepareRadioButtons();126 123 /** Prepares filters tree-widget. */ 127 124 void prepareFiltersTreeWidget(); … … 156 153 * @{ */ 157 154 /** Holds the USB check-box instance. */ 158 QCheckBox *m_pCheckBoxUSB;155 QCheckBox *m_pCheckBoxUSB; 159 156 /** 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; 157 QWidget *m_pWidgetUSBSettings; 158 /** Holds the USB controller editor instance. */ 159 UIUSBControllerEditor *m_pEditorController; 169 160 /** Holds the USB widget separator instance. */ 170 QILabelSeparator *m_pLabelSeparatorFilters;161 QILabelSeparator *m_pLabelSeparatorFilters; 171 162 /** Holds the USB filters layout instance. */ 172 QHBoxLayout *m_pLayoutFilters;163 QHBoxLayout *m_pLayoutFilters; 173 164 /** Holds the USB filters tree-widget instance. */ 174 QITreeWidget *m_pTreeWidgetFilters;165 QITreeWidget *m_pTreeWidgetFilters; 175 166 /** Holds the USB filters toolbar instance. */ 176 QIToolBar *m_pToolbarFilters;167 QIToolBar *m_pToolbarFilters; 177 168 /** Holds the New action instance. */ 178 QAction *m_pActionNew;169 QAction *m_pActionNew; 179 170 /** Holds the Add action instance. */ 180 QAction *m_pActionAdd;171 QAction *m_pActionAdd; 181 172 /** Holds the Edit action instance. */ 182 QAction *m_pActionEdit;173 QAction *m_pActionEdit; 183 174 /** Holds the Remove action instance. */ 184 QAction *m_pActionRemove;175 QAction *m_pActionRemove; 185 176 /** Holds the Move Up action instance. */ 186 QAction *m_pActionMoveUp;177 QAction *m_pActionMoveUp; 187 178 /** Holds the Move Down action instance. */ 188 QAction *m_pActionMoveDown;179 QAction *m_pActionMoveDown; 189 180 /** Holds the USB devices menu instance. */ 190 VBoxUSBMenu *m_pMenuUSBDevices;181 VBoxUSBMenu *m_pMenuUSBDevices; 191 182 /** @} */ 192 183 };
Note:
See TracChangeset
for help on using the changeset viewer.