[Libreoffice-commits] .: Branch 'distro/suse/suse-3.6' - oox/source

Libreoffice Gerrit user logerrit at kemper.freedesktop.org
Fri Oct 12 00:18:41 PDT 2012


 oox/source/drawingml/textparagraph.cxx           |    7 ++++---
 oox/source/drawingml/textparagraphproperties.cxx |   19 +++++++++++++++++--
 2 files changed, 21 insertions(+), 5 deletions(-)

New commits:
commit 3863ac87f7fcc9b59e2768f5cc9a8779b5d21d17
Author: Muthu Subramanian <sumuthu at suse.com>
Date:   Thu Oct 11 14:59:33 2012 +0530

    n#778854: Fixes quite some issues with bullet points.
    
    * Properties needs to be combined before applyed.
      Rather than applying them separately twice.
    * ParaMargins set to zero wrongly rather than boost::none
      This caused its own set of problems.
    * Hack: Push default zero to tabstops. This makes impress
      calculate proper values for tabstops using leftmargin.
    
    Conflicts:
    
    	oox/source/drawingml/textparagraph.cxx
    
    Change-Id: Ic92b4963525d713cdbe5f1c16abcdfa352c61512

diff --git a/oox/source/drawingml/textparagraph.cxx b/oox/source/drawingml/textparagraph.cxx
index 1e2d8e2..9f0b29d 100644
--- a/oox/source/drawingml/textparagraph.cxx
+++ b/oox/source/drawingml/textparagraph.cxx
@@ -112,15 +112,16 @@ void TextParagraph::insertAt(
         float fCharacterSize = nCharHeight > 0 ? GetFontHeight( nCharHeight ) :  18;
         if ( pTextParagraphStyle.get() )
         {
-            pTextParagraphStyle->pushToPropSet( &rFilterBase, xProps, aioBulletList, NULL, sal_True, fCharacterSize );
+            TextParagraphProperties aParaProp;
+            aParaProp.apply( *pTextParagraphStyle );
+            aParaProp.apply( maProperties );
+            aParaProp.pushToPropSet( &rFilterBase, xProps, aioBulletList, &pTextParagraphStyle->getBulletList(), sal_True, fCharacterSize, true );
             fCharacterSize = pTextParagraphStyle->getCharHeightPoints( fCharacterSize );
 
             // bullets have same color as following texts by default
             if( !aioBulletList.hasProperty( PROP_BulletColor ) && maRuns.size() > 0
                 && (*maRuns.begin())->getTextCharacterProperties().maCharColor.isUsed() )
                 aioBulletList[ PROP_BulletColor ] <<= (*maRuns.begin())->getTextCharacterProperties().maCharColor.getColor( rFilterBase.getGraphicHelper() );
-
-            maProperties.pushToPropSet( &rFilterBase, xProps, aioBulletList, &pTextParagraphStyle->getBulletList(), sal_True, fCharacterSize );
         }
 
         // empty paragraphs do not have bullets in ppt
diff --git a/oox/source/drawingml/textparagraphproperties.cxx b/oox/source/drawingml/textparagraphproperties.cxx
index abd0b3b..0ca8641 100644
--- a/oox/source/drawingml/textparagraphproperties.cxx
+++ b/oox/source/drawingml/textparagraphproperties.cxx
@@ -35,6 +35,7 @@
 #include <com/sun/star/awt/XBitmap.hpp>
 #include <com/sun/star/graphic/XGraphic.hpp>
 #include <com/sun/star/beans/PropertyValue.hpp>
+#include <com/sun/star/style/TabStop.hpp>
 
 #include "oox/helper/helper.hxx"
 #include "oox/helper/propertyset.hxx"
@@ -426,12 +427,15 @@ void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* p
         if ( noParaLeftMargin )
         {
             rioBulletMap[ PROP_LeftMargin ] <<= static_cast< sal_Int32 >( *noParaLeftMargin );
-            noParaLeftMargin = boost::optional< sal_Int32 >( 0 );
+            noParaLeftMargin = boost::none;
         }
         if ( noFirstLineIndentation )
         {
+            // Force Paragraph property as zero - impress seems to use the value from previous
+            // (non) bullet line if not set to zero explicitly :(
+            aPropSet.setProperty( PROP_ParaFirstLineIndent, 0 );
             rioBulletMap[ PROP_FirstLineOffset ] <<= static_cast< sal_Int32 >( *noFirstLineIndentation );
-            noFirstLineIndentation = boost::optional< sal_Int32 >( 0 );
+            noFirstLineIndentation = boost::none;
         }
         if ( nNumberingType != NumberingType::BITMAP && !rioBulletMap.hasProperty( PROP_BulletColor ) && pFilterBase )
             rioBulletMap[ PROP_BulletColor ] <<= static_cast< sal_Int32 >( maTextCharacterProperties.maCharColor.getColor( pFilterBase->getGraphicHelper()));
@@ -467,7 +471,18 @@ void TextParagraphProperties::pushToPropSet( const ::oox::core::XmlFilterBase* p
     if ( noParaLeftMargin )
         aPropSet.setProperty( PROP_ParaLeftMargin, sal_Int32( *noParaLeftMargin ) );
     if ( noFirstLineIndentation )
+    {
         aPropSet.setProperty( PROP_ParaFirstLineIndent, *noFirstLineIndentation );
+        if( bPushDefaultValues )
+        {
+            // Reset TabStops - these would be auto calculated by Impress
+            TabStop aTabStop;
+            aTabStop.Position = 0;
+            Sequence< TabStop > aSeq(1);
+            aSeq[0] = aTabStop;
+            aPropSet.setProperty( PROP_ParaTabStops, aSeq );
+        }
+    }
 }
 
 float TextParagraphProperties::getCharHeightPoints( float fDefault ) const


More information about the Libreoffice-commits mailing list