diff options
Diffstat (limited to 'sfx2/source/menu/virtmenu.cxx')
-rw-r--r-- | sfx2/source/menu/virtmenu.cxx | 25 |
1 files changed, 9 insertions, 16 deletions
diff --git a/sfx2/source/menu/virtmenu.cxx b/sfx2/source/menu/virtmenu.cxx index 7a06bc08aa..20f758da0c 100644 --- a/sfx2/source/menu/virtmenu.cxx +++ b/sfx2/source/menu/virtmenu.cxx @@ -345,7 +345,9 @@ void SfxVirtualMenu::CreateFromSVMenu() DBG_CHKTHIS(SfxVirtualMenu, 0); // Merge Addon popup menus into the SV Menu - Reference< com::sun::star::frame::XFrame > xFrame( pBindings->GetDispatcher()->GetFrame()->GetFrame().GetFrameInterface() ); + SfxViewFrame* pViewFrame = pBindings->GetDispatcher()->GetFrame(); + SfxSlotPool* pSlotPool = pViewFrame->GetObjectShell()->GetModule()->GetSlotPool(); + Reference< com::sun::star::frame::XFrame > xFrame( pViewFrame->GetFrame().GetFrameInterface() ); if ( pSVMenu->IsMenuBar() ) { @@ -448,23 +450,14 @@ void SfxVirtualMenu::CreateFromSVMenu() } else { -/* - if ( nSlotId >= SID_SFX_START && !SfxMenuManager::IsPopupFunction(nSlotId) ) + const SfxSlot* pSlot = pSlotPool->GetSlot( nSlotId ); + if ( pSlot ) { - // Echte Popups sollen keine SlotIds haben; leider sind - // da noch Altlasten mit herumzuschleppen ... - String aTitle = pSVMenu->GetItemText( nSlotId ); - pSVMenu->SetPopupMenu( nSlotId, NULL ); - USHORT nPos = pSVMenu->GetItemPos( nSlotId ); - pSVMenu->RemoveItem( nPos ); - nSlotId = 1; - while ( pSVMenu->GetItemPos(nSlotId) != MENU_ITEM_NOTFOUND ) - nSlotId++; - pSVMenu->InsertItem( nSlotId, aTitle, 0, nPos ); - pSVMenu->SetPopupMenu( nSlotId, pPopup ); + rtl::OString aCmd(".uno:"); + aCmd += pSlot->GetUnoName(); + pSVMenu->SetHelpId( nSlotId, pSlot->GetUnoName() ); } -*/ - pSVMenu->SetHelpId( nSlotId, 0L ); + pMnuCtrl = pItems+nPos; // normalerweise jetzt erst im Activate-Handler |