- Timestamp:
- Sep 11, 2014 11:49:22 AM (11 years ago)
- svn:sync-xref-src-repo-rev:
- 96021
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIKeyboardHandlerNormal.cpp
r52129 r52694 16 16 */ 17 17 18 /* Qt includes: */ 18 19 #ifndef Q_WS_MAC 19 /* Qt includes: */20 20 # include <QMainWindow> 21 21 # include <QMenuBar> 22 22 # include <QKeyEvent> 23 # include <QTimer> 23 24 #endif /* !Q_WS_MAC */ 24 25 … … 26 27 #include "UIKeyboardHandlerNormal.h" 27 28 #ifndef Q_WS_MAC 29 # include "UIMachineLogic.h" 28 30 # include "UIMachineWindow.h" 29 31 # include "UIShortcutPool.h" 30 32 #endif /* !Q_WS_MAC */ 31 33 34 /* Namespaces: */ 32 35 #ifndef Q_WS_MAC 33 /* Namespaces: */34 36 using namespace UIExtraDataDefs; 35 37 #endif /* !Q_WS_MAC */ … … 70 72 if (pMenuBar && !pMenuBar->actions().isEmpty()) 71 73 { 72 /* If 'active' action is NOT chosen: */ 73 if (!pMenuBar->activeAction()) 74 /* Set first menu-bar action as 'active': */ 75 pMenuBar->setActiveAction(pMenuBar->actions()[0]); 76 /* If 'active' action is chosen: */ 77 if (pMenuBar->activeAction()) 74 /* Is menu-bar visible? */ 75 if (pMenuBar->isVisible()) 78 76 { 79 /* Activate 'active' menu-bar action: */ 80 pMenuBar->activeAction()->activate(QAction::Trigger); 77 /* If 'active' action is NOT chosen: */ 78 if (!pMenuBar->activeAction()) 79 /* Set first menu-bar action as 'active': */ 80 pMenuBar->setActiveAction(pMenuBar->actions()[0]); 81 /* If 'active' action is chosen: */ 82 if (pMenuBar->activeAction()) 83 { 84 /* Activate 'active' menu-bar action: */ 85 pMenuBar->activeAction()->activate(QAction::Trigger); 81 86 #ifdef Q_WS_WIN 82 /* Windows host needs separate 'focus set'83 * to let menubar operate while popped up: */84 pMenuBar->setFocus();87 /* Windows host needs separate 'focus set' 88 * to let menubar operate while popped up: */ 89 pMenuBar->setFocus(); 85 90 #endif /* Q_WS_WIN */ 86 /* Filter-out this event: */ 87 return true; 91 } 88 92 } 93 else 94 { 95 /* Post request to show popup-menu: */ 96 QTimer::singleShot(0, m_pMachineLogic, SLOT(sltInvokePopupMenu())); 97 } 98 /* Filter-out this event: */ 99 return true; 89 100 } 90 101 } -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.cpp
r52645 r52694 17 17 18 18 /* Qt includes: */ 19 #include <QMenu> 19 #ifndef Q_WS_MAC 20 # include <QTimer> 21 #endif /* !Q_WS_MAC */ 20 22 21 23 /* GUI includes: */ … … 30 32 #include "UIExtraDataManager.h" 31 33 #include "UIFrameBuffer.h" 32 #ifdef Q_WS_MAC 34 #ifndef Q_WS_MAC 35 # include "QIMenu.h" 36 #else /* Q_WS_MAC */ 33 37 #include "VBoxUtils.h" 34 38 #endif /* Q_WS_MAC */ … … 40 44 UIMachineLogicNormal::UIMachineLogicNormal(QObject *pParent, UISession *pSession) 41 45 : UIMachineLogic(pParent, pSession, UIVisualStateType_Normal) 46 #ifndef Q_WS_MAC 47 , m_pPopupMenu(0) 48 #endif /* !Q_WS_MAC */ 42 49 { 43 50 } … … 75 82 } 76 83 } 84 85 #ifndef RT_OS_DARWIN 86 void UIMachineLogicNormal::sltInvokePopupMenu() 87 { 88 /* Popup main-menu if present: */ 89 if (m_pPopupMenu && !m_pPopupMenu->isEmpty()) 90 { 91 m_pPopupMenu->popup(activeMachineWindow()->geometry().center()); 92 QTimer::singleShot(0, m_pPopupMenu, SLOT(sltHighlightFirstAction())); 93 } 94 } 95 #endif /* RT_OS_DARWIN */ 77 96 78 97 void UIMachineLogicNormal::sltOpenMenuBarSettings() … … 259 278 } 260 279 280 #ifndef Q_WS_MAC 281 void UIMachineLogicNormal::prepareMenu() 282 { 283 /* Prepare popup-menu: */ 284 m_pPopupMenu = new QIMenu; 285 AssertPtrReturnVoid(m_pPopupMenu); 286 { 287 /* Prepare popup-menu: */ 288 foreach (QMenu *pMenu, actionPool()->menus()) 289 m_pPopupMenu->addMenu(pMenu); 290 } 291 } 292 #endif /* !Q_WS_MAC */ 293 294 #ifndef Q_WS_MAC 295 void UIMachineLogicNormal::cleanupMenu() 296 { 297 /* Cleanup popup-menu: */ 298 delete m_pPopupMenu; 299 m_pPopupMenu = 0; 300 } 301 #endif /* !Q_WS_MAC */ 302 261 303 void UIMachineLogicNormal::cleanupMachineWindows() 262 304 { -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/normal/UIMachineLogicNormal.h
r52645 r52694 42 42 void sltCheckForRequestedVisualStateType(); 43 43 44 #ifndef RT_OS_DARWIN 45 /** Invokes popup-menu. */ 46 void sltInvokePopupMenu(); 47 #endif /* RT_OS_DARWIN */ 48 44 49 /** Opens menu-bar editor.*/ 45 50 void sltOpenMenuBarSettings(); … … 66 71 void prepareActionConnections(); 67 72 void prepareMachineWindows(); 73 #ifndef Q_WS_MAC 74 void prepareMenu(); 75 #endif /* !Q_WS_MAC */ 68 76 69 77 /* Cleanup helpers: */ 78 #ifndef Q_WS_MAC 79 void cleanupMenu(); 80 #endif /* !Q_WS_MAC */ 70 81 void cleanupMachineWindows(); 71 82 void cleanupActionConnections(); 83 84 #ifndef Q_WS_MAC 85 /** Holds the popup-menu instance. */ 86 QMenu *m_pPopupMenu; 87 #endif /* !Q_WS_MAC */ 72 88 73 89 /* Friend classes: */
Note:
See TracChangeset
for help on using the changeset viewer.