cui/source/tabpages/textattr.cxx |   84 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 84 insertions(+)

New commits:
commit 9ac82acc8bdb7d4028b946e21f7222dbfafa5f62
Author:     Caolán McNamara <caol...@redhat.com>
AuthorDate: Mon Sep 17 21:25:00 2018 +0100
Commit:     Caolán McNamara <caol...@redhat.com>
CommitDate: Tue Sep 18 10:03:21 2018 +0200

    Resolves: tdf#119860 missing block of code to set text positioning
    
    Change-Id: Ia57fc61147179a92569918417692e44e11ad6061
    Reviewed-on: https://gerrit.libreoffice.org/60646
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caol...@redhat.com>
    Tested-by: Caolán McNamara <caol...@redhat.com>

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

Reply via email to