Index: /trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk	(revision 9226)
+++ /trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk	(revision 9227)
@@ -311,4 +311,7 @@
 VirtualBox_QT_UISRCS3 := $(filter-out ui/VBoxVMSettingsParallel.ui,$(VirtualBox_QT_UISRCS3))
 VirtualBox_QT_UISRCS4 += ui/VBoxVMSettingsParallel.ui
+
+VirtualBox_QT_UISRCS3 := $(filter-out ui/VBoxVMSettingsUSB.ui,$(VirtualBox_QT_UISRCS3))
+VirtualBox_QT_UISRCS4 += ui/VBoxVMSettingsUSB.ui
 
 VirtualBox_QT_UISRCS3 := $(filter-out ui/VBoxVMSettingsDlg.ui,$(VirtualBox_QT_UISRCS3))
@@ -469,4 +472,5 @@
 	include/VBoxVMSettingsSerial.h \
 	include/VBoxVMSettingsParallel.h \
+	include/VBoxVMSettingsUSB.h \
 	include/VBoxVMSettingsDlg.h
 
@@ -553,4 +557,5 @@
 	src/VBoxVMSettingsSerial.cpp \
 	src/VBoxVMSettingsParallel.cpp \
+	src/VBoxVMSettingsUSB.cpp \
 	src/VBoxVMSettingsDlg.cpp
 
Index: /trunk/src/VBox/Frontends/VirtualBox4/VBoxUI.pro
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/VBoxUI.pro	(revision 9226)
+++ /trunk/src/VBox/Frontends/VirtualBox4/VBoxUI.pro	(revision 9227)
@@ -29,5 +29,5 @@
 	ui/VBoxVMSettingsSerial.ui \
 	ui/VBoxVMSettingsParallel.ui \
-	ui/VBoxUSBFilterSettings.ui \
+	ui/VBoxVMSettingsUSB.ui \
 	ui/VBoxSharedFoldersSettings.ui \
 	ui/VBoxNewVMWzd.ui \
Index: /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h	(revision 9226)
+++ /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h	(revision 9227)
@@ -380,8 +380,10 @@
 //    grbUSBFiltersLayout->addWidget (wstUSBFilters);
     /* create a default (disabled) filter settings widget at index 0 */
+    /*
     VBoxUSBFilterSettings *settings = new VBoxUSBFilterSettings (wstUSBFilters);
     settings->setup (VBoxUSBFilterSettings::HostType);
     wstUSBFilters->addWidget (settings, 0);
     lvUSBFilters_currentChanged (NULL);
+    */
     /* setup toolbutton icons */
     tbAddUSBFilter->setIconSet (VBoxGlobal::iconSet (":/usb_new_16px.png",
@@ -871,4 +873,5 @@
                                           bool aIsNew)
 {
+    /*
     Q3ListViewItem *currentItem = aIsNew
         ? lvUSBFilters->currentItem()
@@ -885,5 +888,5 @@
     item->mId = wstUSBFilters->addWidget (settings);
 
-    /* fix the tab order so that main dialog's buttons are always the last */
+    // fix the tab order so that main dialog's buttons are always the last
     setTabOrder (settings->focusProxy(), buttonHelp);
     setTabOrder (buttonHelp, buttonOk);
@@ -900,5 +903,5 @@
              this, SLOT (lvUSBFilters_setCurrentText (const QString &)));
 
-    /* setup validation */
+    // setup validation
 
     QIWidgetValidator *wval =
@@ -908,4 +911,5 @@
 
     wval->revalidate();
+    */
 }
 
