Changeset 7678 in vbox
- Timestamp:
- Apr 1, 2008 12:33:40 PM (17 years ago)
- Location:
- trunk/src/VBox/Frontends/VirtualBox4
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox4/include/VBoxConsoleWnd.h
r7599 r7678 156 156 void prepareNetworkMenu(); 157 157 158 void setDynamicMenuItemStatusTip ( int aId);159 160 void captureFloppy ( int aId);161 void captureDVD ( int aId);162 void activateNetworkMenu ( int aId);163 void switchUSB ( int aId);158 void setDynamicMenuItemStatusTip (QAction *aAction); 159 160 void captureFloppy (QAction *aAction); 161 void captureDVD (QAction *aAction); 162 void activateNetworkMenu (QAction *aAction); 163 void switchUSB (QAction *aAction); 164 164 165 165 void statusTipChanged (const QString &); … … 243 243 244 244 // Devices popup menus 245 QMenu *devicesMenu;246 QMenu *devicesMountFloppyMenu;247 QMenu *devicesMountDVDMenu;248 QMenu *devicesSFMenu;249 QMenu *devicesNetworkMenu;250 VBoxUSBMenu *devicesUSBMenu;251 VBoxSwitchMenu *devicesVRDPMenu;252 253 int devicesUSBMenuSeparatorId;254 int devicesVRDPMenuSeparatorId;255 int devicesSFMenuSeparatorId;256 257 245 bool waitForStatusBarChange; 258 246 bool statusBarChangedInside; 259 247 260 QSpacerItem *mShiftingSpacerLeft; 261 QSpacerItem *mShiftingSpacerTop; 262 QSpacerItem *mShiftingSpacerRight; 263 QSpacerItem *mShiftingSpacerBottom; 264 QSize mMaskShift; 265 248 QAction *mDevicesUSBMenuSeparator; 249 QAction *mDevicesVRDPMenuSeparator; 250 QAction *mDevicesSFMenuSeparator; 251 252 QMenu *mVMMenu; 253 QMenu *mDevicesMenu; 254 QMenu *mDevicesMountFloppyMenu; 255 QMenu *mDevicesMountDVDMenu; 256 /* see showIndicatorContextMenu for a description of mDevicesSFMenu */ 257 /* QMenu *mDevicesSFMenu; */ 258 QMenu *mDevicesNetworkMenu; 259 VBoxUSBMenu *mDevicesUSBMenu; 260 /* VBoxSwitchMenu *mDevicesVRDPMenu; */ 266 261 #ifdef VBOX_WITH_DEBUGGER_GUI 267 262 // Debugger popup menu 268 Q3PopupMenu *dbgMenu; 269 #endif 263 QMenu *mDbgMenu; 264 #endif 265 QMenu *mHelpMenu; 270 266 271 267 // Menu identifiers … … 283 279 }; 284 280 281 QSpacerItem *mShiftingSpacerLeft; 282 QSpacerItem *mShiftingSpacerTop; 283 QSpacerItem *mShiftingSpacerRight; 284 QSpacerItem *mShiftingSpacerBottom; 285 QSize mMaskShift; 286 285 287 CSession csession; 286 288 … … 300 302 bool no_auto_close : 1; 301 303 302 QMap < int, CHostDVDDrive> hostDVDMap;303 QMap < int, CHostFloppyDrive> hostFloppyMap;304 QMap <QAction *, CHostDVDDrive> hostDVDMap; 305 QMap <QAction *, CHostFloppyDrive> hostFloppyMap; 304 306 305 307 QPoint normal_pos; -
trunk/src/VBox/Frontends/VirtualBox4/include/VBoxGlobal.h
r7643 r7678 31 31 #include <qthread.h> 32 32 #include <q3popupmenu.h> 33 #include <QMenu> 33 34 #include <qtooltip.h> 34 35 … … 717 718 * This class provides the list of USB devices attached to the host. 718 719 */ 719 class VBoxUSBMenu : public Q 3PopupMenu720 class VBoxUSBMenu : public QMenu 720 721 { 721 722 Q_OBJECT … … 723 724 public: 724 725 725 enum { USBDevicesMenuNoDevicesId = 1 };726 727 726 VBoxUSBMenu (QWidget *); 728 727 729 const CUSBDevice& getUSB ( int);728 const CUSBDevice& getUSB (QAction *aAction); 730 729 731 730 void setConsole (const CConsole &); … … 735 734 void processAboutToShow(); 736 735 737 void processHighlighted (int);738 739 736 private: 740 741 QMap <int, CUSBDevice> mUSBDevicesMap; 737 bool event(QEvent *aEvent); 738 739 QMap <QAction *, CUSBDevice> mUSBDevicesMap; 742 740 CConsole mConsole; 743 741 }; 744 745 742 746 743 /** -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxConsoleWnd.cpp
r7669 r7678 118 118 , mIsSeamless (false) 119 119 , mIsSeamlessSupported (false) 120 #warning port me121 // , normal_wflags (getWFlags())122 120 , was_max (false) 123 121 , console_style (0) … … 283 281 /* Machine submenu */ 284 282 285 QMenu *vmMenu = new QMenu (this); 283 mVMMenu = menuBar()->addMenu (QString::null); 284 mMainMenu->addMenu (mVMMenu); 286 285 287 286 /* dynamic & status line popup menus */ 288 vmAutoresizeMenu = new VBoxSwitchMenu ( vmMenu, vmAutoresizeGuestAction);289 vmDisMouseIntegrMenu = new VBoxSwitchMenu ( vmMenu, vmDisableMouseIntegrAction,287 vmAutoresizeMenu = new VBoxSwitchMenu (mVMMenu, vmAutoresizeGuestAction); 288 vmDisMouseIntegrMenu = new VBoxSwitchMenu (mVMMenu, vmDisableMouseIntegrAction, 290 289 true /* inverted toggle state */); 291 290 292 vmMenu->addAction (vmFullscreenAction);293 vmMenu->addAction (vmSeamlessAction);294 vmMenu->addAction (vmAdjustWindowAction);295 vmMenu->addAction (vmAutoresizeGuestAction);296 vmMenu->addSeparator();297 vmMenu->addAction (vmDisableMouseIntegrAction);298 vmMenu->addSeparator();299 vmMenu->addAction (vmTypeCADAction);291 mVMMenu->addAction (vmFullscreenAction); 292 mVMMenu->addAction (vmSeamlessAction); 293 mVMMenu->addAction (vmAdjustWindowAction); 294 mVMMenu->addAction (vmAutoresizeGuestAction); 295 mVMMenu->addSeparator(); 296 mVMMenu->addAction (vmDisableMouseIntegrAction); 297 mVMMenu->addSeparator(); 298 mVMMenu->addAction (vmTypeCADAction); 300 299 #if defined(Q_WS_X11) 301 vmMenu->addAction (vmTypeCABSAction); 302 #endif 303 vmMenu->addSeparator(); 304 vmMenu->addAction (vmTakeSnapshotAction); 305 vmMenu->addSeparator(); 306 vmMenu->addAction (vmShowInformationDlgAction); 307 vmMenu->addSeparator(); 308 vmMenu->addAction (vmResetAction); 309 vmMenu->addAction (vmPauseAction); 310 vmMenu->addAction (vmACPIShutdownAction); 311 vmMenu->addSeparator(); 312 vmMenu->addAction (vmCloseAction); 313 314 menuBar()->insertItem (QString::null, vmMenu, vmMenuId); 315 mMainMenu->insertItem (QString::null, vmMenu, vmMenuId); 300 mVMMenu->addAction (vmTypeCABSAction); 301 #endif 302 mVMMenu->addSeparator(); 303 mVMMenu->addAction (vmTakeSnapshotAction); 304 mVMMenu->addSeparator(); 305 mVMMenu->addAction (vmShowInformationDlgAction); 306 mVMMenu->addSeparator(); 307 mVMMenu->addAction (vmResetAction); 308 mVMMenu->addAction (vmPauseAction); 309 mVMMenu->addAction (vmACPIShutdownAction); 310 mVMMenu->addSeparator(); 311 mVMMenu->addAction (vmCloseAction); 316 312 317 313 /* Devices submenu */ 318 314 319 devicesMenu = new QMenu (this); 315 mDevicesMenu = menuBar()->addMenu (QString::null); 316 mMainMenu->addMenu (mDevicesMenu); 320 317 321 318 /* dynamic & statusline popup menus */ 322 devicesMountFloppyMenu = new QMenu (devicesMenu); 323 devicesMountDVDMenu = new QMenu (devicesMenu); 324 devicesSFMenu = new QMenu (devicesMenu); 325 devicesNetworkMenu = new QMenu (devicesMenu); 326 devicesUSBMenu = new VBoxUSBMenu (devicesMenu); 327 devicesVRDPMenu = new VBoxSwitchMenu (devicesMenu, devicesSwitchVrdpAction); 328 329 devicesMenu->insertItem (VBoxGlobal::iconSet (":/cd_16px.png", ":/cd_disabled_16px.png"), 330 QString::null, devicesMountDVDMenu, devicesMountDVDMenuId); 331 devicesMenu->addAction (devicesUnmountDVDAction); 332 devicesMenu->addSeparator(); 333 334 devicesMenu->insertItem (VBoxGlobal::iconSet (":/fd_16px.png", ":/fd_disabled_16px.png"), 335 QString::null, devicesMountFloppyMenu, devicesMountFloppyMenuId); 336 devicesMenu->addAction (devicesUnmountFloppyAction); 337 devicesMenu->addSeparator(); 338 339 devicesMenu->insertItem (VBoxGlobal::iconSet (":/nw_16px.png", ":/nw_disabled_16px.png"), 340 QString::null, devicesNetworkMenu, devicesNetworkMenuId); 341 devicesMenu->addSeparator(); 342 343 devicesMenu->insertItem (VBoxGlobal::iconSet (":/usb_16px.png", ":/usb_disabled_16px.png"), 344 QString::null, devicesUSBMenu, devicesUSBMenuId); 345 devicesUSBMenuSeparatorId = devicesMenu->insertSeparator(); 346 347 devicesMenu->addAction (devicesSFDialogAction); 348 devicesSFMenuSeparatorId = devicesMenu->insertSeparator(); 349 devicesMenu->addAction (devicesSFDialogAction); 350 351 devicesMenu->addAction (devicesSwitchVrdpAction); 352 devicesVRDPMenuSeparatorId = devicesMenu->insertSeparator(); 353 354 devicesMenu->addAction (devicesInstallGuestToolsAction); 355 356 menuBar()->insertItem (QString::null, devicesMenu, devicesMenuId); 357 mMainMenu->insertItem (QString::null, devicesMenu, devicesMenuId); 319 320 mDevicesMountDVDMenu = mDevicesMenu->addMenu (VBoxGlobal::iconSet (":/cd_16px.png", ":/cd_disabled_16px.png"), QString::null); 321 mDevicesMenu->addAction (devicesUnmountDVDAction); 322 mDevicesMenu->addSeparator(); 323 324 mDevicesMountFloppyMenu = mDevicesMenu->addMenu (VBoxGlobal::iconSet (":/fd_16px.png", ":/fd_disabled_16px.png"), QString::null); 325 mDevicesMenu->addAction (devicesUnmountFloppyAction); 326 mDevicesMenu->addSeparator(); 327 328 mDevicesNetworkMenu = mDevicesMenu->addMenu (VBoxGlobal::iconSet (":/nw_16px.png", ":/nw_disabled_16px.png"), QString::null); 329 mDevicesMenu->addSeparator(); 330 331 mDevicesUSBMenu = new VBoxUSBMenu (mDevicesMenu); 332 mDevicesMenu->addMenu (mDevicesUSBMenu); 333 mDevicesUSBMenu->setIcon (VBoxGlobal::iconSet (":/usb_16px.png", ":/usb_disabled_16px.png")); 334 mDevicesUSBMenuSeparator = mDevicesMenu->addSeparator(); 335 336 /* see showIndicatorContextMenu for a description of mDevicesSFMenu */ 337 /* mDevicesSFMenu = mDevicesMenu->addMenu (QString::null); */ 338 mDevicesMenu->addAction (devicesSFDialogAction); 339 mDevicesSFMenuSeparator = mDevicesMenu->addSeparator(); 340 341 /* Currently not needed cause there is no state icon in the statusbar */ 342 /* mDevicesVRDPMenu = new VBoxSwitchMenu (mDevicesMenu, devicesSwitchVrdpAction); */ 343 mDevicesMenu->addAction (devicesSwitchVrdpAction); 344 mDevicesVRDPMenuSeparator = mDevicesMenu->addSeparator(); 345 346 mDevicesMenu->addAction (devicesInstallGuestToolsAction); 358 347 359 348 /* reset the "context menu" flag */ 360 devicesMenu->setItemParameter (devicesMountFloppyMenuId, 0);361 devicesMenu->setItemParameter (devicesMountDVDMenuId, 0);362 devicesMenu->setItemParameter (devicesUSBMenuId, 0);349 mDevicesMountFloppyMenu->menuAction()->setData (false); 350 mDevicesMountDVDMenu->menuAction()->setData (false); 351 mDevicesUSBMenu->menuAction()->setData (false); 363 352 364 353 #ifdef VBOX_WITH_DEBUGGER_GUI … … 378 367 /* Help submenu */ 379 368 380 QMenu *helpMenu = new QMenu (this); 381 382 helpMenu->addAction (helpContentsAction); 383 helpMenu->addAction (helpWebAction); 384 helpMenu->addSeparator(); 369 mHelpMenu = menuBar()->addMenu (QString::null); 370 mMainMenu->addMenu (mHelpMenu); 371 372 mHelpMenu->addAction (helpContentsAction); 373 mHelpMenu->addAction (helpWebAction); 374 mHelpMenu->addSeparator(); 385 375 #ifdef VBOX_WITH_REGISTRATION 386 helpMenu->addAction (helpRegisterAction);376 mHelpMenu->addAction (helpRegisterAction); 387 377 helpRegisterAction->setEnabled (vboxGlobal().virtualBox(). 388 378 GetExtraData (VBoxDefs::GUI_RegistrationDlgWinID).isEmpty()); 389 379 #endif 390 helpMenu->addAction (helpAboutAction); 391 helpMenu->addSeparator(); 392 helpMenu->addAction (helpResetMessagesAction); 393 394 menuBar()->insertItem( QString::null, helpMenu, helpMenuId ); 395 mMainMenu->insertItem (QString::null, helpMenu, helpMenuId); 380 mHelpMenu->addAction (helpAboutAction); 381 mHelpMenu->addSeparator(); 382 mHelpMenu->addAction (helpResetMessagesAction); 396 383 397 384 ///// Status bar //////////////////////////////////////////////////////// … … 522 509 523 510 524 connect ( devicesMountFloppyMenu, SIGNAL(aboutToShow()), this, SLOT(prepareFloppyMenu()));525 connect ( devicesMountDVDMenu, SIGNAL(aboutToShow()), this, SLOT(prepareDVDMenu()));526 connect ( devicesNetworkMenu, SIGNAL(aboutToShow()), this, SLOT(prepareNetworkMenu()));511 connect (mDevicesMountFloppyMenu, SIGNAL(aboutToShow()), this, SLOT(prepareFloppyMenu())); 512 connect (mDevicesMountDVDMenu, SIGNAL(aboutToShow()), this, SLOT(prepareDVDMenu())); 513 connect (mDevicesNetworkMenu, SIGNAL(aboutToShow()), this, SLOT(prepareNetworkMenu())); 527 514 528 515 connect (statusBar(), SIGNAL(messageChanged (const QString &)), this, SLOT(statusTipChanged (const QString &))); 529 516 530 connect ( devicesMountFloppyMenu, SIGNAL(activated(int)), this, SLOT(captureFloppy(int)));531 connect ( devicesMountDVDMenu, SIGNAL(activated(int)), this, SLOT(captureDVD(int)));532 connect ( devicesUSBMenu, SIGNAL(activated(int)), this, SLOT(switchUSB(int)));533 connect ( devicesNetworkMenu, SIGNAL(activated(int)), this, SLOT(activateNetworkMenu(int)));534 535 connect ( devicesMountFloppyMenu, SIGNAL (highlighted (int)),536 this, SLOT (setDynamicMenuItemStatusTip ( int)));537 connect ( devicesMountDVDMenu, SIGNAL (highlighted (int)),538 this, SLOT (setDynamicMenuItemStatusTip ( int)));539 connect ( devicesNetworkMenu, SIGNAL (highlighted (int)),540 this, SLOT (setDynamicMenuItemStatusTip ( int)));517 connect (mDevicesMountFloppyMenu, SIGNAL(triggered(QAction *)), this, SLOT(captureFloppy(QAction *))); 518 connect (mDevicesMountDVDMenu, SIGNAL(triggered(QAction *)), this, SLOT(captureDVD(QAction *))); 519 connect (mDevicesUSBMenu, SIGNAL(triggered(QAction *)), this, SLOT(switchUSB(QAction *))); 520 connect (mDevicesNetworkMenu, SIGNAL(triggered(QAction *)), this, SLOT(activateNetworkMenu(QAction *))); 521 522 connect (mDevicesMountFloppyMenu, SIGNAL (hovered (QAction *)), 523 this, SLOT (setDynamicMenuItemStatusTip (QAction *))); 524 connect (mDevicesMountDVDMenu, SIGNAL (hovered (QAction *)), 525 this, SLOT (setDynamicMenuItemStatusTip (QAction *))); 526 connect (mDevicesNetworkMenu, SIGNAL (hovered (QAction *)), 527 this, SLOT (setDynamicMenuItemStatusTip (QAction *))); 541 528 542 529 /* Cleanup the status bar tip when a menu with dynamic items is … … 544 531 * for normal menus (because Qt will not do it on pressing ESC if the menu 545 532 * is constructed of dynamic items only) */ 546 connect ( devicesMountFloppyMenu, SIGNAL (aboutToHide()),533 connect (mDevicesMountFloppyMenu, SIGNAL (aboutToHide()), 547 534 this, SLOT (clearStatusBar())); 548 connect ( devicesMountDVDMenu, SIGNAL (aboutToHide()),535 connect (mDevicesMountDVDMenu, SIGNAL (aboutToHide()), 549 536 this, SLOT (clearStatusBar())); 550 connect ( devicesNetworkMenu, SIGNAL (aboutToHide()),537 connect (mDevicesNetworkMenu, SIGNAL (aboutToHide()), 551 538 this, SLOT (clearStatusBar())); 552 539 … … 764 751 { 765 752 /* hide usb_menu & usb_separator & usb_status_led */ 766 devicesMenu->setItemVisible (devicesUSBMenuId,false);767 devicesMenu->setItemVisible (devicesUSBMenuSeparatorId,false);753 mDevicesUSBMenu->setVisible (false); 754 mDevicesUSBMenuSeparator->setVisible (false); 768 755 usb_light->setHidden (true); 769 756 } … … 771 758 { 772 759 bool isUSBEnabled = usbctl.GetEnabled(); 773 devicesUSBMenu->setEnabled (isUSBEnabled);774 devicesUSBMenu->setConsole (cconsole);760 mDevicesUSBMenu->setEnabled (isUSBEnabled); 761 mDevicesUSBMenu->setConsole (cconsole); 775 762 usb_light->setState (isUSBEnabled ? KDeviceActivity_Idle 776 763 : KDeviceActivity_Null); … … 783 770 /* hide vrdp_menu_action & vrdp_separator & vrdp_status_icon */ 784 771 devicesSwitchVrdpAction->setVisible (false); 785 devicesMenu->setItemVisible (devicesVRDPMenuSeparatorId,false);772 mDevicesVRDPMenuSeparator->setVisible (false); 786 773 #if 0 787 774 vrdp_state->setHidden (true); … … 795 782 /* hide shared folders menu action & sf_separator & sf_status_icon */ 796 783 devicesSFDialogAction->setVisible (false); 797 devicesMenu->setItemVisible (devicesSFMenuSeparatorId,false);784 mDevicesSFMenuSeparator->setVisible (false); 798 785 sf_light->setHidden (true); 799 786 } … … 1134 1121 mMainMenu->popup (pos); 1135 1122 mMainMenu->activateWindow(); 1136 mMainMenu->setActive Item (0);1123 mMainMenu->setActiveAction (mMainMenu->actions().first()); 1137 1124 } 1138 1125 … … 1538 1525 tr ("Unmount the currently mounted CD/DVD-ROM media")); 1539 1526 1540 devicesVRDPMenu->setToolTip (tr ("Remote Desktop (RDP) Server",1541 "enable/disable...")); 1527 /* mDevicesVRDPMenu->setToolTip (tr ("Remote Desktop (RDP) Server", 1528 "enable/disable...")); */ 1542 1529 devicesSwitchVrdpAction->setText (tr ("Remote Dis&play")); 1543 1530 devicesSwitchVrdpAction->setStatusTip ( … … 1583 1570 /* Devices menu submenus */ 1584 1571 1585 devicesMenu->changeItem (devicesMountFloppyMenuId,tr ("Mount &Floppy"));1586 devicesMenu->changeItem (devicesMountDVDMenuId,tr ("Mount &CD/DVD-ROM"));1587 devicesMenu->changeItem (devicesNetworkMenuId,tr ("&Network Adapters"));1588 devicesMenu->changeItem (devicesUSBMenuId,tr ("&USB Devices"));1572 mDevicesMountFloppyMenu->setTitle (tr ("Mount &Floppy")); 1573 mDevicesMountDVDMenu->setTitle (tr ("Mount &CD/DVD-ROM")); 1574 mDevicesNetworkMenu->setTitle (tr ("&Network Adapters")); 1575 mDevicesUSBMenu->setTitle (tr ("&USB Devices")); 1589 1576 1590 1577 /* main menu & seamless popup menu */ 1591 1578 1592 menuBar()->changeItem (vmMenuId, tr ("&Machine")); 1593 #warning port me: check this if the menu popups in the vm. (H+HOME?) 1594 // mMainMenu->changeItem (vmMenuId, 1595 // VBoxGlobal::iconSet (":/machine_16px.png"), tr ("&Machine")); 1596 menuBar()->changeItem (devicesMenuId, tr ("&Devices")); 1597 // mMainMenu->changeItem (devicesMenuId, 1598 // VBoxGlobal::iconSet (":/settings_16px.png"), tr ("&Devices")); 1579 mVMMenu->setTitle (tr ("&Machine")); 1580 // mVMMenu->setIcon (VBoxGlobal::iconSet (":/machine_16px.png")); 1581 1582 mDevicesMenu->setTitle (tr ("&Devices")); 1583 // mDevicesMenu->setIcon (VBoxGlobal::iconSet (":/settings_16px.png")); 1584 1599 1585 #ifdef VBOX_WITH_DEBUGGER_GUI 1600 1586 if (vboxGlobal().isDebuggerEnabled()) … … 1604 1590 } 1605 1591 #endif 1606 menuBar()->changeItem (helpMenuId, tr ("&Help")); 1607 // mMainMenu->changeItem (helpMenuId, 1608 // VBoxGlobal::iconSet (":/help_16px.png"), tr ("&Help")); 1592 mHelpMenu->setTitle (tr ("&Help")); 1593 // mHelpMenu->setIcon (VBoxGlobal::iconSet (":/help_16px.png")); 1609 1594 1610 1595 /* status bar widgets */ … … 1665 1650 if (element & FloppyStuff) 1666 1651 { 1667 devicesMountFloppyMenu->setEnabled (isRunningOrPaused);1652 mDevicesMountFloppyMenu->setEnabled (isRunningOrPaused); 1668 1653 CFloppyDrive floppy = cmachine.GetFloppyDrive(); 1669 1654 KDriveState state = floppy.GetState(); … … 1709 1694 if (element & DVDStuff) 1710 1695 { 1711 devicesMountDVDMenu->setEnabled (isRunningOrPaused);1696 mDevicesMountDVDMenu->setEnabled (isRunningOrPaused); 1712 1697 CDVDDrive dvd = cmachine.GetDVDDrive(); 1713 1698 KDriveState state = dvd.GetState(); … … 1787 1772 : KDeviceActivity_Null); 1788 1773 1789 devicesNetworkMenu->setEnabled (isRunningOrPaused && count > 0);1774 mDevicesNetworkMenu->setEnabled (isRunningOrPaused && count > 0); 1790 1775 1791 1776 /* update tooltip */ … … 1829 1814 if (isUSBEnabled) 1830 1815 { 1831 devicesUSBMenu->setEnabled (isRunningOrPaused);1816 mDevicesUSBMenu->setEnabled (isRunningOrPaused); 1832 1817 1833 1818 CUSBDeviceEnumerator en = cconsole.GetUSBDevices().Enumerate(); … … 1844 1829 else 1845 1830 { 1846 devicesUSBMenu->setEnabled (false);1831 mDevicesUSBMenu->setEnabled (false); 1847 1832 1848 1833 info = tr ("<br><nobr><b>USB Controller is disabled</b></nobr>", … … 1982 1967 ULONG64 usedBits = screen.width() /* display width */ 1983 1968 * screen.height() /* display height */ 1984 #warning port me: check this1985 1969 * depth(); /* bit per pixel */ 1986 // * QColor::numBitPlanes(); /* bit per pixel */1987 1970 if (aOn && (availBits < usedBits)) 1988 1971 { 1989 1972 vboxProblem().cannotEnterSeamlessMode (screen.width(), 1990 #warning port me: check this1991 1973 screen.height(), depth()); 1992 // screen.height(), QColor::numBitPlanes());1993 1974 return false; 1994 1975 } … … 2212 2193 clearMask(); 2213 2194 centralWidget()->setPalette (mErasePalette); 2214 centralWidget()->setBackgroundMode (Qt::PaletteBackground);2215 2195 centralWidget()->setAutoFillBackground (false); 2216 2196 console->setFrameStyle (console_style); … … 2461 2441 CProgress progress = 2462 2442 cconsole.TakeSnapshot (dlg.mLeName->text().trimmed(), 2463 dlg.mTeDescription->t ext());2443 dlg.mTeDescription->toPlainText()); 2464 2444 2465 2445 if (cconsole.isOk()) … … 2769 2749 if (!console) return; 2770 2750 2771 devicesMountFloppyMenu->clear();2751 mDevicesMountFloppyMenu->clear(); 2772 2752 2773 2753 CHostFloppyDrive selected = csession.GetMachine().GetFloppyDrive().GetHostDrive(); … … 2785 2765 drvName : 2786 2766 QString ("%1 (%2)").arg (description, drvName); 2787 int id = devicesMountFloppyMenu->insertItem ( 2788 tr ("Host Drive ") + fullName); 2789 hostFloppyMap [id] = hostFloppy; 2767 QAction *action = mDevicesMountFloppyMenu->addAction (tr ("Host Drive ") + fullName); 2768 action->setStatusTip (tr ("Mount the selected physical drive of the host PC", 2769 "Floppy tip")); 2770 hostFloppyMap [action] = hostFloppy; 2790 2771 if (machine_state != KMachineState_Running && machine_state != KMachineState_Paused) 2791 devicesMountFloppyMenu->setItemEnabled (id,false);2772 action->setEnabled (false); 2792 2773 else if (!selected.isNull()) 2793 2774 if (!selected.GetName().compare (hostFloppy.GetName())) 2794 devicesMountFloppyMenu->setItemEnabled (id,false);2795 } 2796 2797 if ( devicesMountFloppyMenu->count() > 0)2798 devicesMountFloppyMenu->addSeparator();2799 devicesMountFloppyMenu->addAction (devicesMountFloppyImageAction);2775 action->setEnabled (false); 2776 } 2777 2778 if (mDevicesMountFloppyMenu->actions().count() > 0) 2779 mDevicesMountFloppyMenu->addSeparator(); 2780 mDevicesMountFloppyMenu->addAction (devicesMountFloppyImageAction); 2800 2781 2801 2782 /* if shown as a context menu */ 2802 if (devicesMenu->itemParameter (devicesMountFloppyMenuId))2803 { 2804 devicesMountFloppyMenu->addSeparator();2805 devicesMountFloppyMenu->addAction (devicesUnmountFloppyAction);2783 if(mDevicesMountFloppyMenu->menuAction()->data().toBool()) 2784 { 2785 mDevicesMountFloppyMenu->addSeparator(); 2786 mDevicesMountFloppyMenu->addAction (devicesUnmountFloppyAction); 2806 2787 } 2807 2788 } … … 2815 2796 if (!console) return; 2816 2797 2817 devicesMountDVDMenu->clear();2798 mDevicesMountDVDMenu->clear(); 2818 2799 2819 2800 CHostDVDDrive selected = csession.GetMachine().GetDVDDrive().GetHostDrive(); … … 2831 2812 drvName : 2832 2813 QString ("%1 (%2)").arg (description, drvName); 2833 int id = devicesMountDVDMenu->insertItem(2814 QAction *action = mDevicesMountDVDMenu->addAction ( 2834 2815 tr ("Host Drive ") + fullName); 2835 hostDVDMap [id] = hostDVD; 2816 action->setStatusTip (tr ("Mount the selected physical drive of the host PC", 2817 "CD/DVD tip")); 2818 hostDVDMap [action] = hostDVD; 2836 2819 if (machine_state != KMachineState_Running && machine_state != KMachineState_Paused) 2837 devicesMountDVDMenu->setItemEnabled (id,false);2820 action->setEnabled (false); 2838 2821 else if (!selected.isNull()) 2839 2822 if (!selected.GetName().compare (hostDVD.GetName())) 2840 devicesMountDVDMenu->setItemEnabled (id,false);2841 } 2842 2843 if ( devicesMountDVDMenu->count() > 0)2844 devicesMountDVDMenu->addSeparator();2845 devicesMountDVDMenu->addAction (devicesMountDVDImageAction);2823 action->setEnabled (false); 2824 } 2825 2826 if (mDevicesMountDVDMenu->actions().count() > 0) 2827 mDevicesMountDVDMenu->addSeparator(); 2828 mDevicesMountDVDMenu->addAction (devicesMountDVDImageAction); 2846 2829 2847 2830 /* if shown as a context menu */ 2848 2849 if (devicesMenu->itemParameter (devicesMountDVDMenuId)) 2850 { 2851 devicesMountDVDMenu->addSeparator(); 2852 devicesMountDVDMenu->addAction (devicesUnmountDVDAction); 2831 if(mDevicesMountDVDMenu->menuAction()->data().toBool()) 2832 { 2833 mDevicesMountDVDMenu->addSeparator(); 2834 mDevicesMountDVDMenu->addAction (devicesUnmountDVDAction); 2853 2835 } 2854 2836 } … … 2859 2841 void VBoxConsoleWnd::prepareNetworkMenu() 2860 2842 { 2861 devicesNetworkMenu->clear();2843 mDevicesNetworkMenu->clear(); 2862 2844 ulong count = vboxGlobal().virtualBox().GetSystemProperties().GetNetworkAdapterCount(); 2863 2845 for (ulong slot = 0; slot < count; ++ slot) 2864 2846 { 2865 2847 CNetworkAdapter adapter = csession.GetMachine().GetNetworkAdapter (slot); 2866 int id = devicesNetworkMenu->insertItem (tr ("Adapter %1", "network").arg (slot)); 2867 devicesNetworkMenu->setItemEnabled (id, adapter.GetEnabled()); 2868 devicesNetworkMenu->setItemChecked (id, adapter.GetEnabled() && adapter.GetCableConnected()); 2869 } 2870 } 2871 2872 void VBoxConsoleWnd::setDynamicMenuItemStatusTip (int aId) 2848 QAction *action = mDevicesNetworkMenu->addAction (tr ("Adapter %1", "network").arg (slot)); 2849 action->setEnabled (adapter.GetEnabled()); 2850 action->setCheckable (true); 2851 action->setChecked (adapter.GetEnabled() && adapter.GetCableConnected()); 2852 action->setData (static_cast<qulonglong> (slot)); 2853 } 2854 } 2855 2856 void VBoxConsoleWnd::setDynamicMenuItemStatusTip (QAction *aAction) 2873 2857 { 2874 2858 QString tip; 2875 2859 2876 if (sender() == devicesMountFloppyMenu) 2877 { 2878 if (hostFloppyMap.find (aId) != hostFloppyMap.end()) 2879 tip = tr ("Mount the selected physical drive of the host PC", 2880 "Floppy tip"); 2881 } 2882 else if (sender() == devicesMountDVDMenu) 2883 { 2884 if (hostDVDMap.find (aId) != hostDVDMap.end()) 2885 tip = tr ("Mount the selected physical drive of the host PC", 2886 "CD/DVD tip"); 2887 } 2888 else if (sender() == devicesNetworkMenu) 2889 { 2890 tip = devicesNetworkMenu->isItemChecked (aId) ? 2860 if (sender() == mDevicesNetworkMenu) 2861 { 2862 tip = aAction->isChecked() ? 2891 2863 tr ("Disconnect the cable from the selected virtual network adapter") : 2892 2864 tr ("Connect the cable to the selected virtual network adapter"); … … 2914 2886 2915 2887 /** 2916 * Captures a floppy device corresponding to a given menu id.2888 * Captures a floppy device corresponding to a given menu action. 2917 2889 */ 2918 void VBoxConsoleWnd::captureFloppy ( int aId)2890 void VBoxConsoleWnd::captureFloppy (QAction *aAction) 2919 2891 { 2920 2892 if (!console) return; 2921 2893 2922 CHostFloppyDrive d = hostFloppyMap [a Id];2894 CHostFloppyDrive d = hostFloppyMap [aAction]; 2923 2895 /* if null then some other item but host drive is selected */ 2924 2896 if (d.isNull()) return; … … 2941 2913 2942 2914 /** 2943 * Captures a CD/DVD-ROM device corresponding to a given menu id.2915 * Captures a CD/DVD-ROM device corresponding to a given menu action. 2944 2916 */ 2945 void VBoxConsoleWnd::captureDVD ( int aId)2917 void VBoxConsoleWnd::captureDVD (QAction *aAction) 2946 2918 { 2947 2919 if (!console) return; 2948 2920 2949 CHostDVDDrive d = hostDVDMap [a Id];2921 CHostDVDDrive d = hostDVDMap [aAction]; 2950 2922 /* if null then some other item but host drive is selected */ 2951 2923 if (d.isNull()) return; … … 2970 2942 * Switch the cable connected/disconnected for the selected network adapter 2971 2943 */ 2972 void VBoxConsoleWnd::activateNetworkMenu (int aId) 2973 { 2974 ulong count = vboxGlobal().virtualBox().GetSystemProperties().GetNetworkAdapterCount(); 2975 for (ulong slot = 0; slot < count; ++ slot) 2976 { 2977 if (aId == devicesNetworkMenu->idAt (slot)) 2978 { 2979 CNetworkAdapter adapter = csession.GetMachine().GetNetworkAdapter (slot); 2980 bool connected = adapter.GetCableConnected(); 2981 if (adapter.GetEnabled()) 2982 adapter.SetCableConnected (!connected); 2983 break; 2984 } 2985 } 2944 void VBoxConsoleWnd::activateNetworkMenu (QAction *aAction) 2945 { 2946 ulong slot = aAction->data().toULongLong(); 2947 CNetworkAdapter adapter = csession.GetMachine().GetNetworkAdapter (slot); 2948 bool connected = adapter.GetCableConnected(); 2949 if (adapter.GetEnabled()) 2950 adapter.SetCableConnected (!connected); 2986 2951 } 2987 2952 … … 2989 2954 * Attach/Detach selected USB Device. 2990 2955 */ 2991 void VBoxConsoleWnd::switchUSB ( int aId)2956 void VBoxConsoleWnd::switchUSB (QAction *aAction) 2992 2957 { 2993 2958 if (!console) return; … … 2996 2961 AssertWrapperOk (csession); 2997 2962 2998 CUSBDevice usb = devicesUSBMenu->getUSB (aId);2963 CUSBDevice usb = mDevicesUSBMenu->getUSB (aAction); 2999 2964 /* if null then some other item but a USB device is selected */ 3000 2965 if (usb.isNull()) 3001 2966 return; 3002 2967 3003 if ( devicesUSBMenu->isItemChecked (aId))2968 if (!aAction->isChecked()) 3004 2969 { 3005 2970 cconsole.DetachUSBDevice (usb.GetId()); … … 3030 2995 { 3031 2996 /* set "this is a context menu" flag */ 3032 devicesMenu->setItemParameter (devicesMountDVDMenuId, 1);3033 devicesMountDVDMenu->exec (e->globalPos());3034 devicesMenu->setItemParameter (devicesMountDVDMenuId, 0);2997 mDevicesMountDVDMenu->menuAction()->setData (true); 2998 mDevicesMountDVDMenu->exec (e->globalPos()); 2999 mDevicesMountDVDMenu->menuAction()->setData (false); 3035 3000 } 3036 3001 else … … 3038 3003 { 3039 3004 /* set "this is a context menu" flag */ 3040 devicesMenu->setItemParameter (devicesMountFloppyMenuId, 1);3041 devicesMountFloppyMenu->exec (e->globalPos());3042 devicesMenu->setItemParameter (devicesMountFloppyMenuId, 0);3005 mDevicesMountFloppyMenu->menuAction()->setData (true); 3006 mDevicesMountFloppyMenu->exec (e->globalPos()); 3007 mDevicesMountFloppyMenu->menuAction()->setData (false); 3043 3008 } 3044 3009 else 3045 3010 if (ind == usb_light) 3046 3011 { 3047 if ( devicesUSBMenu->isEnabled())3012 if (mDevicesUSBMenu->isEnabled()) 3048 3013 { 3049 3014 /* set "this is a context menu" flag */ 3050 devicesMenu->setItemParameter (devicesUSBMenuId, 1);3051 devicesUSBMenu->exec (e->globalPos());3052 devicesMenu->setItemParameter (devicesUSBMenuId, 0);3015 mDevicesUSBMenu->menuAction()->setData (true); 3016 mDevicesUSBMenu->exec (e->globalPos()); 3017 mDevicesUSBMenu->menuAction()->setData (false); 3053 3018 } 3054 3019 } 3055 3020 else 3056 if (ind == vrdp_state)3057 { 3058 devicesVRDPMenu->exec (e->globalPos());3059 } 3060 else 3021 /* if (ind == vrdp_state) 3022 { 3023 mDevicesVRDPMenu->exec (e->globalPos()); 3024 } 3025 else */ 3061 3026 if (ind == autoresize_state) 3062 3027 { … … 3075 3040 * menu itself is kept just in case if we need more than one item in 3076 3041 * the future. */ 3077 #if 0 3078 devicesSFMenu->exec (e->globalPos()); 3079 #else 3042 /* mDevicesSFMenu->exec (e->globalPos()); */ 3080 3043 if (devicesSFDialogAction->isEnabled()) 3081 3044 devicesSFDialogAction->trigger(); 3082 #endif3083 3045 } 3084 3046 else 3085 3047 if (ind == net_light) 3086 3048 { 3087 if ( devicesNetworkMenu->isEnabled())3049 if (mDevicesNetworkMenu->isEnabled()) 3088 3050 { 3089 3051 /* set "this is a context menu" flag */ 3090 devicesMenu->setItemParameter (devicesNetworkMenuId, 1);3091 devicesNetworkMenu->exec (e->globalPos());3092 devicesMenu->setItemParameter (devicesNetworkMenuId, 0);3052 mDevicesNetworkMenu->menuAction()->setData (true); 3053 mDevicesNetworkMenu->exec (e->globalPos()); 3054 mDevicesNetworkMenu->menuAction()->setData (false); 3093 3055 } 3094 3056 } … … 3261 3223 /* If seamless mode should be enabled then check if it is enabled 3262 3224 * currently and re-enable it if open-view procedure is finished */ 3263 if (vmSeamlessAction->is On() && mIsOpenViewFinished && aSeamlessSupported)3225 if (vmSeamlessAction->isChecked() && mIsOpenViewFinished && aSeamlessSupported) 3264 3226 toggleFullscreenMode (true, true); 3265 3227 } … … 3332 3294 void VBoxConsoleWnd::tryClose() 3333 3295 { 3334 #warning port me 3296 #warning "port me" 3297 /* @todo: I'm not sure if it is the right way to force an shutdown if modal 3298 * child widgets are open. Anyway, currently I didn't know how to achieve 3299 * this. So for now we simply call close. */ 3300 3301 close(); 3302 3335 3303 // LogFlowFunc (("eventLoopLevel=%d\n", qApp->eventLoop()->loopLevel())); 3336 3304 // … … 3354 3322 // } 3355 3323 // else 3356 // 3324 // close(); 3357 3325 } 3358 3326 -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxFBQuartz2D.cpp
r7412 r7678 172 172 QRect Q2DViewRect = mapYOrigin (QRect (p.x(), p.y(), mView->width(), mView->height()), pMain->height()); 173 173 /* We have to pay special attention to the scrollbars */ 174 if (mView->horizontalScrollBar()->isVisible())175 Q2DViewRect.setY (Q2DViewRect.y() + (mView->horizontalScrollBar()->frameSize().height() + 2));176 if (mView->verticalScrollBar()->isVisible())177 Q2DViewRect.setWidth (Q2DViewRect.width() - (mView->verticalScrollBar()->frameSize().width() + 2));174 // if (mView->horizontalScrollBar()->isVisible()) 175 // Q2DViewRect.setY (Q2DViewRect.y() + (mView->horizontalScrollBar()->frameSize().height() + 2)); 176 // if (mView->verticalScrollBar()->isVisible()) 177 // Q2DViewRect.setWidth (Q2DViewRect.width() - (mView->verticalScrollBar()->frameSize().width() + 2)); 178 178 179 179 /* Create the context to draw on */ -
trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp
r7663 r7678 2665 2665 QIcon iconSet; 2666 2666 2667 iconSet. setPixmap (QPixmap (aNormal),2668 QIcon::Automatic,QIcon::Normal);2667 iconSet.addFile (aNormal, QSize(), 2668 QIcon::Normal); 2669 2669 if (aDisabled != NULL) 2670 iconSet. setPixmap (QPixmap (aDisabled),2671 QIcon::Automatic,QIcon::Disabled);2670 iconSet.addFile (aDisabled, QSize(), 2671 QIcon::Disabled); 2672 2672 if (aActive != NULL) 2673 iconSet. setPixmap (QPixmap (aActive),2674 QIcon::Automatic,QIcon::Active);2673 iconSet.addFile (aActive, QSize(), 2674 QIcon::Active); 2675 2675 return iconSet; 2676 2676 } … … 4201 4201 * This class provides the list of USB devices attached to the host. 4202 4202 */ 4203 VBoxUSBMenu::VBoxUSBMenu (QWidget *aParent) : Q 3PopupMenu (aParent)4203 VBoxUSBMenu::VBoxUSBMenu (QWidget *aParent) : QMenu (aParent) 4204 4204 { 4205 4205 connect (this, SIGNAL (aboutToShow()), 4206 4206 this, SLOT (processAboutToShow())); 4207 connect (this, SIGNAL (highlighted (int)),4208 this, SLOT (processHighlighted (int)));4209 } 4210 4211 const CUSBDevice& VBoxUSBMenu::getUSB ( int aIndex)4212 { 4213 return mUSBDevicesMap [a Index];4207 // connect (this, SIGNAL (hovered (QAction *)), 4208 // this, SLOT (processHighlighted (QAction *))); 4209 } 4210 4211 const CUSBDevice& VBoxUSBMenu::getUSB (QAction *aAction) 4212 { 4213 return mUSBDevicesMap [aAction]; 4214 4214 } 4215 4215 … … 4229 4229 if (isUSBEmpty) 4230 4230 { 4231 insertItem (4232 tr ("<no available devices>", "USB devices"),4233 USBDevicesMenuNoDevicesId);4234 setItemEnabled (USBDevicesMenuNoDevicesId, false);4231 QAction *action = addAction (tr ("<no available devices>", "USB devices")); 4232 action->setEnabled (false); 4233 action->setToolTip (tr ("No supported devices connected to the host PC", 4234 "USB device tooltip")); 4235 4235 } 4236 4236 else … … 4241 4241 CHostUSBDevice iterator = en.GetNext(); 4242 4242 CUSBDevice usb = CUnknown (iterator); 4243 int id = insertItem (vboxGlobal().details (usb)); 4244 mUSBDevicesMap [id] = usb; 4243 QAction *action = addAction (vboxGlobal().details (usb)); 4244 action->setCheckable (true); 4245 mUSBDevicesMap [action] = usb; 4245 4246 /* check if created item was alread attached to this session */ 4246 4247 if (!mConsole.isNull()) … … 4248 4249 CUSBDevice attachedUSB = 4249 4250 mConsole.GetUSBDevices().FindById (usb.GetId()); 4250 setItemChecked (id,!attachedUSB.isNull());4251 setItemEnabled (id,iterator.GetState() !=4252 KUSBDeviceState_Unavailable);4251 action->setChecked (!attachedUSB.isNull()); 4252 action->setEnabled (iterator.GetState() != 4253 KUSBDeviceState_Unavailable); 4253 4254 } 4254 4255 } … … 4256 4257 } 4257 4258 4258 void VBoxUSBMenu::processHighlighted (int aIndex) 4259 { 4260 /* the <no available devices> item is highlighted */ 4261 if (aIndex == USBDevicesMenuNoDevicesId) 4262 { 4263 QToolTip::add (this, 4264 tr ("No supported devices connected to the host PC", 4265 "USB device tooltip")); 4266 return; 4267 } 4268 4269 CUSBDevice usb = mUSBDevicesMap [aIndex]; 4270 /* if null then some other item but a USB device is highlighted */ 4271 if (usb.isNull()) 4272 { 4273 QToolTip::remove (this); 4274 return; 4275 } 4276 4277 QToolTip::remove (this); 4278 QToolTip::add (this, vboxGlobal().toolTip (usb)); 4279 } 4280 4259 bool VBoxUSBMenu::event(QEvent *aEvent) 4260 { 4261 /* We provide dynamic tooltips for the usb devices */ 4262 if (aEvent->type() == QEvent::ToolTip) 4263 { 4264 QHelpEvent *helpEvent = static_cast<QHelpEvent *> (aEvent); 4265 QAction *action = actionAt (helpEvent->pos()); 4266 if (action) 4267 { 4268 CUSBDevice usb = mUSBDevicesMap [action]; 4269 if (!usb.isNull()) 4270 { 4271 QToolTip::showText (helpEvent->globalPos(), vboxGlobal().toolTip (usb)); 4272 return true; 4273 } 4274 } 4275 } 4276 return QMenu::event (aEvent); 4277 } 4281 4278 4282 4279 /** -
trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui
r7235 r7678 1337 1337 <slot>tbAddUSBFilter_clicked()</slot> 1338 1338 <slot>tbAddUSBFilterFrom_clicked()</slot> 1339 <slot>menuAddUSBFilterFrom_activated( int)</slot>1339 <slot>menuAddUSBFilterFrom_activated( QAction * )</slot> 1340 1340 <slot>tbRemoveUSBFilter_clicked()</slot> 1341 1341 <slot>tbUSBFilterUp_clicked()</slot> -
trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxGlobalSettingsDlg.ui.h
r7250 r7678 971 971 } 972 972 973 void VBoxGlobalSettingsDlg::menuAddUSBFilterFrom_activated ( int aIndex)974 { 975 CUSBDevice usb = usbDevicesMenu->getUSB (a Index);973 void VBoxGlobalSettingsDlg::menuAddUSBFilterFrom_activated (QAction *aAction) 974 { 975 CUSBDevice usb = usbDevicesMenu->getUSB (aAction); 976 976 977 977 // if null then some other item but a USB device is selected -
trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui
r7235 r7678 3295 3295 <slot>tbAddUSBFilter_clicked()</slot> 3296 3296 <slot>tbAddUSBFilterFrom_clicked()</slot> 3297 <slot>menuAddUSBFilterFrom_activated( int)</slot>3297 <slot>menuAddUSBFilterFrom_activated( QAction * )</slot> 3298 3298 <slot>tbRemoveUSBFilter_clicked()</slot> 3299 3299 <slot>tbUSBFilterUp_clicked()</slot> -
trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui.h
r7560 r7678 776 776 ":/usb_movedown_disabled_16px.png")); 777 777 usbDevicesMenu = new VBoxUSBMenu (this); 778 connect (usbDevicesMenu, SIGNAL( activated(int)), this, SLOT(menuAddUSBFilterFrom_activated(int)));778 connect (usbDevicesMenu, SIGNAL(triggered(QAction *)), this, SLOT(menuAddUSBFilterFrom_activated(QAction *))); 779 779 mUSBFilterListModified = false; 780 780 … … 2686 2686 } 2687 2687 2688 void VBoxVMSettingsDlg::menuAddUSBFilterFrom_activated ( int aIndex)2689 { 2690 CUSBDevice usb = usbDevicesMenu->getUSB (a Index);2688 void VBoxVMSettingsDlg::menuAddUSBFilterFrom_activated (QAction *aAction) 2689 { 2690 CUSBDevice usb = usbDevicesMenu->getUSB (aAction); 2691 2691 /* if null then some other item but a USB device is selected */ 2692 2692 if (usb.isNull())
Note:
See TracChangeset
for help on using the changeset viewer.