cui/source/tabpages/textattr.cxx | 84 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 84 insertions(+)
New commits: commit ca34dd89e38911f8a1fc7b6ce6afa3b39580fa21 Author: Caolán McNamara <caol...@redhat.com> AuthorDate: Mon Sep 17 21:25:00 2018 +0100 Commit: Michael Stahl <michael.st...@cib.de> CommitDate: Tue Sep 18 11:12:21 2018 +0200 Resolves: tdf#119860 missing block of code to set text positioning Change-Id: Ia57fc61147179a92569918417692e44e11ad6061 Reviewed-on: https://gerrit.libreoffice.org/60647 Tested-by: Jenkins Reviewed-by: Michael Stahl <michael.st...@cib.de> diff --git a/cui/source/tabpages/textattr.cxx b/cui/source/tabpages/textattr.cxx index d1ccabc9a9f9..b090e3f60822 100644 --- a/cui/source/tabpages/textattr.cxx +++ b/cui/source/tabpages/textattr.cxx @@ -214,6 +214,9 @@ void SvxTextAttrPage::Reset( const SfxItemSet* rAttrs ) SdrTextHorzAdjust eTHA = rAttrs->Get(SDRATTR_TEXT_HORZADJUST).GetValue(); RectPoint eRP = RectPoint::LB; + if (m_xTsbFullWidth->get_state() == TRISTATE_INDET) + m_xTsbFullWidth->set_state(TRISTATE_FALSE); + // Translate item values into local anchor position. switch (eTVA) { @@ -368,6 +371,87 @@ bool SvxTextAttrPage::FillItemSet( SfxItemSet* rAttrs) rAttrs->Put( makeSdrTextWordWrapItem( TRISTATE_TRUE == eState ) ); } + eState = m_xTsbContour->get_state(); + if( m_xTsbContour->get_state_changed_from_saved() ) + { + rAttrs->Put( makeSdrTextContourFrameItem( TRISTATE_TRUE == eState ) ); + } + + eState = m_xTsbFitToSize->get_state(); + if( m_xTsbFitToSize->get_state_changed_from_saved() ) + { + drawing::TextFitToSizeType eFTS; + switch( eState ) + { + default: ; //prevent warning + OSL_FAIL( "svx::SvxTextAttrPage::FillItemSet(), unhandled state!" ); + SAL_FALLTHROUGH; + case TRISTATE_FALSE: eFTS = drawing::TextFitToSizeType_AUTOFIT; break; + case TRISTATE_TRUE: eFTS = drawing::TextFitToSizeType_PROPORTIONAL; break; + } + rAttrs->Put( SdrTextFitToSizeTypeItem( eFTS ) ); + } + + // centered + RectPoint eRP = m_aCtlPosition.GetActualRP(); + SdrTextVertAdjust eTVA, eOldTVA; + SdrTextHorzAdjust eTHA, eOldTHA; + + switch( eRP ) + { + default: + case RectPoint::LT: eTVA = SDRTEXTVERTADJUST_TOP; + eTHA = SDRTEXTHORZADJUST_LEFT; break; + case RectPoint::LM: eTVA = SDRTEXTVERTADJUST_CENTER; + eTHA = SDRTEXTHORZADJUST_LEFT; break; + case RectPoint::LB: eTVA = SDRTEXTVERTADJUST_BOTTOM; + eTHA = SDRTEXTHORZADJUST_LEFT; break; + case RectPoint::MT: eTVA = SDRTEXTVERTADJUST_TOP; + eTHA = SDRTEXTHORZADJUST_CENTER; break; + case RectPoint::MM: eTVA = SDRTEXTVERTADJUST_CENTER; + eTHA = SDRTEXTHORZADJUST_CENTER; break; + case RectPoint::MB: eTVA = SDRTEXTVERTADJUST_BOTTOM; + eTHA = SDRTEXTHORZADJUST_CENTER; break; + case RectPoint::RT: eTVA = SDRTEXTVERTADJUST_TOP; + eTHA = SDRTEXTHORZADJUST_RIGHT; break; + case RectPoint::RM: eTVA = SDRTEXTVERTADJUST_CENTER; + eTHA = SDRTEXTHORZADJUST_RIGHT; break; + case RectPoint::RB: eTVA = SDRTEXTVERTADJUST_BOTTOM; + eTHA = SDRTEXTHORZADJUST_RIGHT; break; + } + + // #103516# Do not change values if adjust controls were disabled. + bool bIsDisabled(m_aCtlPosition.IsCompletelyDisabled()); + + if(!bIsDisabled) + { + if( m_xTsbFullWidth->get_state() == TRISTATE_TRUE ) + { + if (IsTextDirectionLeftToRight()) + eTHA = SDRTEXTHORZADJUST_BLOCK; + else + eTVA = SDRTEXTVERTADJUST_BLOCK; + } + + if ( rOutAttrs.GetItemState( SDRATTR_TEXT_VERTADJUST ) != SfxItemState::DONTCARE ) + { + eOldTVA = rOutAttrs.Get( SDRATTR_TEXT_VERTADJUST ).GetValue(); + if( eOldTVA != eTVA ) + rAttrs->Put( SdrTextVertAdjustItem( eTVA ) ); + } + else + rAttrs->Put( SdrTextVertAdjustItem( eTVA ) ); + + if ( rOutAttrs.GetItemState( SDRATTR_TEXT_HORZADJUST ) != SfxItemState::DONTCARE ) + { + eOldTHA = rOutAttrs.Get( SDRATTR_TEXT_HORZADJUST ).GetValue(); + if( eOldTHA != eTHA ) + rAttrs->Put( SdrTextHorzAdjustItem( eTHA ) ); + } + else + rAttrs->Put( SdrTextHorzAdjustItem( eTHA ) ); + } + return true; } _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits