diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-06-26 14:38:44 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-06-26 16:49:07 +0200 |
commit | 8f1569568a2816dd4c6e4d9f015557d451ccfadf (patch) | |
tree | c10d65b10705b62e446a8c4d455422ee7e33b719 /framework | |
parent | f6604dd2cfbc6d4041ef019951a7f1341197ee26 (diff) |
use underlying BitmapEx
Change-Id: I1ddc5a50a54bb230af1c76a8098c68fdb0495df0
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/97234
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'framework')
7 files changed, 32 insertions, 36 deletions
diff --git a/framework/source/fwe/classes/addonsoptions.cxx b/framework/source/fwe/classes/addonsoptions.cxx index 725bec2f5405..faa8ffdc5713 100644 --- a/framework/source/fwe/classes/addonsoptions.cxx +++ b/framework/source/fwe/classes/addonsoptions.cxx @@ -227,7 +227,7 @@ class AddonsOptions_Impl : public ConfigItem OUString GetAddonsToolbarResourceName( sal_uInt32 nIndex ) const; OUString GetAddonsNotebookBarResourceName( sal_uInt32 nIndex ) const; const Sequence< Sequence< PropertyValue > >& GetAddonsHelpMenu () const { return m_aCachedHelpMenuProperties;} - Image GetImageFromURL( const OUString& aURL, bool bBig, bool bNoScale ); + BitmapEx GetImageFromURL( const OUString& aURL, bool bBig, bool bNoScale ); const MergeMenuInstructionContainer& GetMergeMenuInstructions() const { return m_aCachedMergeMenuInsContainer;} bool GetMergeToolbarInstructions( const OUString& rToolbarName, MergeToolbarInstructionContainer& rToolbarInstructions ) const; bool GetMergeNotebookBarInstructions( const OUString& rNotebookBarName, MergeNotebookBarInstructionContainer& rNotebookBarInstructions ) const; @@ -243,8 +243,8 @@ class AddonsOptions_Impl : public ConfigItem struct OneImageEntry { - Image aScaled; ///< cached scaled image - Image aImage; ///< original un-scaled image + BitmapEx aScaled; ///< cached scaled image + BitmapEx aImage; ///< original un-scaled image OUString aURL; ///< URL in case it is not loaded yet }; @@ -256,7 +256,7 @@ class AddonsOptions_Impl : public ConfigItem // accessed in this order OneImageEntry aSizeEntry[2]; ImageEntry() {} - void addImage(ImageSize eSize, const Image &rImage, const OUString &rURL); + void addImage(ImageSize eSize, const BitmapEx &rImage, const OUString &rURL); }; typedef std::unordered_map< OUString, ImageEntry > ImageManager; @@ -301,7 +301,7 @@ class AddonsOptions_Impl : public ConfigItem bool ReadStatusBarItem( const OUString& aStatusbarItemNodeName, Sequence< PropertyValue >& aStatusbarItem ); std::unique_ptr<ImageEntry> ReadImageData( const OUString& aImagesNodeName ); void ReadAndAssociateImages( const OUString& aURL, const OUString& aImageId ); - Image ReadImageFromURL( const OUString& aURL ); + BitmapEx ReadImageFromURL( const OUString& aURL ); bool HasAssociatedImages( const OUString& aURL ); void SubstituteVariables( OUString& aURL ); @@ -315,7 +315,7 @@ class AddonsOptions_Impl : public ConfigItem Sequence< OUString > GetPropertyNamesStatusbarItem( const OUString& aPropertyRootNode ) const; Sequence< OUString > GetPropertyNamesImages( const OUString& aPropertyRootNode ) const; - bool CreateImageFromSequence( Image& rImage, Sequence< sal_Int8 >& rBitmapDataSeq ) const; + bool CreateImageFromSequence( BitmapEx& rImage, Sequence< sal_Int8 >& rBitmapDataSeq ) const; DECL_LINK(NotifyEvent, void*, void); @@ -350,7 +350,7 @@ class AddonsOptions_Impl : public ConfigItem }; void AddonsOptions_Impl::ImageEntry::addImage(ImageSize eSize, - const Image &rImage, + const BitmapEx& rImage, const OUString &rURL) { aSizeEntry[static_cast<int>(eSize)].aImage = rImage; @@ -577,19 +577,19 @@ bool AddonsOptions_Impl::GetMergeNotebookBarInstructions( // public method -static Image ScaleImage( const Image &rImage, bool bBig ) +static BitmapEx ScaleImage( const BitmapEx &rImage, bool bBig ) { Size aSize = ToolBox::GetDefaultImageSize(bBig ? ToolBoxButtonSize::Large : ToolBoxButtonSize::Small); - BitmapEx aScaleBmp(rImage.GetBitmapEx()); + BitmapEx aScaleBmp(rImage); SAL_INFO("fwk", "Addons: expensive scale image from " << aScaleBmp.GetSizePixel() << " to " << aSize); aScaleBmp.Scale(aSize, BmpScaleFlag::BestQuality); - return Image(aScaleBmp); + return aScaleBmp; } -Image AddonsOptions_Impl::GetImageFromURL( const OUString& aURL, bool bBig, bool bNoScale ) +BitmapEx AddonsOptions_Impl::GetImageFromURL( const OUString& aURL, bool bBig, bool bNoScale ) { - Image aImage; + BitmapEx aImage; SAL_INFO("fwk", "Expensive: Addons GetImageFromURL " << aURL << " big " << (bBig?"big":"little") << @@ -1561,9 +1561,9 @@ void AddonsOptions_Impl::SubstituteVariables( OUString& aURL ) comphelper::getProcessComponentContext(), aURL); } -Image AddonsOptions_Impl::ReadImageFromURL(const OUString& aImageURL) +BitmapEx AddonsOptions_Impl::ReadImageFromURL(const OUString& aImageURL) { - Image aImage; + BitmapEx aImage; std::unique_ptr<SvStream> pStream = UcbStreamHelper::CreateStream( aImageURL, StreamMode::STD_READ ); if ( pStream && ( pStream->GetErrorCode() == ERRCODE_NONE )) @@ -1583,7 +1583,7 @@ Image AddonsOptions_Impl::ReadImageFromURL(const OUString& aImageURL) if( !aBitmapEx.IsTransparent() ) aBitmapEx = BitmapEx( aBitmapEx.GetBitmap(), COL_LIGHTMAGENTA ); - aImage = Image(aBitmapEx); + aImage = aBitmapEx; } } @@ -1609,7 +1609,7 @@ void AddonsOptions_Impl::ReadAndAssociateImages( const OUString& aURL, const OUS aFileURL.append( ".bmp" ); aImageEntry.addImage( !i ? IMGSIZE_SMALL : IMGSIZE_BIG, - Image(), aFileURL.makeStringAndClear() ); + BitmapEx(), aFileURL.makeStringAndClear() ); } m_aImageManager.emplace( aURL, aImageEntry ); @@ -1632,7 +1632,7 @@ std::unique_ptr<AddonsOptions_Impl::ImageEntry> AddonsOptions_Impl::ReadImageDat if ( i < PROPERTYCOUNT_EMBEDDED_IMAGES ) { // Extract image data from the embedded hex binary sequence - Image aImage; + BitmapEx aImage; if (( aPropertyData[i] >>= aImageDataSeq ) && aImageDataSeq.hasElements() && ( CreateImageFromSequence( aImage, aImageDataSeq ) ) ) @@ -1653,31 +1653,29 @@ std::unique_ptr<AddonsOptions_Impl::ImageEntry> AddonsOptions_Impl::ReadImageDat SubstituteVariables( aImageURL ); - pEntry->addImage(IMGSIZE_BIG, Image(), aImageURL); + pEntry->addImage(IMGSIZE_BIG, BitmapEx(), aImageURL); } } return pEntry; } -bool AddonsOptions_Impl::CreateImageFromSequence( Image& rImage, Sequence< sal_Int8 >& rBitmapDataSeq ) const +bool AddonsOptions_Impl::CreateImageFromSequence( BitmapEx& rImage, Sequence< sal_Int8 >& rBitmapDataSeq ) const { bool bResult = false; if ( rBitmapDataSeq.hasElements() ) { SvMemoryStream aMemStream( rBitmapDataSeq.getArray(), rBitmapDataSeq.getLength(), StreamMode::STD_READ ); - BitmapEx aBitmapEx; - ReadDIBBitmapEx(aBitmapEx, aMemStream); + ReadDIBBitmapEx(rImage, aMemStream); - if( !aBitmapEx.IsTransparent() ) + if( !rImage.IsTransparent() ) { // Support non-transparent bitmaps to be downward compatible with OOo 1.1.x addons - aBitmapEx = BitmapEx( aBitmapEx.GetBitmap(), COL_LIGHTMAGENTA ); + rImage = BitmapEx( rImage.GetBitmap(), COL_LIGHTMAGENTA ); } - rImage = Image( aBitmapEx ); bResult = true; } @@ -1925,7 +1923,7 @@ const MergeStatusbarInstructionContainer& AddonsOptions::GetMergeStatusbarInstru // public method -Image AddonsOptions::GetImageFromURL( const OUString& aURL, bool bBig, bool bNoScale ) const +BitmapEx AddonsOptions::GetImageFromURL( const OUString& aURL, bool bBig, bool bNoScale ) const { MutexGuard aGuard( GetOwnStaticMutex() ); return m_pImpl->GetImageFromURL( aURL, bBig, bNoScale ); @@ -1933,7 +1931,7 @@ Image AddonsOptions::GetImageFromURL( const OUString& aURL, bool bBig, bool bNoS // public method -Image AddonsOptions::GetImageFromURL( const OUString& aURL, bool bBig ) const +BitmapEx AddonsOptions::GetImageFromURL( const OUString& aURL, bool bBig ) const { return GetImageFromURL( aURL, bBig, false ); } diff --git a/framework/source/fwe/helper/actiontriggerhelper.cxx b/framework/source/fwe/helper/actiontriggerhelper.cxx index deb14f0e1e2e..a8fe71861116 100644 --- a/framework/source/fwe/helper/actiontriggerhelper.cxx +++ b/framework/source/fwe/helper/actiontriggerhelper.cxx @@ -201,7 +201,7 @@ static void InsertSubMenuItems( Menu* pSubMenu, sal_uInt16& nItemId, const Refer else { // Support add-on images for context menu interceptors - Image aImage = aAddonOptions.GetImageFromURL( aCommandURL, false, true ); + Image aImage(aAddonOptions.GetImageFromURL(aCommandURL, false, true)); if ( !!aImage ) pSubMenu->SetItemImage( nNewItemId, aImage ); } diff --git a/framework/source/uielement/FixedImageToolbarController.cxx b/framework/source/uielement/FixedImageToolbarController.cxx index c42bb518a8e7..cfc987d97d3f 100644 --- a/framework/source/uielement/FixedImageToolbarController.cxx +++ b/framework/source/uielement/FixedImageToolbarController.cxx @@ -47,7 +47,7 @@ FixedImageToolbarController::FixedImageToolbarController( bool bBigImages(SvtMiscOptions().AreCurrentSymbolsLarge()); - Image aImage = AddonsOptions().GetImageFromURL(aCommand, bBigImages, true); + Image aImage(AddonsOptions().GetImageFromURL(aCommand, bBigImages, true)); m_pFixedImageControl->SetImage(aImage); m_pFixedImageControl->SetSizePixel(m_pFixedImageControl->GetOptimalSize()); diff --git a/framework/source/uielement/addonstoolbarmanager.cxx b/framework/source/uielement/addonstoolbarmanager.cxx index e2d61259943f..9a850e0bc39e 100644 --- a/framework/source/uielement/addonstoolbarmanager.cxx +++ b/framework/source/uielement/addonstoolbarmanager.cxx @@ -96,11 +96,9 @@ static Image RetrieveImage( Reference< css::frame::XFrame > const & rFrame, if (bBigImage) eImageType = vcl::ImageType::Size26; - Image aImage; - if ( !aImageId.isEmpty() ) { - aImage = framework::AddonsOptions().GetImageFromURL( aImageId, bBigImage ); + Image aImage(framework::AddonsOptions().GetImageFromURL(aImageId, bBigImage)); if ( !!aImage ) return aImage; else @@ -109,7 +107,7 @@ static Image RetrieveImage( Reference< css::frame::XFrame > const & rFrame, return aImage; } - aImage = framework::AddonsOptions().GetImageFromURL( aURL, bBigImage ); + Image aImage(framework::AddonsOptions().GetImageFromURL(aURL, bBigImage)); if ( !aImage ) aImage = vcl::CommandInfoProvider::GetImageForCommand(aImageId, rFrame, eImageType); diff --git a/framework/source/uielement/imagebuttontoolbarcontroller.cxx b/framework/source/uielement/imagebuttontoolbarcontroller.cxx index 5c0cbeba873f..c14606db0000 100644 --- a/framework/source/uielement/imagebuttontoolbarcontroller.cxx +++ b/framework/source/uielement/imagebuttontoolbarcontroller.cxx @@ -63,7 +63,7 @@ ImageButtonToolbarController::ImageButtonToolbarController( { bool bBigImages( SvtMiscOptions().AreCurrentSymbolsLarge() ); - Image aImage = AddonsOptions().GetImageFromURL( aCommand, bBigImages, true ); + Image aImage(AddonsOptions().GetImageFromURL(aCommand, bBigImages, true)); // Height will be controlled by scaling according to button height m_xToolbar->SetItemImage( m_nID, aImage ); diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 29bc7f3e4643..21a4c82b731b 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -1873,7 +1873,7 @@ void MenuBarManager::FillMenuImages(Reference< XFrame > const & _xFrame, Menu* _ OUString aMenuItemCommand = _pMenu->GetItemCommand( nId ); Image aImage = vcl::CommandInfoProvider::GetImageForCommand(aMenuItemCommand, _xFrame); if ( !aImage ) - aImage = aAddonOptions.GetImageFromURL( aMenuItemCommand, false ); + aImage = Image(aAddonOptions.GetImageFromURL(aMenuItemCommand, false)); _pMenu->SetItemImage( nId, aImage ); } diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx index 670b30873233..07e5fd1b1a83 100644 --- a/framework/source/uielement/toolbarmanager.cxx +++ b/framework/source/uielement/toolbarmanager.cxx @@ -321,7 +321,7 @@ void ToolBarManager::RefreshImages() // empty image. bool bBigImages = eImageType != vcl::ImageType::Size16; if ( !aImage ) - aImage = framework::AddonsOptions().GetImageFromURL(aCommandURL, bBigImages); + aImage = Image(framework::AddonsOptions().GetImageFromURL(aCommandURL, bBigImages)); m_pToolBar->SetItemImage( it.first, aImage ); } } @@ -1263,7 +1263,7 @@ void ToolBarManager::RequestImages() // Try also to query for add-on images before giving up and use an // empty image. if ( !aImage ) - aImage = framework::AddonsOptions().GetImageFromURL( aCmdURLSeq[i], aMiscOptions.AreCurrentSymbolsLarge()); + aImage = Image(framework::AddonsOptions().GetImageFromURL(aCmdURLSeq[i], aMiscOptions.AreCurrentSymbolsLarge())); pIter->second.nImageInfo = 1; // mark image as module based } |