Changeset 85953 in vbox
- Timestamp:
- Aug 31, 2020 11:43:58 AM (5 years ago)
- svn:sync-xref-src-repo-rev:
- 140148
- 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 332 332 333 333 UIMachineSettingsUSB::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) 343 335 , m_pCheckBoxUSB(0) 344 , m_p TreeWidgetFilters(0)336 , m_pWidgetUSBSettings(0) 345 337 , m_pRadioButtonUSB1(0) 346 338 , m_pRadioButtonUSB2(0) 347 339 , 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) 351 351 { 352 352 /* Prepare: */ … … 570 570 "this machine. The USB xHCI controller provides USB 3.0 support.")); 571 571 m_pRadioButtonUSB3->setText(tr("USB &3.0 (xHCI) Controller")); 572 m_p CheckBoxUSBFilters->setText(tr("USB Device &Filters"));572 m_pLabelSeparatorFilters->setText(tr("USB Device &Filters")); 573 573 QTreeWidgetItem *pQtreewidgetitem = m_pTreeWidgetFilters->headerItem(); 574 574 pQtreewidgetitem->setText(0, tr("[filter]")); … … 607 607 /* Polish USB page availability: */ 608 608 m_pCheckBoxUSB->setEnabled(isMachineOffline()); 609 m_p USBChild->setEnabled(isMachineInValidMode() && m_pCheckBoxUSB->isChecked());609 m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && m_pCheckBoxUSB->isChecked()); 610 610 m_pRadioButtonUSB1->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked()); 611 611 m_pRadioButtonUSB2->setEnabled(isMachineOffline() && m_pCheckBoxUSB->isChecked()); … … 616 616 { 617 617 /* Enable/disable USB children: */ 618 m_p USBChild->setEnabled(isMachineInValidMode() && fEnabled);618 m_pWidgetUSBSettings->setEnabled(isMachineInValidMode() && fEnabled); 619 619 m_pRadioButtonUSB1->setEnabled(isMachineOffline() && fEnabled); 620 620 m_pRadioButtonUSB2->setEnabled(isMachineOffline() && fEnabled); … … 847 847 void UIMachineSettingsUSB::prepare() 848 848 { 849 prepareWidgets();850 851 /* Hide radio-button initially: */852 m_pRadioButtonUSB1->setVisible(false);853 m_pRadioButtonUSB2->setVisible(false);854 m_pRadioButtonUSB3->setVisible(false);855 856 849 /* Prepare cache: */ 857 850 m_pCache = new UISettingsCacheMachineUSB; 858 851 AssertPtrReturnVoid(m_pCache); 859 852 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(); 869 856 870 857 /* Apply language settings: */ … … 874 861 void UIMachineSettingsUSB::prepareWidgets() 875 862 { 876 if (objectName().isEmpty()) 877 setObjectName(QStringLiteral("UIMachineSettingsUSB")); 878 resize(468, 328); 863 /* Prepare main layout: */ 879 864 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 919 void 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 944 void 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); 950 952 m_pTreeWidgetFilters->header()->hide(); 953 m_pTreeWidgetFilters->setRootIsDecorated(false); 954 m_pTreeWidgetFilters->setContextMenuPolicy(Qt::CustomContextMenu); 955 956 m_pLayoutFilters->addWidget(m_pTreeWidgetFilters); 951 957 } 952 958 } … … 954 960 void UIMachineSettingsUSB::prepareFiltersToolbar() 955 961 { 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 { 960 966 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", 970 972 ":/usb_new_disabled_16px.png"), 971 973 QString(), this, SLOT(sltNewFilter())); 972 AssertPtrReturnVoid(m_pActionNew); 973 { 974 /* Configure action: */ 974 if (m_pActionNew) 975 975 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", 980 979 ":/usb_add_disabled_16px.png"), 981 980 QString(), this, SLOT(sltAddFilter())); 982 AssertPtrReturnVoid(m_pActionAdd); 983 { 984 /* Configure action: */ 981 if (m_pActionAdd) 985 982 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", 990 986 ":/usb_filter_edit_disabled_16px.png"), 991 987 QString(), this, SLOT(sltEditFilter())); 992 AssertPtrReturnVoid(m_pActionEdit); 993 { 994 /* Configure action: */ 988 if (m_pActionEdit) 995 989 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", 1000 993 ":/usb_remove_disabled_16px.png"), 1001 994 QString(), this, SLOT(sltRemoveFilter())); 1002 AssertPtrReturnVoid(m_pActionRemove); 1003 { 1004 /* Configure action: */ 995 if (m_pActionRemove) 1005 996 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", 1010 1000 ":/usb_moveup_disabled_16px.png"), 1011 1001 QString(), this, SLOT(sltMoveFilterUp())); 1012 AssertPtrReturnVoid(m_pActionMoveUp); 1013 { 1014 /* Configure action: */ 1002 if (m_pActionMoveUp) 1015 1003 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", 1020 1007 ":/usb_movedown_disabled_16px.png"), 1021 1008 QString(), this, SLOT(sltMoveFilterDown())); 1022 AssertPtrReturnVoid(m_pActionMoveDown); 1023 { 1024 /* Configure action: */ 1009 if (m_pActionMoveDown) 1025 1010 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); 1027 1016 } 1028 1017 } -
trunk/src/VBox/Frontends/VirtualBox/src/settings/machine/UIMachineSettingsUSB.h
r85791 r85953 27 27 /* Forward declarations: */ 28 28 class QCheckBox; 29 class QHBoxLayout; 29 30 class QRadioButton; 31 class QVBoxLayout; 30 32 class QTreeWidgetItem; 31 33 class QILabelSeparator; … … 120 122 /** Prepares widgets. */ 121 123 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. */ 125 129 void prepareFiltersToolbar(); 126 130 /** Prepares connections. */ … … 143 147 bool createUSBFilter(CUSBDeviceFilters &comFiltersObject, int iPosition, const UIDataSettingsMachineUSBFilter &filterData); 144 148 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 162 149 /** Holds the "New Filter %1" translation tag. */ 163 150 QString m_strTrUSBFilterName; … … 165 152 /** Holds the page data cache instance. */ 166 153 UISettingsCacheMachineUSB *m_pCache; 154 167 155 /** @name Widgets 168 156 * @{ */ 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; 177 191 /** @} */ 178 192 };
Note:
See TracChangeset
for help on using the changeset viewer.