Index: unk/src/VBox/Frontends/VirtualBox4/ui/VBoxUSBFilterSettings.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxUSBFilterSettings.ui	(revision 9226)
+++ 	(revision )
@@ -1,368 +1,0 @@
-<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
-<class>VBoxUSBFilterSettings</class>
-<comment>
-:mode=html:tabSize=4:indentSize=4:noTabs=true:
-:folding=explicit:collapseFolds=1:
-
-     Copyright (C) 2006-2007 Sun Microsystems, Inc.
-    
-     This file is part of VirtualBox Open Source Edition (OSE), as
-     available from http://www.virtualbox.org. This file is free software;
-     you can redistribute it and/or modify it under the terms of the GNU
-     General Public License (GPL) as published by the Free Software
-     Foundation, in version 2 as it comes in the "COPYING" file of the
-     VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-     hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
-    
-     Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
-     Clara, CA 95054 USA or visit http://www.sun.com if you need
-     additional information or have any questions.
-</comment>
-<widget class="QWidget">
-    <property name="name">
-        <cstring>VBoxUSBFilterSettings</cstring>
-    </property>
-    <property name="geometry">
-        <rect>
-            <x>0</x>
-            <y>0</y>
-            <width>381</width>
-            <height>100</height>
-        </rect>
-    </property>
-    <property name="sizePolicy">
-        <sizepolicy>
-            <hsizetype>5</hsizetype>
-            <vsizetype>0</vsizetype>
-            <horstretch>0</horstretch>
-            <verstretch>0</verstretch>
-        </sizepolicy>
-    </property>
-    <property name="caption">
-        <string>VBoxUSBFilterSettings</string>
-        <comment>don't translate</comment>
-    </property>
-    <grid>
-        <property name="name">
-            <cstring>unnamed</cstring>
-        </property>
-        <property name="margin">
-            <number>0</number>
-        </property>
-        <widget class="QLayoutWidget" row="0" column="0" rowspan="1" colspan="2">
-            <property name="name">
-                <cstring>layout141</cstring>
-            </property>
-            <hbox>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <widget class="QLabel">
-                    <property name="name">
-                        <cstring>textLabel1_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Name</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterName</cstring>
-                    </property>
-                </widget>
-                <widget class="QLineEdit">
-                    <property name="name">
-                        <cstring>leUSBFilterName</cstring>
-                    </property>
-                    <property name="frameShape">
-                        <enum>LineEditPanel</enum>
-                    </property>
-                    <property name="frameShadow">
-                        <enum>Sunken</enum>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>Displays the filter name.</string>
-                    </property>
-                </widget>
-            </hbox>
-        </widget>
-        <widget class="QFrame" row="1" column="1">
-            <property name="name">
-                <cstring>frame46</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>5</hsizetype>
-                    <vsizetype>0</vsizetype>
-                    <horstretch>5</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="frameShape">
-                <enum>NoFrame</enum>
-            </property>
-            <property name="frameShadow">
-                <enum>Plain</enum>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <property name="margin">
-                    <number>0</number>
-                </property>
-                <widget class="QLabel" row="0" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2_3</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Manufacturer</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterManufacturer</cstring>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="1" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2_3_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Pro&amp;duct</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterProduct</cstring>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="2" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2_3_2_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Serial No.</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterSerial</cstring>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="0" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterManufacturer</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the manufacturer filter as an
-&lt;i&gt;exact match&lt;/i&gt; string. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="1" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterProduct</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the product name filter as an
-&lt;i&gt;exact match&lt;/i&gt; string. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="2" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterSerial</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the serial number filter as an
-&lt;i&gt;exact match&lt;/i&gt; string. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QComboBox" row="3" column="1">
-                    <property name="name">
-                        <cstring>cbRemote</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines whether this filter applies
-to USB devices attached locally to the host computer (&lt;i&gt;No&lt;/i&gt;),
-to a VRDP client's computer (&lt;i&gt;Yes&lt;/i&gt;),
-or both (&lt;i&gt;Any&lt;/i&gt;).&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="3" column="0">
-                    <property name="name">
-                        <cstring>txUSBFilterRemote</cstring>
-                    </property>
-                    <property name="text">
-                        <string>R&amp;emote</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>cbRemote</cstring>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="4" column="0">
-                    <property name="name">
-                        <cstring>txUSBFilterAction</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Action</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>cbAction</cstring>
-                    </property>
-                </widget>
-                <widget class="QComboBox" row="4" column="1">
-                    <property name="name">
-                        <cstring>cbAction</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines an action performed by the host
-computer when a matching device is attached: give it up to the host OS
-(&lt;i&gt;Ignore&lt;/i&gt;) or grab it for later usage by virtual machines
-(&lt;i&gt;Hold&lt;/i&gt;).&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-        <widget class="QFrame" row="1" column="0">
-            <property name="name">
-                <cstring>frame45</cstring>
-            </property>
-            <property name="sizePolicy">
-                <sizepolicy>
-                    <hsizetype>5</hsizetype>
-                    <vsizetype>0</vsizetype>
-                    <horstretch>3</horstretch>
-                    <verstretch>0</verstretch>
-                </sizepolicy>
-            </property>
-            <property name="frameShape">
-                <enum>NoFrame</enum>
-            </property>
-            <property name="frameShadow">
-                <enum>Raised</enum>
-            </property>
-            <grid>
-                <property name="name">
-                    <cstring>unnamed</cstring>
-                </property>
-                <property name="margin">
-                    <number>0</number>
-                </property>
-                <widget class="QLabel" row="0" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Vendor ID</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterVendorId</cstring>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="1" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Product ID</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterProductId</cstring>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="2" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2_2_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>&amp;Revision</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterRevision</cstring>
-                    </property>
-                </widget>
-                <widget class="QLabel" row="3" column="0">
-                    <property name="name">
-                        <cstring>textLabel1_2_2_2_2_2</cstring>
-                    </property>
-                    <property name="text">
-                        <string>Por&amp;t</string>
-                    </property>
-                    <property name="buddy" stdset="0">
-                        <cstring>leUSBFilterPort</cstring>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="0" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterVendorId</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the vendor ID filter. The
-&lt;i&gt;exact match&lt;/i&gt; string format is &lt;tt&gt;XXXX&lt;/tt&gt; where
-&lt;tt&gt;X&lt;/tt&gt; is a hexadecimal digit. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="1" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterProductId</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the product ID filter. The
-&lt;i&gt;exact match&lt;/i&gt; string format is &lt;tt&gt;XXXX&lt;/tt&gt; where
-&lt;tt&gt;X&lt;/tt&gt; is a hexadecimal digit. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="2" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterRevision</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the revision number filter. The
-&lt;i&gt;exact match&lt;/i&gt; string format is &lt;tt&gt;IIFF&lt;/tt&gt; where
-&lt;tt&gt;I&lt;/tt&gt; is a decimal digit of the integer part and &lt;tt&gt;F&lt;/tt&gt;
-is a decimal digit of the fractional part. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-                <widget class="QLineEdit" row="3" column="1">
-                    <property name="name">
-                        <cstring>leUSBFilterPort</cstring>
-                    </property>
-                    <property name="whatsThis" stdset="0">
-                        <string>&lt;qt&gt;Defines the host USB port filter as an
-&lt;i&gt;exact match&lt;/i&gt; string. An empty string will match any
-value.&lt;/qt&gt;</string>
-                    </property>
-                </widget>
-            </grid>
-        </widget>
-    </grid>
-</widget>
-<tabstops>
-    <tabstop>leUSBFilterName</tabstop>
-    <tabstop>leUSBFilterVendorId</tabstop>
-    <tabstop>leUSBFilterManufacturer</tabstop>
-    <tabstop>leUSBFilterProductId</tabstop>
-    <tabstop>leUSBFilterProduct</tabstop>
-    <tabstop>leUSBFilterRevision</tabstop>
-    <tabstop>leUSBFilterSerial</tabstop>
-    <tabstop>leUSBFilterPort</tabstop>
-    <tabstop>cbRemote</tabstop>
-</tabstops>
-<includes>
-    <include location="global" impldecl="in implementation">qvalidator.h</include>
-    <include location="local" impldecl="in declaration">COMDefs.h</include>
-    <include location="local" impldecl="in declaration">VBoxGlobal.h</include>
-</includes>
-<variables>
-    <variable access="public">enum FilterType { WrongType = 0, HostType = 1, MachineType = 2 };</variable>
-    <variable access="private">CUSBDeviceFilter mFilter;</variable>
-    <variable access="private">FilterType mType;</variable>
-</variables>
-<functions>
-    <function access="private">init()</function>
-    <function>getFromFilter( const CUSBDeviceFilter &amp; aFilter )</function>
-    <function returnType="COMResult">putBackToFilter()</function>
-    <function returnType="CUSBDeviceFilter">filter() { return mFilter; }</function>
-    <function>setup( VBoxUSBFilterSettings::FilterType )</function>
-</functions>
-<pixmapinproject/>
-<layoutdefaults spacing="6" margin="11"/>
-</UI>
Index: unk/src/VBox/Frontends/VirtualBox4/ui/VBoxUSBFilterSettings.ui.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxUSBFilterSettings.ui.h	(revision 9226)
+++ 	(revision )
@@ -1,184 +1,0 @@
-//Added by qt3to4:
-#include <Q3CString>
-/**
- *
- * VBox frontends: Qt GUI ("VirtualBox"):
- * "USB device filter" settings dialog UI include (Qt Designer)
- */
-
-/*
- * Copyright (C) 2006-2007 Sun Microsystems, Inc.
- *
- * This file is part of VirtualBox Open Source Edition (OSE), as
- * available from http://www.virtualbox.org. This file is free software;
- * you can redistribute it and/or modify it under the terms of the GNU
- * General Public License (GPL) as published by the Free Software
- * Foundation, in version 2 as it comes in the "COPYING" file of the
- * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
- * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
- *
- * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
- * Clara, CA 95054 USA or visit http://www.sun.com if you need
- * additional information or have any questions.
- */
-
-/****************************************************************************
-** ui.h extension file, included from the uic-generated form implementation.
-**
-** If you want to add, delete, or rename functions or slots, use
-** Qt Designer to update this file, preserving your code.
-**
-** You should not define a constructor or destructor in this file.
-** Instead, write your code in functions called init() and destroy().
-** These will automatically be called by the form's constructor and
-** destructor.
-*****************************************************************************/
-
-void VBoxUSBFilterSettings::init()
-{
-    // by default, the widget is entirely disabled
-    setEnabled (false);
-
-    mType = VBoxUSBFilterSettings::WrongType;
-
-    // set the dummy focus proxy to let others know which our child
-    // is the last in the focus chain
-    cbRemote->insertItem (tr ("Any", "remote")); // 0
-    cbRemote->insertItem (tr ("Yes", "remote")); // 1
-    cbRemote->insertItem (tr ("No", "remote")); // 2
-    cbAction->insertItem (vboxGlobal().toString (KUSBDeviceFilterAction_Ignore)); // 0
-    cbAction->insertItem (vboxGlobal().toString (KUSBDeviceFilterAction_Hold)); // 1
-}
-
-void VBoxUSBFilterSettings::getFromFilter (const CUSBDeviceFilter &aFilter)
-{
-    mFilter = aFilter;
-
-    leUSBFilterName->setValidator (new QRegExpValidator (QRegExp (".+"), this));
-
-    leUSBFilterName->setText (aFilter.GetName());
-
-    leUSBFilterVendorId->setText (aFilter.GetVendorId());
-    leUSBFilterProductId->setText (aFilter.GetProductId());
-    leUSBFilterRevision->setText (aFilter.GetRevision());
-    leUSBFilterPort->setText (aFilter.GetPort());
-
-    leUSBFilterManufacturer->setText (aFilter.GetManufacturer());
-    leUSBFilterProduct->setText (aFilter.GetProduct());
-    leUSBFilterSerial->setText (aFilter.GetSerialNumber());
-    switch (mType)
-    {
-        case VBoxUSBFilterSettings::MachineType:
-        {
-            Q3CString remote = aFilter.GetRemote().latin1();
-            if (remote == "yes" || remote == "true" || remote == "1")
-                cbRemote->setCurrentItem (1);
-            else if (remote == "no" || remote == "false" || remote == "0")
-                cbRemote->setCurrentItem (2);
-            else
-                cbRemote->setCurrentItem (0);
-            break;
-        }
-        case VBoxUSBFilterSettings::HostType:
-        {
-            const CHostUSBDeviceFilter filter = CUnknown (aFilter);
-            KUSBDeviceFilterAction action = filter.GetAction();
-            if (action == KUSBDeviceFilterAction_Ignore)
-                cbAction->setCurrentItem (0);
-            else if (action == KUSBDeviceFilterAction_Hold)
-                cbAction->setCurrentItem (1);
-            else
-                AssertMsgFailed (("Invalid USBDeviceFilterAction type"));
-            break;
-        }
-        default:
-        {
-            AssertMsgFailed (("Invalid VBoxUSBFilterSettings type"));
-            break;
-        }
-    }
-
-    setEnabled (true);
-}
-
-inline static QString emptyToNull (const QString &str)
-{
-    return str.isEmpty() ? QString::null : str;
-}
-
-COMResult VBoxUSBFilterSettings::putBackToFilter()
-{
-    do
-    {
-        mFilter.SetName (leUSBFilterName->text());
-        if (!mFilter.isOk())
-            break;
-
-        mFilter.SetVendorId (emptyToNull (leUSBFilterVendorId->text()));
-        if (!mFilter.isOk())
-            break;
-        mFilter.SetProductId (emptyToNull (leUSBFilterProductId->text()));
-        if (!mFilter.isOk())
-            break;
-        mFilter.SetRevision (emptyToNull (leUSBFilterRevision->text()));
-        if (!mFilter.isOk())
-            break;
-        mFilter.SetPort (emptyToNull (leUSBFilterPort->text()));
-        if (!mFilter.isOk())
-            break;
-
-        mFilter.SetManufacturer (emptyToNull (leUSBFilterManufacturer->text()));
-        if (!mFilter.isOk())
-            break;
-        mFilter.SetProduct (emptyToNull (leUSBFilterProduct->text()));
-        if (!mFilter.isOk())
-            break;
-        mFilter.SetSerialNumber (emptyToNull (leUSBFilterSerial->text()));
-        if (!mFilter.isOk())
-            break;
-        switch (mType)
-        {
-            case VBoxUSBFilterSettings::MachineType:
-            {
-                switch (cbRemote->currentItem())
-                {
-                    case 1: mFilter.SetRemote ("yes"); break;
-                    case 2: mFilter.SetRemote ("no"); break;
-                    default: AssertMsgFailed (("Invalid combo box index"));
-                    case 0: mFilter.SetRemote (QString::null); break;
-                }
-                break;
-            }
-            case VBoxUSBFilterSettings::HostType:
-            {
-                CHostUSBDeviceFilter filter = CUnknown (mFilter);
-                filter.SetAction (vboxGlobal().toUSBDevFilterAction (
-                    cbAction->currentText()));
-                break;
-            }
-            default:
-            {
-                AssertMsgFailed (("Invalid mType enum value"));
-                break;
-            }
-        }
-        if (!mFilter.isOk())
-            break;
-    }
-    while (0);
-
-    return !mFilter.isOk() ? COMResult (mFilter) : COMResult();
-}
-
-void VBoxUSBFilterSettings::setup (VBoxUSBFilterSettings::FilterType aType)
-{
-    mType = aType;
-    txUSBFilterRemote->setHidden (mType != VBoxUSBFilterSettings::MachineType);
-    cbRemote->setHidden (mType != VBoxUSBFilterSettings::MachineType);
-    txUSBFilterAction->setHidden (mType != VBoxUSBFilterSettings::HostType);
-    cbAction->setHidden (mType != VBoxUSBFilterSettings::HostType);
-    if (mType == VBoxUSBFilterSettings::MachineType)
-        setFocusProxy (cbRemote);
-    else if (mType == VBoxUSBFilterSettings::HostType)
-        setFocusProxy (cbAction);
-}
Index: /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui	(revision 9226)
+++ /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui	(revision 9227)
@@ -572,161 +572,5 @@
      <widget class="QWidget" name="mPageSerial" />
      <widget class="QWidget" name="mPageParallel" />
