diff options
-rw-r--r-- | framework/source/uielement/toolbarmanager.cxx | 18 | ||||
-rw-r--r-- | vcl/source/window/toolbox2.cxx | 2 |
2 files changed, 20 insertions, 0 deletions
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx index bf8fc492cc6b..e973cc4a904c 100644 --- a/framework/source/uielement/toolbarmanager.cxx +++ b/framework/source/uielement/toolbarmanager.cxx @@ -1715,6 +1715,11 @@ bool ToolBarManager::MenuItemAllowed( sal_uInt16 ) const if( !(pToolBar->GetFloatStyle() & WB_CLOSEABLE) ) aQuickCustomizationMenu.EnableItem(MENUITEM_TOOLBAR_CLOSE, false); + // Temporary stores a Command --> Url map to update contextual menu with the + // correct icons. The popup icons are by default the same as those in the + // toolbar. They are not correct for contextual popup menu. + std::map< OUString, Image > commandToImage; + // Go through all toolbar items and add them to the context menu for ( nPos = 0; nPos < m_pToolBar->GetItemCount(); ++nPos ) { @@ -1726,6 +1731,7 @@ bool ToolBarManager::MenuItemAllowed( sal_uInt16 ) const pVisibleItemsPopupMenu->CheckItem( STARTID_CUSTOMIZE_POPUPMENU+nPos, m_pToolBar->IsItemVisible( nId ) ); pVisibleItemsPopupMenu->SetItemCommand( STARTID_CUSTOMIZE_POPUPMENU+nPos, aCommandURL ); Image aImage( GetImageFromURL( m_xFrame, aCommandURL, false ) ); + commandToImage[aCommandURL] = aImage; pVisibleItemsPopupMenu->SetItemImage( STARTID_CUSTOMIZE_POPUPMENU+nPos, aImage ); } else @@ -1733,6 +1739,18 @@ bool ToolBarManager::MenuItemAllowed( sal_uInt16 ) const pVisibleItemsPopupMenu->InsertSeparator(); } } + + // Now we go through all the contextual menu to update the icons + std::map< OUString, Image >::iterator it; + for ( nPos = 0; nPos < pMenu->GetItemCount(); ++nPos ) + { + sal_uInt16 nId = pMenu->GetItemId( nPos ); + OUString cmdUrl = pMenu->GetItemCommand( nId ); + it = commandToImage.find( cmdUrl ); + if (it != commandToImage.end()) { + pMenu->SetItemImage( nId, it->second ); + } + } } else { diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index 4aa4269c6902..1f9ac125f884 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -1828,6 +1828,7 @@ void ToolBox::UpdateCustomMenu() { sal_uInt16 id = it->mnId + TOOLBOX_MENUITEM_START; pMenu->InsertItem( id, it->maText, it->maImageOriginal, MenuItemBits::NONE, OString()); + pMenu->SetItemCommand( id, it->maCommandStr ); pMenu->EnableItem( id, it->mbEnabled ); pMenu->CheckItem ( id, it->meState == TRISTATE_TRUE ); } @@ -1844,6 +1845,7 @@ void ToolBox::UpdateCustomMenu() { sal_uInt16 id = it->mnId + TOOLBOX_MENUITEM_START; pMenu->InsertItem( id, it->maText, it->maImageOriginal, MenuItemBits::NONE, OString() ); + pMenu->SetItemCommand( id, it->maCommandStr ); pMenu->EnableItem( id, it->mbEnabled ); pMenu->CheckItem( id, it->meState == TRISTATE_TRUE ); } |