framework/source/uielement/toolbarmanager.cxx |   18 ++++++++++++++++++
 vcl/source/window/toolbox2.cxx                |    2 ++
 2 files changed, 20 insertions(+)

New commits:
commit 3090550b5297c86b63ba09ed1aa13bce4c0e5b70
Author: Philippe Jung <phil.j...@free.fr>
Date:   Thu Jun 18 15:19:14 2015 +0200

    tdf#91953 Mixture of icon sizes
    
    Now, whatever the size of toolbar icons, the toolbar
    context menu always shows small icons.
    
    Change-Id: Id17df15278d74ae75a3e82d54ecf7af310e0ceb4
    Reviewed-on: https://gerrit.libreoffice.org/16361
    Reviewed-by: Philippe Jung <phil.j...@free.fr>
    Tested-by: Philippe Jung <phil.j...@free.fr>

diff --git a/framework/source/uielement/toolbarmanager.cxx 
b/framework/source/uielement/toolbarmanager.cxx
index ac34a54..fbb1301 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -1713,6 +1713,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 )
         {
@@ -1724,6 +1729,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
@@ -1731,6 +1737,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 3e04d1b..585cdb7 100644
--- a/vcl/source/window/toolbox2.cxx
+++ b/vcl/source/window/toolbox2.cxx
@@ -1827,6 +1827,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 );
             }
@@ -1843,6 +1844,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 );
             }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to