Changeset 44831 in vbox
- Timestamp:
- Feb 26, 2013 4:01:56 PM (12 years ago)
- svn:sync-xref-src-repo-rev:
- 83971
- Location:
- trunk/src/VBox/Frontends/VirtualBox/src/runtime
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.cpp
r44830 r44831 42 42 : m_pMachineLogic(pMachineLogic) 43 43 , m_pScreenMap(new QMap<int, int>()) 44 , m_pViewMenu(0) 44 45 { 45 46 /* Calculate host/guest screen count: */ … … 50 51 UIMultiScreenLayout::~UIMultiScreenLayout() 51 52 { 53 /* Cleanup screen-map: */ 52 54 delete m_pScreenMap; 53 while (!m_screenMenuList.isEmpty()) 54 { 55 delete m_screenMenuList.first(); 56 m_screenMenuList.removeFirst(); 57 } 55 /* Cleanup view-menu: */ 56 cleanupViewMenu(); 58 57 } 59 58 60 59 void UIMultiScreenLayout::setViewMenu(QMenu *pViewMenu) 61 60 { 62 if (m_cHostScreens > 1) 63 { 64 pViewMenu->addSeparator(); 65 for (int i = 0; i < m_cGuestScreens; ++i) 66 { 67 m_screenMenuList << pViewMenu->addMenu(tr("Virtual Screen %1").arg(i + 1)); 68 m_screenMenuList.last()->menuAction()->setData(true); 69 QActionGroup *pScreenGroup = new QActionGroup(m_screenMenuList.last()); 70 pScreenGroup->setExclusive(true); 71 connect(pScreenGroup, SIGNAL(triggered(QAction*)), this, SLOT(sltScreenLayoutChanged(QAction*))); 72 for (int a = 0; a < m_cHostScreens; ++a) 73 { 74 QAction *pAction = pScreenGroup->addAction(tr("Use Host Screen %1").arg(a + 1)); 75 pAction->setCheckable(true); 76 pAction->setData(RT_MAKE_U32(i, a)); 77 } 78 m_screenMenuList.last()->addActions(pScreenGroup->actions()); 79 } 80 } 61 /* Assign view-menu: */ 62 m_pViewMenu = pViewMenu; 63 /* Prepare view-menu: */ 64 prepareViewMenu(); 81 65 } 82 66 … … 284 268 } 285 269 270 void UIMultiScreenLayout::prepareViewMenu() 271 { 272 /* Make sure view-menu was set: */ 273 if (!m_pViewMenu) 274 return; 275 276 /* Cleanup menu first: */ 277 cleanupViewMenu(); 278 279 /* If we do have more than one host screen: */ 280 if (m_cHostScreens > 1) 281 { 282 for (int i = 0; i < m_cGuestScreens; ++i) 283 { 284 m_screenMenuList << m_pViewMenu->addMenu(tr("Virtual Screen %1").arg(i + 1)); 285 m_screenMenuList.last()->menuAction()->setData(true); 286 QActionGroup *pScreenGroup = new QActionGroup(m_screenMenuList.last()); 287 pScreenGroup->setExclusive(true); 288 connect(pScreenGroup, SIGNAL(triggered(QAction*)), this, SLOT(sltScreenLayoutChanged(QAction*))); 289 for (int a = 0; a < m_cHostScreens; ++a) 290 { 291 QAction *pAction = pScreenGroup->addAction(tr("Use Host Screen %1").arg(a + 1)); 292 pAction->setCheckable(true); 293 pAction->setData(RT_MAKE_U32(i, a)); 294 } 295 m_screenMenuList.last()->addActions(pScreenGroup->actions()); 296 } 297 } 298 } 299 300 void UIMultiScreenLayout::cleanupViewMenu() 301 { 302 /* Make sure view-menu was set: */ 303 if (!m_pViewMenu) 304 return; 305 306 /* Cleanup view-menu actions: */ 307 while (!m_screenMenuList.isEmpty()) 308 delete m_screenMenuList.takeFirst(); 309 } 310 286 311 quint64 UIMultiScreenLayout::memoryRequirements(const QMap<int, int> *pScreenLayout) const 287 312 { -
trunk/src/VBox/Frontends/VirtualBox/src/runtime/UIMultiScreenLayout.h
r44830 r44831 68 68 void calculateHostMonitorCount(); 69 69 void calculateGuestScreenCount(); 70 void prepareViewMenu(); 71 72 /* Helper: Cleanup stuff: */ 73 void cleanupViewMenu(); 70 74 71 75 /* Other helpers: */ … … 77 81 int m_cHostScreens; 78 82 QMap<int, int> *m_pScreenMap; 83 QMenu *m_pViewMenu; 79 84 QList<QMenu*> m_screenMenuList; 80 85 };
Note:
See TracChangeset
for help on using the changeset viewer.