-     <widget class="QWidget" name="mPageUSB" >
-      <layout class="QVBoxLayout" >
-       <property name="leftMargin" >
-        <number>0</number>
-       </property>
-       <property name="topMargin" >
-        <number>5</number>
-       </property>
-       <property name="rightMargin" >
-        <number>0</number>
-       </property>
-       <property name="bottomMargin" >
-        <number>0</number>
-       </property>
-       <item>
-        <widget class="QGroupBox" name="mGbUSB" >
-         <property name="whatsThis" >
-          <string>When checked, enables the virtual USB controller of this machine.</string>
-         </property>
-         <property name="title" >
-          <string>Enable &amp;USB Controller</string>
-         </property>
-         <property name="checkable" >
-          <bool>true</bool>
-         </property>
-         <property name="checked" >
-          <bool>false</bool>
-         </property>
-         <layout class="QHBoxLayout" >
-          <property name="topMargin" >
-           <number>5</number>
-          </property>
-          <item>
-           <widget class="QCheckBox" name="mCbUSB2" >
-            <property name="whatsThis" >
-             <string>When checked, enables the virtual USB EHCI controller of this machine. The USB ECHI controller provides USB 2.0 support.</string>
-            </property>
-            <property name="text" >
-             <string>Enable USB E&amp;HCI Controller</string>
-            </property>
-           </widget>
-          </item>
-         </layout>
-        </widget>
-       </item>
-       <item>
-        <widget class="QGroupBox" name="mGbUSBFilters" >
-         <property name="title" >
-          <string>USB Device &amp;Filters</string>
-         </property>
-         <layout class="QVBoxLayout" >
-          <property name="topMargin" >
-           <number>5</number>
-          </property>
-          <item>
-           <layout class="QHBoxLayout" >
-            <item>
-             <widget class="QTreeWidget" name="mTwUSBFilters" >
-              <column>
-               <property name="text" >
-                <string>[filter]</string>
-               </property>
-              </column>
-             </widget>
-            </item>
-            <item>
-             <layout class="QVBoxLayout" >
-              <property name="spacing" >
-               <number>0</number>
-              </property>
-              <item>
-               <widget class="QToolButton" name="mTbAddUSBFilter" >
-                <property name="whatsThis" >
-                 <string>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB device.</string>
-                </property>
-                <property name="text" >
-                 <string/>
-                </property>
-                <property name="autoRaise" >
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QToolButton" name="mTbAddUSBFrom" >
-                <property name="whatsThis" >
-                 <string>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</string>
-                </property>
-                <property name="text" >
-                 <string/>
-                </property>
-                <property name="autoRaise" >
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QToolButton" name="mTbRemUSBFilter" >
-                <property name="whatsThis" >
-                 <string>Removes the selected USB filter.</string>
-                </property>
-                <property name="text" >
-                 <string/>
-                </property>
-                <property name="autoRaise" >
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QToolButton" name="mTbUSBFilterUp" >
-                <property name="whatsThis" >
-                 <string>Moves the selected USB filter up.</string>
-                </property>
-                <property name="text" >
-                 <string/>
-                </property>
-                <property name="autoRaise" >
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <widget class="QToolButton" name="mTbUSBFilterDown" >
-                <property name="whatsThis" >
-                 <string>Moves the selected USB filter down.</string>
-                </property>
-                <property name="text" >
-                 <string/>
-                </property>
-                <property name="autoRaise" >
-                 <bool>true</bool>
-                </property>
-               </widget>
-              </item>
-              <item>
-               <spacer>
-                <property name="orientation" >
-                 <enum>Qt::Vertical</enum>
-                </property>
-                <property name="sizeHint" >
-                 <size>
-                  <width>20</width>
-                  <height>40</height>
-                 </size>
-                </property>
-               </spacer>
-              </item>
-             </layout>
-            </item>
-           </layout>
-          </item>
-         </layout>
-        </widget>
-       </item>
-      </layout>
-     </widget>
+     <widget class="QWidget" name="mPageUSB" />
      <widget class="QWidget" name="mPageShared" />
      <widget class="QWidget" name="mPageVrdp" >
