From 4f6e104499625d69d2b37271d0fee52848c0a6d4 Mon Sep 17 00:00:00 2001 From: Jim Raykowski Date: Thu, 9 Aug 2018 20:07:35 -0800 Subject: tdf#111718 Fix interaction between bitmap and pattern settings MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Change-Id: I1c68b9f1f51cb15a30f56eef08dc384d10355bf1 Reviewed-on: https://gerrit.libreoffice.org/58805 Tested-by: Jenkins Reviewed-by: Tamás Zolnai --- cui/source/tabpages/tpbitmap.cxx | 23 ++++++++++++++++------- cui/source/tabpages/tppattern.cxx | 24 +++++++++++++++++------- 2 files changed, 33 insertions(+), 14 deletions(-) (limited to 'cui') diff --git a/cui/source/tabpages/tpbitmap.cxx b/cui/source/tabpages/tpbitmap.cxx index 5f51cc11a92a..e2a80c4d9473 100644 --- a/cui/source/tabpages/tpbitmap.cxx +++ b/cui/source/tabpages/tpbitmap.cxx @@ -154,14 +154,24 @@ void SvxBitmapTabPage::ActivatePage( const SfxItemSet& rSet ) { XFillBitmapItem aItem( rSet.Get(XATTR_FILLBITMAP) ); - sal_Int32 nPos = SearchBitmapList( aItem.GetName() ); - if ( nPos != LISTBOX_ENTRY_NOTFOUND ) + sal_Int32 nPos( 0 ); + if ( !aItem.isPattern() ) { - sal_uInt16 nId = m_xBitmapLB->GetItemId( static_cast( nPos ) ); - m_xBitmapLB->SelectItem( nId ); + nPos = SearchBitmapList( aItem.GetName() ); + if ( nPos == LISTBOX_ENTRY_NOTFOUND ) + nPos = 0; + } + else + { + m_xBitmapWidth->set_value( 100, FUNIT_NONE ); + m_xBitmapHeight->set_value( 100, FUNIT_NONE ); + const_cast(rSet).Put( XFillBmpSizeXItem( GetCoreValue( *m_xBitmapWidth, mePoolUnit ) ) ); + const_cast(rSet).Put( XFillBmpSizeYItem( GetCoreValue( *m_xBitmapHeight, mePoolUnit ) ) ); } -} + sal_uInt16 nId = m_xBitmapLB->GetItemId( static_cast( nPos ) ); + m_xBitmapLB->SelectItem( nId ); +} DeactivateRC SvxBitmapTabPage::DeactivatePage( SfxItemSet* _pSet ) { @@ -496,8 +506,7 @@ IMPL_LINK_NOARG(SvxBitmapTabPage, ModifyBitmapHdl, SvtValueSet*, void) ModifyBitmapStyleHdl( *m_xBitmapStyleLB ); ModifyBitmapPositionHdl( *m_xPositionLB ); - m_rXFSet.ClearItem(); - + m_rXFSet.ClearItem(XATTR_FILLBITMAP); m_rXFSet.Put(XFillStyleItem(drawing::FillStyle_BITMAP)); m_rXFSet.Put(XFillBitmapItem(OUString(), *pGraphicObject)); diff --git a/cui/source/tabpages/tppattern.cxx b/cui/source/tabpages/tppattern.cxx index 724637f15b4c..261bfba4b0f0 100644 --- a/cui/source/tabpages/tppattern.cxx +++ b/cui/source/tabpages/tppattern.cxx @@ -176,12 +176,18 @@ void SvxPatternTabPage::ActivatePage( const SfxItemSet& rSet ) else aString += aURL.getBase(); - sal_Int32 nPos = SearchPatternList( rSet.Get(XATTR_FILLBITMAP).GetName() ); - if( nPos != LISTBOX_ENTRY_NOTFOUND ) + XFillBitmapItem aItem( rSet.Get( XATTR_FILLBITMAP ) ); + + sal_Int32 nPos( 0 ); + if ( aItem.isPattern() ) { - sal_uInt16 nId = m_xPatternLB->GetItemId( static_cast( nPos ) ); - m_xPatternLB->SelectItem( nId ); + nPos = SearchPatternList( aItem.GetName() ); + if ( nPos == LISTBOX_ENTRY_NOTFOUND ) + nPos = 0; } + + sal_uInt16 nId = m_xPatternLB->GetItemId( static_cast( nPos ) ); + m_xPatternLB->SelectItem( nId ); } } @@ -212,6 +218,7 @@ bool SvxPatternTabPage::FillItemSet( SfxItemSet* _rOutAttrs ) _rOutAttrs->Put(XFillBitmapItem(OUString(), Graphic(aBitmapEx))); } + _rOutAttrs->Put(XFillBmpTileItem(true)); return true; } @@ -224,9 +231,12 @@ void SvxPatternTabPage::Reset( const SfxItemSet* ) // get bitmap and display it const XFillBitmapItem aBmpItem(OUString(), Graphic(m_xBitmapCtl->GetBitmapEx())); - m_rXFSet.Put( aBmpItem ); - m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() ); - m_aCtlPreview.Invalidate(); + if(aBmpItem.isPattern()) + { + m_rXFSet.Put( aBmpItem ); + m_aCtlPreview.SetAttributes( m_aXFillAttr.GetItemSet() ); + m_aCtlPreview.Invalidate(); + } ChangePatternHdl_Impl(m_xPatternLB.get()); -- cgit