diff options
-rw-r--r-- | framework/source/uielement/toolbarmanager.cxx | 29 |
1 files changed, 22 insertions, 7 deletions
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx index 0feaabe3b5a5..752138447db6 100644 --- a/framework/source/uielement/toolbarmanager.cxx +++ b/framework/source/uielement/toolbarmanager.cxx @@ -910,6 +910,8 @@ void ToolBarManager::FillToolbar( const Reference< XIndexAccess >& rItemContaine if ( m_bDisposed ) return; + sal_uInt16 nId( 1 ); + Reference< XModuleManager2 > xModuleManager = ModuleManager::create( m_xContext ); if ( !m_xDocImageManager.is() ) { @@ -1025,22 +1027,30 @@ void ToolBarManager::FillToolbar( const Reference< XIndexAccess >& rItemContaine if (( nType == css::ui::ItemType::DEFAULT ) && !aCommandURL.isEmpty() ) { - ToolBoxItemBits nItemBits = ConvertStyleToToolboxItemBits( nStyle ); - - m_pToolBar->InsertItem(aCommandURL, m_xFrame, nItemBits); - sal_Int16 nId = m_pToolBar->GetItemId(aCommandURL); + OUString aString(vcl::CommandInfoProvider::Instance().GetLabelForCommand(aCommandURL, m_xFrame)); + ToolBoxItemBits nItemBits = ConvertStyleToToolboxItemBits( nStyle ); if ( aMenuDesc.is() ) { m_aMenuMap[ nId ] = aMenuDesc; nItemBits |= ToolBoxItemBits::DROPDOWNONLY; } - + m_pToolBar->InsertItem( nId, aString, nItemBits ); + m_pToolBar->SetItemCommand( nId, aCommandURL ); + OUString sTooltip = vcl::CommandInfoProvider::Instance().GetTooltipForCommand(aCommandURL, m_xFrame); + if (!sTooltip.isEmpty()) + m_pToolBar->SetQuickHelpText( nId, sTooltip ); if ( !aLabel.isEmpty() ) + { m_pToolBar->SetItemText( nId, aLabel ); - if ( !bIsVisible ) - m_pToolBar->HideItem( nId ); + } + else + { + m_pToolBar->SetItemText( nId, aString ); + } + m_pToolBar->EnableItem( nId ); + m_pToolBar->SetItemState( nId, TRISTATE_FALSE ); // Fill command map. It stores all our commands and from what // image manager we got our image. So we can decide if we have to use an @@ -1056,6 +1066,11 @@ void ToolBarManager::FillToolbar( const Reference< XIndexAccess >& rItemContaine { pIter->second.aIds.push_back( nId ); } + + if ( !bIsVisible ) + m_pToolBar->HideItem( nId ); + + ++nId; } else if ( nType == css::ui::ItemType::SEPARATOR_LINE ) { |