Index: /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsUSB.ui
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsUSB.ui	(revision 9227)
+++ /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsUSB.ui	(revision 9227)
@@ -0,0 +1,384 @@
+<ui version="4.0" >
+ <class>VBoxVMSettingsUSB</class>
+ <widget class="QWidget" name="VBoxVMSettingsUSB" >
+  <property name="geometry" >
+   <rect>
+    <x>0</x>
+    <y>0</y>
+    <width>402</width>
+    <height>424</height>
+   </rect>
+  </property>
+  <layout class="QVBoxLayout" >
+   <property name="leftMargin" >
+    <number>0</number>
+   </property>
+   <property name="topMargin" >
+    <number>5</number>
+   </property>
+   <property name="rightMargin" >
+    <number>0</number>
+   </property>
+   <property name="bottomMargin" >
+    <number>0</number>
+   </property>
+   <item>
+    <widget class="QGroupBox" name="mGbUSB" >
+     <property name="whatsThis" >
+      <string>When checked, enables the virtual USB controller of this machine.</string>
+     </property>
+     <property name="title" >
+      <string>Enable &amp;USB Controller</string>
+     </property>
+     <property name="checkable" >
+      <bool>true</bool>
+     </property>
+     <property name="checked" >
+      <bool>false</bool>
+     </property>
+     <layout class="QHBoxLayout" >
+      <property name="topMargin" >
+       <number>5</number>
+      </property>
+      <item>
+       <widget class="QCheckBox" name="mCbUSB2" >
+        <property name="whatsThis" >
+         <string>When checked, enables the virtual USB EHCI controller of this machine. The USB ECHI controller provides USB 2.0 support.</string>
+        </property>
+        <property name="text" >
+         <string>Enable USB E&amp;HCI Controller</string>
+        </property>
+       </widget>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QGroupBox" name="mGbUSBFilters" >
+     <property name="title" >
+      <string>USB Device &amp;Filters</string>
+     </property>
+     <layout class="QVBoxLayout" >
+      <property name="topMargin" >
+       <number>5</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" >
+        <item>
+         <widget class="QTreeWidget" name="mTwFilters" >
+          <property name="whatsThis" >
+           <string>Lists all USB filters of this machine. The checkbox to the left defines whether the particular filter is enabled or not. Use the context menu or buttons to the right to add or remove USB filters.</string>
+          </property>
+          <property name="rootIsDecorated" >
+           <bool>false</bool>
+          </property>
+          <column>
+           <property name="text" >
+            <string>[filter]</string>
+           </property>
+          </column>
+         </widget>
+        </item>
+        <item>
+         <layout class="QVBoxLayout" >
+          <property name="spacing" >
+           <number>0</number>
+          </property>
+          <item>
+           <widget class="QToolButton" name="mTbNew" >
+            <property name="whatsThis" >
+             <string>Adds a new USB filter with all fields initially set to empty strings. Note that such a filter will match any attached USB device.</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="autoRaise" >
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="mTbAdd" >
+            <property name="whatsThis" >
+             <string>Adds a new USB filter with all fields set to the values of the selected USB device attached to the host PC.</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="autoRaise" >
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="mTbRem" >
+            <property name="whatsThis" >
+             <string>Removes the selected USB filter.</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="autoRaise" >
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="mTbUp" >
+            <property name="whatsThis" >
+             <string>Moves the selected USB filter up.</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="autoRaise" >
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <widget class="QToolButton" name="mTbDown" >
+            <property name="whatsThis" >
+             <string>Moves the selected USB filter down.</string>
+            </property>
+            <property name="text" >
+             <string/>
+            </property>
+            <property name="autoRaise" >
+             <bool>true</bool>
+            </property>
+           </widget>
+          </item>
+          <item>
+           <spacer>
+            <property name="orientation" >
+             <enum>Qt::Vertical</enum>
+            </property>
+            <property name="sizeHint" >
+             <size>
+              <width>20</width>
+              <height>40</height>
+             </size>
+            </property>
+           </spacer>
+          </item>
+         </layout>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+   <item>
+    <widget class="QWidget" native="1" name="mWtProperties" >
+     <layout class="QVBoxLayout" >
+      <property name="leftMargin" >
+       <number>0</number>
+      </property>
+      <property name="topMargin" >
+       <number>0</number>
+      </property>
+      <property name="rightMargin" >
+       <number>0</number>
+      </property>
+      <property name="bottomMargin" >
+       <number>0</number>
+      </property>
+      <item>
+       <layout class="QHBoxLayout" >
+        <item>
+         <widget class="QLabel" name="mLbName" >
+          <property name="text" >
+           <string>&amp;Name</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeName</cstring>
+          </property>
+         </widget>
+        </item>
+        <item>
+         <widget class="QLineEdit" name="mLeName" >
+          <property name="whatsThis" >
+           <string>Displays the filter name.</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+      <item>
+       <layout class="QGridLayout" >
+        <item row="0" column="0" >
+         <widget class="QLabel" name="mLbVendorID" >
+          <property name="text" >
+           <string>&amp;Vendor ID</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeVendorID</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="1" >
+         <widget class="QLineEdit" name="mLeVendorID" >
+          <property name="whatsThis" >
+           <string>Defines the vendor ID filter. The &lt;i>exact match&lt;/i> string format is &lt;tt>XXXX&lt;/tt> where &lt;tt>X&lt;/tt> is a hexadecimal digit. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="2" >
+         <widget class="QLabel" name="mLbManufacturer" >
+          <property name="text" >
+           <string>&amp;Manufacturer</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeManufacturer</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="0" column="3" >
+         <widget class="QLineEdit" name="mLeManufacturer" >
+          <property name="whatsThis" >
+           <string>Defines the manufacturer filter as an &lt;i>exact match&lt;/i> string. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="0" >
+         <widget class="QLabel" name="mLbProductID" >
+          <property name="text" >
+           <string>&amp;Product ID</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeProductID</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="1" >
+         <widget class="QLineEdit" name="mLeProductID" >
+          <property name="whatsThis" >
+           <string>Defines the product ID filter. The &lt;i>exact match&lt;/i> string format is &lt;tt>XXXX&lt;/tt> where &lt;tt>X&lt;/tt> is a hexadecimal digit. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="2" >
+         <widget class="QLabel" name="mLbProduct" >
+          <property name="text" >
+           <string>Pro&amp;duct</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeProduct</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="1" column="3" >
+         <widget class="QLineEdit" name="mLeProduct" >
+          <property name="whatsThis" >
+           <string>Defines the product name filter as an &lt;i>exact match&lt;/i> string. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="0" >
+         <widget class="QLabel" name="mLbRevision" >
+          <property name="text" >
+           <string>&amp;Revision</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeRevision</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="1" >
+         <widget class="QLineEdit" name="mLeRevision" >
+          <property name="whatsThis" >
+           <string>Defines the revision number filter. The &lt;i>exact match&lt;/i> string format is &lt;tt>IIFF&lt;/tt> where &lt;tt>I&lt;/tt> is a decimal digit of the integer part and &lt;tt>F&lt;/tt> is a decimal digit of the fractional part. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="2" >
+         <widget class="QLabel" name="mLbSerialNo" >
+          <property name="text" >
+           <string>&amp;Serial No.</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLeSerialNo</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="2" column="3" >
+         <widget class="QLineEdit" name="mLeSerialNo" >
+          <property name="whatsThis" >
+           <string>Defines the serial number filter as an &lt;i>exact match&lt;/i> string. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="0" >
+         <widget class="QLabel" name="mLbPort" >
+          <property name="text" >
+           <string>Por&amp;t</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mLePort</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="1" >
+         <widget class="QLineEdit" name="mLePort" >
+          <property name="whatsThis" >
+           <string>Defines the host USB port filter as an &lt;i>exact match&lt;/i> string. An empty string will match any value.</string>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="2" >
+         <widget class="QLabel" name="mLbRemote" >
+          <property name="text" >
+           <string>R&amp;emote</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mCbRemote</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="3" column="3" >
+         <widget class="QComboBox" name="mCbRemote" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="whatsThis" >
+           <string>Defines whether this filter applies to USB devices attached locally to the host computer (&lt;i>No&lt;/i>), to a VRDP client's computer (&lt;i>Yes&lt;/i>), or both (&lt;i>Any&lt;/i>).</string>
+          </property>
+         </widget>
+        </item>
+        <item row="4" column="2" >
+         <widget class="QLabel" name="mLbAction" >
+          <property name="text" >
+           <string>&amp;Action</string>
+          </property>
+          <property name="buddy" >
+           <cstring>mCbAction</cstring>
+          </property>
+         </widget>
+        </item>
+        <item row="4" column="3" >
+         <widget class="QComboBox" name="mCbAction" >
+          <property name="sizePolicy" >
+           <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >
+            <horstretch>0</horstretch>
+            <verstretch>0</verstretch>
+           </sizepolicy>
+          </property>
+          <property name="whatsThis" >
+           <string>Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (&lt;i>Ignore&lt;/i>) or grab it for later usage by virtual machines (&lt;i>Hold&lt;/i>).</string>
+          </property>
+         </widget>
+        </item>
+       </layout>
+      </item>
+     </layout>
+    </widget>
+   </item>
+  </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
