Changeset 364 in vbox
- Timestamp:
- Jan 26, 2007 4:41:23 PM (18 years ago)
- svn:sync-xref-src-repo-rev:
- 17928
- Location:
- trunk/src/VBox/Frontends/VirtualBox/ui
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui
r285 r364 1942 1942 <widget class="QToolButton"> 1943 1943 <property name="name"> 1944 <cstring>tbAddUSBFilterFrom</cstring> 1945 </property> 1946 <property name="focusPolicy"> 1947 <enum>TabFocus</enum> 1948 </property> 1949 <property name="text"> 1950 <string></string> 1951 </property> 1952 <property name="accel"> 1953 <string>Ins</string> 1954 </property> 1955 <property name="iconSet"> 1956 <iconset></iconset> 1957 </property> 1958 <property name="textLabel"> 1959 <string>Add existing</string> 1960 </property> 1961 <property name="autoRaise"> 1962 <bool>true</bool> 1963 </property> 1964 <property name="whatsThis" stdset="0"> 1965 <string>Adds a new USB filter from an existing USB device.</string> 1966 </property> 1967 </widget> 1968 <widget class="QToolButton"> 1969 <property name="name"> 1944 1970 <cstring>tbRemoveUSBFilter</cstring> 1945 1971 </property> … … 2532 2558 </connection> 2533 2559 <connection> 2560 <sender>tbAddUSBFilterFrom</sender> 2561 <signal>clicked()</signal> 2562 <receiver>VBoxVMSettingsDlg</receiver> 2563 <slot>tbAddUSBFilterFrom_clicked()</slot> 2564 </connection> 2565 <connection> 2534 2566 <sender>tbRemoveUSBFilter</sender> 2535 2567 <signal>clicked()</signal> … … 2590 2622 <tabstop>lvUSBFilters</tabstop> 2591 2623 <tabstop>tbAddUSBFilter</tabstop> 2624 <tabstop>tbAddUSBFilterFrom</tabstop> 2592 2625 <tabstop>tbRemoveUSBFilter</tabstop> 2593 2626 <tabstop>tbUSBFilterUp</tabstop> … … 2613 2646 <include location="global" impldecl="in implementation">qfocusdata.h</include> 2614 2647 <include location="global" impldecl="in implementation">qtimer.h</include> 2648 <include location="global" impldecl="in implementation">qpopupmenu.h</include> 2615 2649 <include location="local" impldecl="in declaration">COMDefs.h</include> 2616 2650 <include location="local" impldecl="in declaration">QIWidgetValidator.h</include> … … 2625 2659 <forward>class VBoxMediaComboBox</forward> 2626 2660 <forward>class VBoxDiskImageManagerDlg</forward> 2661 <forward>class QPopupMenu</forward> 2627 2662 </forwards> 2628 2663 <variables> … … 2655 2690 <variable access="private">VBoxMediaComboBox *cbISODVD;</variable> 2656 2691 <variable access="private">VBoxMediaComboBox *cbISOFloppy;</variable> 2692 <variable access="private">QPopupMenu *usbDevicesMenu;</variable> 2693 <variable access="private">QMap<int, CUSBDevice> usbDevicesMap;</variable> 2694 <variable access="private">int mUsbDevicesMenuNoDevicesId;</variable> 2657 2695 </variables> 2658 2696 <slots> … … 2679 2717 <slot>lvUSBFilters_setCurrentText( const QString & aText )</slot> 2680 2718 <slot>tbAddUSBFilter_clicked()</slot> 2719 <slot>tbAddUSBFilterFrom_clicked()</slot> 2720 <slot>menuAddUSBFilterFrom_activated( int )</slot> 2721 <slot>menuAddUSBFilterFrom_highlighted( int )</slot> 2681 2722 <slot>tbRemoveUSBFilter_clicked()</slot> 2682 2723 <slot>tbUSBFilterUp_clicked()</slot> -
trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h
r285 r364 447 447 tbAddUSBFilter->setIconSet (VBoxGlobal::iconSet ("usb_add_16px.png", 448 448 "usb_add_disabled_16px.png")); 449 tbAddUSBFilterFrom->setIconSet (VBoxGlobal::iconSet ("usb_read_16px.png", 450 "usb_read_16px.png")); 449 451 tbRemoveUSBFilter->setIconSet (VBoxGlobal::iconSet ("usb_remove_16px.png", 450 452 "usb_remove_disabled_16px.png")); … … 453 455 tbUSBFilterDown->setIconSet (VBoxGlobal::iconSet ("usb_movedown_16px.png", 454 456 "usb_movedown_disabled_16px.png")); 455 457 usbDevicesMenu = new QPopupMenu (this, "usbDevicesMenu"); 458 connect (usbDevicesMenu, SIGNAL(activated(int)), this, SLOT(menuAddUSBFilterFrom_activated(int))); 459 connect (usbDevicesMenu, SIGNAL(highlighted(int)), this, SLOT(menuAddUSBFilterFrom_highlighted(int))); 456 460 mLastUSBFilterNum = 0; 457 461 mUSBFilterListModified = false; 462 mUsbDevicesMenuNoDevicesId = -1; 458 463 459 464 /* VRDP Page */ … … 1711 1716 } 1712 1717 1718 void VBoxVMSettingsDlg::tbAddUSBFilterFrom_clicked() 1719 { 1720 usbDevicesMenu->clear(); 1721 usbDevicesMap.clear(); 1722 CHost host = vboxGlobal().virtualBox().GetHost(); 1723 1724 bool isUSBEmpty = host.GetUSBDevices().GetCount() == 0; 1725 if (isUSBEmpty) 1726 { 1727 mUsbDevicesMenuNoDevicesId = usbDevicesMenu->insertItem ( 1728 tr ("<no available devices>", "USB devices")); 1729 usbDevicesMenu->setItemEnabled (mUsbDevicesMenuNoDevicesId, false); 1730 } 1731 else 1732 { 1733 mUsbDevicesMenuNoDevicesId = -1; 1734 CHostUSBDeviceEnumerator en = host.GetUSBDevices().Enumerate(); 1735 while (en.HasMore()) 1736 { 1737 CHostUSBDevice iterator = en.GetNext(); 1738 CUSBDevice usb = CUnknown (iterator); 1739 int id = usbDevicesMenu->insertItem (vboxGlobal().details (usb)); 1740 usbDevicesMap [id] = usb; 1741 } 1742 } 1743 usbDevicesMenu->exec (QCursor::pos()); 1744 } 1745 1746 void VBoxVMSettingsDlg::menuAddUSBFilterFrom_highlighted (int aIndex) 1747 { 1748 /* the <no available devices> item is highlighted */ 1749 if (aIndex == mUsbDevicesMenuNoDevicesId) 1750 { 1751 QToolTip::add (usbDevicesMenu, 1752 tr ("No supported devices connected to the host PC", 1753 "USB device tooltip")); 1754 return; 1755 } 1756 1757 CUSBDevice usb = usbDevicesMap [aIndex]; 1758 /* if null then some other item but a USB device is highlighted */ 1759 if (usb.isNull()) 1760 { 1761 QToolTip::remove (usbDevicesMenu); 1762 return; 1763 } 1764 1765 QString tip = vboxGlobal().toolTip (usb); 1766 QToolTip::add (usbDevicesMenu, tip); 1767 } 1768 1769 void VBoxVMSettingsDlg::menuAddUSBFilterFrom_activated (int aIndex) 1770 { 1771 CUSBDevice usb = usbDevicesMap [aIndex]; 1772 /* if null then some other item but a USB device is selected */ 1773 if (usb.isNull()) 1774 return; 1775 1776 CUSBDeviceFilter filter = cmachine.GetUSBController() 1777 .CreateDeviceFilter (tr ("New Filter %1", "usb") 1778 .arg (++ mLastUSBFilterNum)); 1779 1780 filter.SetVendorId (QString().sprintf ("%04hX", usb.GetVendorId())); 1781 filter.SetProductId (QString().sprintf ("%04hX", usb.GetProductId())); 1782 filter.SetRevision (QString().sprintf ("%04hX", usb.GetRevision())); 1783 filter.SetPort (QString().sprintf ("%04hX", usb.GetPort())); 1784 filter.SetManufacturer (usb.GetManufacturer()); 1785 filter.SetProduct (usb.GetProduct()); 1786 filter.SetSerialNumber (usb.GetSerialNumber()); 1787 filter.SetRemote (usb.GetRemote() ? "yes" : "no"); 1788 1789 filter.SetActive (true); 1790 addUSBFilter (filter, true /* isNew */); 1791 1792 mUSBFilterListModified = true; 1793 } 1794 1713 1795 void VBoxVMSettingsDlg::tbRemoveUSBFilter_clicked() 1714 1796 {
Note:
See TracChangeset
for help on using the changeset viewer.