Changeset 10728 in vbox for trunk/src/VBox/Frontends/VirtualBox4
- Timestamp:
- Jul 17, 2008 2:48:48 PM (16 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox4
- Files:
-
- 3 added
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox4/Makefile.kmk
r10659 r10728 482 482 include/VBoxVMSettingsParallel.h \ 483 483 include/VBoxVMSettingsUSB.h \ 484 include/VBoxVMSettingsUSBFilterDetails.h \ 484 485 include/VBoxVMSettingsSF.h \ 485 486 include/VBoxVMSettingsVRDP.h \ … … 555 556 src/VBoxVMSettingsParallel.cpp \ 556 557 src/VBoxVMSettingsUSB.cpp \ 558 src/VBoxVMSettingsUSBFilterDetails.cpp \ 557 559 src/VBoxVMSettingsSF.cpp \ 558 560 src/VBoxVMSettingsVRDP.cpp \ -
trunk/src/VBox/Frontends/VirtualBox4/VBoxUI.pro
r10515 r10728 49 49 ui/VBoxVMSettingsSerial.ui \ 50 50 ui/VBoxVMSettingsUSB.ui \ 51 ui/VBoxVMSettingsUSBFilterDetails.ui \ 51 52 ui/VBoxVMSettingsVRDP.ui \ 52 53 ui/VBoxGLSettingsGeneral.ui \ -
trunk/src/VBox/Frontends/VirtualBox4/include/VBoxGlobal.h
r10670 r10728 465 465 QString details (const CUSBDevice &aDevice) const; 466 466 QString toolTip (const CUSBDevice &aDevice) const; 467 QString toolTip (const CUSBDeviceFilter &aFilter) const; 467 468 468 469 QString prepareFileNameForHTML (const QString &fn) const; -
trunk/src/VBox/Frontends/VirtualBox4/include/VBoxVMSettingsUSB.h
r10167 r10728 44 44 }; 45 45 46 enum RemoteMode 47 { 48 ModeAny = 0, 49 ModeOn, 50 ModeOff 51 }; 52 46 53 VBoxVMSettingsUSB (FilterType aType); 47 54 … … 67 74 void currentChanged (QTreeWidgetItem *aItem = 0, 68 75 QTreeWidgetItem *aPrev = 0); 69 void setCurrentText (const QString &aText); 76 70 77 void newClicked(); 71 78 void addClicked(); 79 void edtClicked(); 72 80 void addConfirmed (QAction *aAction); 73 81 void delClicked(); … … 85 93 QAction *mNewAction; 86 94 QAction *mAddAction; 95 QAction *mEdtAction; 87 96 QAction *mDelAction; 88 97 QAction *mMupAction; -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp
r10670 r10728 1387 1387 tip += QString (tr ("<br><nobr>State: %1</nobr>", "USB device tooltip")) 1388 1388 .arg (vboxGlobal().toString (hostDev.GetState())); 1389 } 1390 1391 return tip; 1392 } 1393 1394 /** 1395 * Returns the multi-line description of the given USB filter 1396 */ 1397 QString VBoxGlobal::toolTip (const CUSBDeviceFilter &aFilter) const 1398 { 1399 QString tip; 1400 1401 QString vendorId = aFilter.GetVendorId(); 1402 if (!vendorId.isEmpty()) 1403 tip += tr ("<nobr>Vendor ID: %1</nobr>", "USB filter tooltip") 1404 .arg (vendorId); 1405 1406 QString productId = aFilter.GetProductId(); 1407 if (!productId.isEmpty()) 1408 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>Product ID: %2</nobr>", "USB filter tooltip") 1409 .arg (productId); 1410 1411 QString revision = aFilter.GetRevision(); 1412 if (!revision.isEmpty()) 1413 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>Revision: %3</nobr>", "USB filter tooltip") 1414 .arg (revision); 1415 1416 QString product = aFilter.GetProduct(); 1417 if (!product.isEmpty()) 1418 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>Product: %4</nobr>", "USB filter tooltip") 1419 .arg (product); 1420 1421 QString manufacturer = aFilter.GetManufacturer(); 1422 if (!manufacturer.isEmpty()) 1423 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>Manufacturer: %5</nobr>", "USB filter tooltip") 1424 .arg (manufacturer); 1425 1426 QString serial = aFilter.GetSerialNumber(); 1427 if (!serial.isEmpty()) 1428 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>Serial No.: %1</nobr>", "USB filter tooltip") 1429 .arg (serial); 1430 1431 QString port = aFilter.GetPort(); 1432 if (!port.isEmpty()) 1433 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>Port: %1</nobr>", "USB filter tooltip") 1434 .arg (port); 1435 1436 /* add the state field if it's a host USB device */ 1437 CHostUSBDevice hostDev = CUnknown (aFilter); 1438 if (!hostDev.isNull()) 1439 { 1440 tip += tip.isEmpty() ? "":"<br/>" + tr ("<nobr>State: %1</nobr>", "USB filter tooltip") 1441 .arg (vboxGlobal().toString (hostDev.GetState())); 1389 1442 } 1390 1443 -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxVMSettingsUSB.cpp
r10167 r10728 22 22 23 23 #include "VBoxVMSettingsUSB.h" 24 #include "VBoxVMSettingsUSBFilterDetails.h" 24 25 #include "VBoxSettingsUtils.h" 25 26 #include "QIWidgetValidator.h" … … 44 45 mNewAction = new QAction (mTwFilters); 45 46 mAddAction = new QAction (mTwFilters); 47 mEdtAction = new QAction (mTwFilters); 46 48 mDelAction = new QAction (mTwFilters); 47 49 mMupAction = new QAction (mTwFilters); … … 50 52 mNewAction->setShortcut (QKeySequence ("Ins")); 51 53 mAddAction->setShortcut (QKeySequence ("Alt+Ins")); 54 mEdtAction->setShortcut (QKeySequence ("Ctrl+Return")); 52 55 mDelAction->setShortcut (QKeySequence ("Del")); 53 56 mMupAction->setShortcut (QKeySequence ("Ctrl+Up")); … … 57 60 ":/usb_new_disabled_16px.png")); 58 61 mAddAction->setIcon (VBoxGlobal::iconSet (":/usb_add_16px.png", 62 ":/usb_add_disabled_16px.png")); 63 mEdtAction->setIcon (VBoxGlobal::iconSet (":/usb_add_16px.png", 59 64 ":/usb_add_disabled_16px.png")); 60 65 mDelAction->setIcon (VBoxGlobal::iconSet (":/usb_remove_16px.png", … … 70 75 mMenu->addAction (mAddAction); 71 76 mMenu->addSeparator(); 77 mMenu->addAction (mEdtAction); 78 mMenu->addSeparator(); 72 79 mMenu->addAction (mDelAction); 73 80 mMenu->addSeparator(); … … 82 89 toolBar->addAction (mNewAction); 83 90 toolBar->addAction (mAddAction); 91 toolBar->addAction (mEdtAction); 84 92 toolBar->addAction (mDelAction); 85 93 toolBar->addAction (mMupAction); 86 94 toolBar->addAction (mMdnAction); 87 95 toolBar->setSizePolicy (QSizePolicy::Fixed, QSizePolicy::MinimumExpanding); 96 toolBar->updateGeometry(); 97 toolBar->setMinimumHeight (toolBar->sizeHint().height()); 88 98 mWtFilterHandler->layout()->addWidget (toolBar); 89 99 … … 95 105 connect (mTwFilters, SIGNAL (customContextMenuRequested (const QPoint &)), 96 106 this, SLOT (showContextMenu (const QPoint &))); 107 connect (mTwFilters, SIGNAL (itemDoubleClicked (QTreeWidgetItem *, int)), 108 this, SLOT (edtClicked ())); 97 109 98 110 mUSBDevicesMenu = new VBoxUSBMenu (this); … … 103 115 connect (mAddAction, SIGNAL (triggered (bool)), 104 116 this, SLOT (addClicked())); 117 connect (mEdtAction, SIGNAL (triggered (bool)), 118 this, SLOT (edtClicked())); 105 119 connect (mDelAction, SIGNAL (triggered (bool)), 106 120 this, SLOT (delClicked())); … … 110 124 this, SLOT (mdnClicked())); 111 125 112 connect (mLeName, SIGNAL (textEdited (const QString &)),113 this, SLOT (setCurrentText (const QString &)));114 connect (mLeVendorID, SIGNAL (textEdited (const QString &)),115 this, SLOT (setCurrentText (const QString &)));116 connect (mLeProductID, SIGNAL (textEdited (const QString &)),117 this, SLOT (setCurrentText (const QString &)));118 connect (mLeRevision, SIGNAL (textEdited (const QString &)),119 this, SLOT (setCurrentText (const QString &)));120 connect (mLePort, SIGNAL (textEdited (const QString &)),121 this, SLOT (setCurrentText (const QString &)));122 connect (mLeManufacturer, SIGNAL (textEdited (const QString &)),123 this, SLOT (setCurrentText (const QString &)));124 connect (mLeProduct, SIGNAL (textEdited (const QString &)),125 this, SLOT (setCurrentText (const QString &)));126 connect (mLeSerialNo, SIGNAL (textEdited (const QString &)),127 this, SLOT (setCurrentText (const QString &)));128 connect (mCbRemote, SIGNAL (activated (const QString &)),129 this, SLOT (setCurrentText (const QString &)));130 connect (mCbAction, SIGNAL (activated (const QString &)),131 this, SLOT (setCurrentText (const QString &)));132 133 126 /* Setup dialog */ 134 127 mTwFilters->header()->hide(); 135 136 mCbRemote->addItem (""); /* Any */137 mCbRemote->addItem (""); /* Yes */138 mCbRemote->addItem (""); /* No */139 mLbRemote->setHidden (mType != MachineType);140 mCbRemote->setHidden (mType != MachineType);141 142 mCbAction->insertItem (0, ""); /* KUSBDeviceFilterAction_Ignore */143 mCbAction->insertItem (1, ""); /* KUSBDeviceFilterAction_Hold */144 mLbAction->setHidden (mType != HostType);145 mCbAction->setHidden (mType != HostType);146 128 147 129 /* Applying language settings */ … … 244 226 setTabOrder (mGbUSB, mCbUSB2); 245 227 setTabOrder (mCbUSB2, mTwFilters); 246 setTabOrder (mTwFilters, mLeName);247 setTabOrder (mLeName, mLeVendorID);248 setTabOrder (mLeVendorID, mLeManufacturer);249 setTabOrder (mLeManufacturer, mLeProductID);250 setTabOrder (mLeProductID, mLeProduct);251 setTabOrder (mLeProduct, mLeRevision);252 setTabOrder (mLeRevision, mLeSerialNo);253 setTabOrder (mLeSerialNo, mLePort);254 setTabOrder (mLePort, mCbRemote);255 setTabOrder (mCbRemote, mCbAction);256 228 } 257 229 … … 263 235 mNewAction->setText (tr ("&Add Empty Filter")); 264 236 mAddAction->setText (tr ("A&dd Filter From Device")); 237 mEdtAction->setText (tr ("&Edit Filter")); 265 238 mDelAction->setText (tr ("&Remove Filter")); 266 239 mMupAction->setText (tr ("&Move Filter Up")); … … 271 244 mAddAction->setToolTip (mAddAction->text().remove ('&') + 272 245 QString (" (%1)").arg (mAddAction->shortcut().toString())); 246 mEdtAction->setToolTip (mEdtAction->text().remove ('&') + 247 QString (" (%1)").arg (mEdtAction->shortcut().toString())); 273 248 mDelAction->setToolTip (mDelAction->text().remove ('&') + 274 249 QString (" (%1)").arg (mDelAction->shortcut().toString())); … … 285 260 "set to the values of the selected USB " 286 261 "device attached to the host PC.")); 262 mEdtAction->setWhatsThis (tr ("Edit the selected filter.")); 287 263 mDelAction->setWhatsThis (tr ("Removes the selected USB filter.")); 288 264 mMupAction->setWhatsThis (tr ("Moves the selected USB filter up.")); 289 265 mMdnAction->setWhatsThis (tr ("Moves the selected USB filter down.")); 290 266 291 mCbRemote->setItemText (0, tr ("Any", "remote"));292 mCbRemote->setItemText (1, tr ("Yes", "remote"));293 mCbRemote->setItemText (2, tr ("No", "remote"));294 295 mCbAction->setItemText (0,296 vboxGlobal().toString (KUSBDeviceFilterAction_Ignore));297 mCbAction->setItemText (1,298 vboxGlobal().toString (KUSBDeviceFilterAction_Hold));299 300 267 mUSBFilterName = tr ("New Filter %1", "usb"); 301 268 } … … 304 271 { 305 272 mGbUSBFilters->setEnabled (aOn); 306 mWtProperties->setEnabled (aOn && mTwFilters->topLevelItemCount());307 273 } 308 274 … … 322 288 323 289 /* Enable/disable operational buttons */ 290 mEdtAction->setEnabled (aItem); 324 291 mDelAction->setEnabled (aItem); 325 292 mMupAction->setEnabled (aItem && mTwFilters->itemAbove (aItem)); 326 293 mMdnAction->setEnabled (aItem && mTwFilters->itemBelow (aItem)); 327 328 /* Load filter parameters */329 CUSBDeviceFilter filter;330 if (aItem)331 filter = mFilters [mTwFilters->indexOfTopLevelItem (aItem)];332 333 mLeName->setText (filter.isNull() ? QString::null : filter.GetName());334 mLeVendorID->setText (filter.isNull() ? QString::null : filter.GetVendorId());335 mLeProductID->setText (filter.isNull() ? QString::null : filter.GetProductId());336 mLeRevision->setText (filter.isNull() ? QString::null : filter.GetRevision());337 mLePort->setText (filter.isNull() ? QString::null : filter.GetPort());338 mLeManufacturer->setText (filter.isNull() ? QString::null : filter.GetManufacturer());339 mLeProduct->setText (filter.isNull() ? QString::null : filter.GetProduct());340 mLeSerialNo->setText (filter.isNull() ? QString::null : filter.GetSerialNumber());341 switch (mType)342 {343 case MachineType:344 {345 QString remote = filter.isNull() ? QString::null : filter.GetRemote();346 if (remote == "yes" || remote == "true" || remote == "1")347 mCbRemote->setCurrentIndex (1);348 else if (remote == "no" || remote == "false" || remote == "0")349 mCbRemote->setCurrentIndex (2);350 else351 mCbRemote->setCurrentIndex (0);352 break;353 }354 case HostType:355 {356 CHostUSBDeviceFilter hostFilter = CUnknown (filter);357 KUSBDeviceFilterAction action = hostFilter.isNull() ?358 KUSBDeviceFilterAction_Ignore : hostFilter.GetAction();359 if (action == KUSBDeviceFilterAction_Ignore)360 mCbAction->setCurrentIndex (0);361 else if (action == KUSBDeviceFilterAction_Hold)362 mCbAction->setCurrentIndex (1);363 else364 AssertMsgFailed (("Invalid USBDeviceFilterAction type"));365 break;366 }367 default:368 {369 AssertMsgFailed (("Invalid VBoxVMSettingsUSB type"));370 break;371 }372 }373 374 mWtProperties->setEnabled (aItem);375 }376 377 void VBoxVMSettingsUSB::setCurrentText (const QString &aText)378 {379 QObject *sdr = sender();380 QTreeWidgetItem *item = mTwFilters->currentItem();381 Assert (item);382 383 CUSBDeviceFilter filter =384 mFilters [mTwFilters->indexOfTopLevelItem (item)];385 386 /* Update filter's attribute on line-edited action */387 if (sdr == mLeName)388 {389 filter.SetName (aText);390 item->setText (twUSBFilters_Name, aText);391 } else392 if (sdr == mLeVendorID)393 {394 filter.SetVendorId (aText);395 } else396 if (sdr == mLeProductID)397 {398 filter.SetProductId (aText);399 } else400 if (sdr == mLeRevision)401 {402 filter.SetRevision (aText);403 } else404 if (sdr == mLePort)405 {406 filter.SetPort (aText);407 } else408 if (sdr == mLeManufacturer)409 {410 filter.SetManufacturer (aText);411 } else412 if (sdr == mLeProduct)413 {414 filter.SetProduct (aText);415 } else416 if (sdr == mLeSerialNo)417 {418 filter.SetSerialNumber (aText);419 } else420 if (sdr == mCbRemote)421 {422 filter.SetRemote (mCbRemote->currentIndex() > 0 ?423 aText.toLower() : QString::null);424 } else425 if (sdr == mCbAction)426 {427 CHostUSBDeviceFilter hostFilter = CUnknown (filter);428 hostFilter.SetAction (vboxGlobal().toUSBDevFilterAction (aText));429 }430 294 } 431 295 … … 528 392 } 529 393 394 void VBoxVMSettingsUSB::edtClicked() 395 { 396 QTreeWidgetItem *item = mTwFilters->currentItem(); 397 Assert (item); 398 399 VBoxVMSettingsUSBFilterDetails fd (mType, this); 400 401 CUSBDeviceFilter filter = 402 mFilters [mTwFilters->indexOfTopLevelItem (item)]; 403 404 fd.mLeName->setText (filter.isNull() ? QString::null : filter.GetName()); 405 fd.mLeVendorID->setText (filter.isNull() ? QString::null : filter.GetVendorId()); 406 fd.mLeProductID->setText (filter.isNull() ? QString::null : filter.GetProductId()); 407 fd.mLeRevision->setText (filter.isNull() ? QString::null : filter.GetRevision()); 408 fd.mLePort->setText (filter.isNull() ? QString::null : filter.GetPort()); 409 fd.mLeManufacturer->setText (filter.isNull() ? QString::null : filter.GetManufacturer()); 410 fd.mLeProduct->setText (filter.isNull() ? QString::null : filter.GetProduct()); 411 fd.mLeSerialNo->setText (filter.isNull() ? QString::null : filter.GetSerialNumber()); 412 413 switch (mType) 414 { 415 case MachineType: 416 { 417 QString remote = filter.isNull() ? QString::null : filter.GetRemote().toLower(); 418 if (remote == "yes" || remote == "true" || remote == "1") 419 fd.mCbRemote->setCurrentIndex (ModeOn); 420 else if (remote == "no" || remote == "false" || remote == "0") 421 fd.mCbRemote->setCurrentIndex (ModeOff); 422 else 423 fd.mCbRemote->setCurrentIndex (ModeAny); 424 break; 425 } 426 case HostType: 427 { 428 CHostUSBDeviceFilter hostFilter = CUnknown (filter); 429 KUSBDeviceFilterAction action = hostFilter.isNull() ? 430 KUSBDeviceFilterAction_Ignore : hostFilter.GetAction(); 431 if (action == KUSBDeviceFilterAction_Ignore) 432 fd.mCbAction->setCurrentIndex (0); 433 else if (action == KUSBDeviceFilterAction_Hold) 434 fd.mCbAction->setCurrentIndex (1); 435 else 436 AssertMsgFailed (("Invalid USBDeviceFilterAction type")); 437 break; 438 } 439 default: 440 { 441 AssertMsgFailed (("Invalid VBoxVMSettingsUSB type")); 442 break; 443 } 444 } 445 446 if (fd.exec() == QDialog::Accepted) 447 { 448 filter.SetName (fd.mLeName->text().isEmpty() ? QString::null : fd.mLeName->text()); 449 item->setText (twUSBFilters_Name, fd.mLeName->text()); 450 filter.SetVendorId (fd.mLeVendorID->text().isEmpty() ? QString::null : fd.mLeVendorID->text()); 451 filter.SetProductId (fd.mLeProductID->text().isEmpty() ? QString::null : fd.mLeProductID->text()); 452 filter.SetRevision (fd.mLeRevision->text().isEmpty() ? QString::null : fd.mLeRevision->text()); 453 filter.SetManufacturer (fd.mLeManufacturer->text().isEmpty() ? QString::null : fd.mLeManufacturer->text()); 454 filter.SetProduct (fd.mLeProduct->text().isEmpty() ? QString::null : fd.mLeProduct->text()); 455 filter.SetSerialNumber (fd.mLeSerialNo->text().isEmpty() ? QString::null : fd.mLeSerialNo->text()); 456 filter.SetPort (fd.mLePort->text().isEmpty() ? QString::null : fd.mLePort->text()); 457 if (mType == MachineType) 458 { 459 switch (fd.mCbRemote->currentIndex()) 460 { 461 case ModeAny: filter.SetRemote (QString::null); break; 462 case ModeOn: filter.SetRemote ("yes"); break; 463 case ModeOff: filter.SetRemote ("no"); break; 464 default: AssertMsgFailed (("Invalid combo box index")); 465 } 466 } 467 else 468 if (mType == HostType) 469 { 470 CHostUSBDeviceFilter hostFilter = CUnknown (filter); 471 hostFilter.SetAction (vboxGlobal().toUSBDevFilterAction (fd.mCbAction->currentText())); 472 } 473 item->setToolTip (0, vboxGlobal().toolTip (filter)); 474 } 475 } 476 530 477 void VBoxVMSettingsUSB::delClicked() 531 478 { … … 538 485 539 486 /* Setup validators */ 540 if (!mTwFilters->topLevelItemCount() && mLeName->validator()) 541 { 542 mLeName->setValidator (0); 543 mLeVendorID->setValidator (0); 544 mLeProductID->setValidator (0); 545 mLeRevision->setValidator (0); 546 mLePort->setValidator (0); 487 if (!mTwFilters->topLevelItemCount()) 488 { 547 489 if (mValidator) 548 490 { … … 606 548 item->setCheckState (0, aFilter.GetActive() ? Qt::Checked : Qt::Unchecked); 607 549 item->setText (twUSBFilters_Name, aFilter.GetName()); 608 609 /* Setup validators */ 610 if (!mLeName->validator()) 611 { 612 mLeName->setValidator (new QRegExpValidator (QRegExp (".+"), this)); 613 mLeVendorID->setValidator (new QRegExpValidator (QRegExp ("[0-9a-fA-F]{0,4}"), this)); 614 mLeProductID->setValidator (new QRegExpValidator (QRegExp ("[0-9a-fA-F]{0,4}"), this)); 615 mLeRevision->setValidator (new QRegExpValidator (QRegExp ("[0-9]{0,4}"), this)); 616 mLePort->setValidator (new QRegExpValidator (QRegExp ("[0-9]*"), this)); 617 if (mValidator) 618 mValidator->rescan(); 619 } 550 item->setToolTip (0, vboxGlobal().toolTip (aFilter)); 620 551 621 552 if (isNew) 622 {623 553 mTwFilters->setCurrentItem (item); 624 mLeName->setFocus();625 }626 554 627 555 if (mValidator) -
trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsUSB.ui
r10167 r10728 23 23 <x>0</x> 24 24 <y>0</y> 25 <width> 392</width>26 <height> 424</height>25 <width>468</width> 26 <height>328</height> 27 27 </rect> 28 28 </property> 29 <layout class="QVBoxLayout" > 30 <property name="leftMargin" > 31 <number>0</number> 32 </property> 33 <property name="topMargin" > 34 <number>5</number> 35 </property> 36 <property name="rightMargin" > 37 <number>0</number> 38 </property> 39 <property name="bottomMargin" > 40 <number>5</number> 41 </property> 42 <item> 43 <widget class="QGroupBox" name="mGbUSB" > 29 <layout class="QGridLayout" > 30 <item row="0" column="0" colspan="2" > 31 <widget class="QCheckBox" name="mGbUSB" > 44 32 <property name="whatsThis" > 45 33 <string>When checked, enables the virtual USB controller of this machine.</string> 46 34 </property> 47 <property name="t itle" >35 <property name="text" > 48 36 <string>Enable &USB Controller</string> 49 37 </property> 50 <property name="check able" >38 <property name="checked" > 51 39 <bool>true</bool> 52 40 </property> 53 <property name="checked" > 54 <bool>false</bool> 41 </widget> 42 </item> 43 <item row="1" column="0" > 44 <spacer> 45 <property name="orientation" > 46 <enum>Qt::Horizontal</enum> 55 47 </property> 56 <layout class="QHBoxLayout" > 48 <property name="sizeType" > 49 <enum>QSizePolicy::Fixed</enum> 50 </property> 51 <property name="sizeHint" > 52 <size> 53 <width>20</width> 54 <height>20</height> 55 </size> 56 </property> 57 </spacer> 58 </item> 59 <item row="1" column="1" > 60 <widget class="QWidget" native="1" name="mUSBChild" > 61 <layout class="QGridLayout" > 62 <property name="leftMargin" > 63 <number>0</number> 64 </property> 57 65 <property name="topMargin" > 58 <number> 5</number>66 <number>0</number> 59 67 </property> 60 <item> 68 <property name="rightMargin" > 69 <number>0</number> 70 </property> 71 <property name="bottomMargin" > 72 <number>0</number> 73 </property> 74 <item row="0" column="0" > 61 75 <widget class="QCheckBox" name="mCbUSB2" > 62 76 <property name="whatsThis" > … … 68 82 </widget> 69 83 </item> 70 </layout> 71 </widget> 72 </item> 73 <item> 74 <widget class="QGroupBox" name="mGbUSBFilters" > 75 <property name="title" > 76 <string>USB Device &Filters</string> 77 </property> 78 <layout class="QVBoxLayout" > 79 <property name="topMargin" > 80 <number>5</number> 81 </property> 82 <item> 84 <item row="1" column="0" > 85 <widget class="QILabelSeparator" name="mGbUSBFilters" > 86 <property name="text" > 87 <string>USB Device &Filters</string> 88 </property> 89 <property name="buddy" > 90 <cstring>mTwFilters</cstring> 91 </property> 92 </widget> 93 </item> 94 <item row="2" column="0" > 83 95 <widget class="QWidget" native="1" name="mWtFilterHandler" > 84 96 <layout class="QHBoxLayout" > … … 116 128 </widget> 117 129 </item> 118 <item>119 <widget class="QWidget" native="1" name="mWtProperties" >120 <layout class="QVBoxLayout" >121 <property name="leftMargin" >122 <number>0</number>123 </property>124 <property name="topMargin" >125 <number>0</number>126 </property>127 <property name="rightMargin" >128 <number>0</number>129 </property>130 <property name="bottomMargin" >131 <number>0</number>132 </property>133 <item>134 <layout class="QHBoxLayout" >135 <item>136 <widget class="QLabel" name="mLbName" >137 <property name="text" >138 <string>&Name</string>139 </property>140 <property name="buddy" >141 <cstring>mLeName</cstring>142 </property>143 </widget>144 </item>145 <item>146 <widget class="QLineEdit" name="mLeName" >147 <property name="whatsThis" >148 <string>Displays the filter name.</string>149 </property>150 </widget>151 </item>152 </layout>153 </item>154 <item>155 <layout class="QGridLayout" >156 <item row="0" column="0" >157 <widget class="QLabel" name="mLbVendorID" >158 <property name="text" >159 <string>&Vendor ID</string>160 </property>161 <property name="buddy" >162 <cstring>mLeVendorID</cstring>163 </property>164 </widget>165 </item>166 <item row="0" column="1" >167 <widget class="QLineEdit" name="mLeVendorID" >168 <property name="whatsThis" >169 <string>Defines the vendor ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value.</string>170 </property>171 </widget>172 </item>173 <item row="0" column="2" >174 <widget class="QLabel" name="mLbManufacturer" >175 <property name="text" >176 <string>&Manufacturer</string>177 </property>178 <property name="buddy" >179 <cstring>mLeManufacturer</cstring>180 </property>181 </widget>182 </item>183 <item row="0" column="3" >184 <widget class="QLineEdit" name="mLeManufacturer" >185 <property name="whatsThis" >186 <string>Defines the manufacturer filter as an <i>exact match</i> string. An empty string will match any value.</string>187 </property>188 </widget>189 </item>190 <item row="1" column="0" >191 <widget class="QLabel" name="mLbProductID" >192 <property name="text" >193 <string>&Product ID</string>194 </property>195 <property name="buddy" >196 <cstring>mLeProductID</cstring>197 </property>198 </widget>199 </item>200 <item row="1" column="1" >201 <widget class="QLineEdit" name="mLeProductID" >202 <property name="whatsThis" >203 <string>Defines the product ID filter. The <i>exact match</i> string format is <tt>XXXX</tt> where <tt>X</tt> is a hexadecimal digit. An empty string will match any value.</string>204 </property>205 </widget>206 </item>207 <item row="1" column="2" >208 <widget class="QLabel" name="mLbProduct" >209 <property name="text" >210 <string>Pro&duct</string>211 </property>212 <property name="buddy" >213 <cstring>mLeProduct</cstring>214 </property>215 </widget>216 </item>217 <item row="1" column="3" >218 <widget class="QLineEdit" name="mLeProduct" >219 <property name="whatsThis" >220 <string>Defines the product name filter as an <i>exact match</i> string. An empty string will match any value.</string>221 </property>222 </widget>223 </item>224 <item row="2" column="0" >225 <widget class="QLabel" name="mLbRevision" >226 <property name="text" >227 <string>&Revision</string>228 </property>229 <property name="buddy" >230 <cstring>mLeRevision</cstring>231 </property>232 </widget>233 </item>234 <item row="2" column="1" >235 <widget class="QLineEdit" name="mLeRevision" >236 <property name="whatsThis" >237 <string>Defines the revision number filter. The <i>exact match</i> string format is <tt>IIFF</tt> where <tt>I</tt> is a decimal digit of the integer part and <tt>F</tt> is a decimal digit of the fractional part. An empty string will match any value.</string>238 </property>239 </widget>240 </item>241 <item row="2" column="2" >242 <widget class="QLabel" name="mLbSerialNo" >243 <property name="text" >244 <string>&Serial No.</string>245 </property>246 <property name="buddy" >247 <cstring>mLeSerialNo</cstring>248 </property>249 </widget>250 </item>251 <item row="2" column="3" >252 <widget class="QLineEdit" name="mLeSerialNo" >253 <property name="whatsThis" >254 <string>Defines the serial number filter as an <i>exact match</i> string. An empty string will match any value.</string>255 </property>256 </widget>257 </item>258 <item row="3" column="0" >259 <widget class="QLabel" name="mLbPort" >260 <property name="text" >261 <string>Por&t</string>262 </property>263 <property name="buddy" >264 <cstring>mLePort</cstring>265 </property>266 </widget>267 </item>268 <item row="3" column="1" >269 <widget class="QLineEdit" name="mLePort" >270 <property name="whatsThis" >271 <string>Defines the host USB port filter as an <i>exact match</i> string. An empty string will match any value.</string>272 </property>273 </widget>274 </item>275 <item row="3" column="2" >276 <layout class="QVBoxLayout" >277 <item>278 <widget class="QLabel" name="mLbRemote" >279 <property name="text" >280 <string>R&emote</string>281 </property>282 <property name="buddy" >283 <cstring>mCbRemote</cstring>284 </property>285 </widget>286 </item>287 <item>288 <widget class="QLabel" name="mLbAction" >289 <property name="text" >290 <string>&Action</string>291 </property>292 <property name="buddy" >293 <cstring>mCbAction</cstring>294 </property>295 </widget>296 </item>297 </layout>298 </item>299 <item row="3" column="3" >300 <layout class="QVBoxLayout" >301 <item>302 <widget class="QComboBox" name="mCbRemote" >303 <property name="sizePolicy" >304 <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >305 <horstretch>0</horstretch>306 <verstretch>0</verstretch>307 </sizepolicy>308 </property>309 <property name="whatsThis" >310 <string>Defines whether this filter applies to USB devices attached locally to the host computer (<i>No</i>), to a VRDP client's computer (<i>Yes</i>), or both (<i>Any</i>).</string>311 </property>312 </widget>313 </item>314 <item>315 <widget class="QComboBox" name="mCbAction" >316 <property name="sizePolicy" >317 <sizepolicy vsizetype="Fixed" hsizetype="Expanding" >318 <horstretch>0</horstretch>319 <verstretch>0</verstretch>320 </sizepolicy>321 </property>322 <property name="whatsThis" >323 <string>Defines an action performed by the host computer when a matching device is attached: give it up to the host OS (<i>Ignore</i>) or grab it for later usage by virtual machines (<i>Hold</i>).</string>324 </property>325 </widget>326 </item>327 </layout>328 </item>329 </layout>330 </item>331 </layout>332 </widget>333 </item>334 130 </layout> 335 131 </widget> … … 337 133 </layout> 338 134 </widget> 135 <customwidgets> 136 <customwidget> 137 <class>QILabelSeparator</class> 138 <extends>QLabel</extends> 139 <header>QILabelSeparator.h</header> 140 </customwidget> 141 </customwidgets> 339 142 <resources/> 340 <connections/> 143 <connections> 144 <connection> 145 <sender>mGbUSB</sender> 146 <signal>toggled(bool)</signal> 147 <receiver>mUSBChild</receiver> 148 <slot>setEnabled(bool)</slot> 149 <hints> 150 <hint type="sourcelabel" > 151 <x>233</x> 152 <y>19</y> 153 </hint> 154 <hint type="destinationlabel" > 155 <x>246</x> 156 <y>177</y> 157 </hint> 158 </hints> 159 </connection> 160 </connections> 341 161 </ui>
Note:
See TracChangeset
for help on using the changeset viewer.