summaryrefslogtreecommitdiff
path: root/sfx2/source/menu/virtmenu.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'sfx2/source/menu/virtmenu.cxx')
-rw-r--r--sfx2/source/menu/virtmenu.cxx25
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