[Libreoffice-commits] .: writerfilter/source

Miklos Vajna vmiklos at kemper.freedesktop.org
Mon Feb 20 06:56:35 PST 2012


 writerfilter/source/dmapper/DomainMapper_Impl.cxx |    7 ++++++-
 writerfilter/source/dmapper/PropertyIds.cxx       |    1 +
 writerfilter/source/dmapper/PropertyIds.hxx       |    1 +
 3 files changed, 8 insertions(+), 1 deletion(-)

New commits:
commit 4ac48167662c592c21025b89fe8f6925c680c6e0
Author: Miklos Vajna <vmiklos at suse.cz>
Date:   Mon Feb 20 15:46:08 2012 +0100

    n#695479 fix rtf/docx import of transparent frames
    
    Previously all frames were opaque by default, which is the Writer but
    not the docx/rtf default. Change the default, while keeping the
    possibility to set an opaque color background for the frame.

diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index 7fa1342..b4f52ee 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -703,7 +703,7 @@ void DomainMapper_Impl::CheckUnregisteredFrameConversion( )
             StyleSheetEntryPtr pParaStyle =
                 GetStyleSheetTable()->FindStyleSheetByConvertedStyleName(rAppendContext.pLastParagraphProperties->GetParaStyleName());
 
-            uno::Sequence< beans::PropertyValue > aFrameProperties(pParaStyle ? 15: 9);
+            uno::Sequence< beans::PropertyValue > aFrameProperties(pParaStyle ? 16: 9);
 
             if ( pParaStyle.get( ) )
             {
@@ -723,6 +723,7 @@ void DomainMapper_Impl::CheckUnregisteredFrameConversion( )
                 pFrameProperties[12].Name = rPropNameSupplier.GetName(PROP_RIGHT_MARGIN);
                 pFrameProperties[13].Name = rPropNameSupplier.GetName(PROP_TOP_MARGIN);
                 pFrameProperties[14].Name = rPropNameSupplier.GetName(PROP_BOTTOM_MARGIN);
+                pFrameProperties[15].Name = rPropNameSupplier.GetName(PROP_BACK_COLOR_TRANSPARENCY);
 
                 const ParagraphProperties* pStyleProperties = dynamic_cast<const ParagraphProperties*>( pParaStyle->pProperties.get() );
                 sal_Int32 nWidth =
@@ -795,6 +796,10 @@ void DomainMapper_Impl::CheckUnregisteredFrameConversion( )
                 pStyleProperties->GetvSpace() >= 0 ? pStyleProperties->GetvSpace() : 0;
                 pFrameProperties[13].Value <<= nHoriOrient == text::HoriOrientation::LEFT ? 0 : nLeftDist;
                 pFrameProperties[14].Value <<= nHoriOrient == text::HoriOrientation::RIGHT ? 0 : nRightDist;
+                // If there is no fill, the Word default is 100% transparency.
+                // Otherwise CellColorHandler has priority, and this setting
+                // will be ignored.
+                pFrameProperties[15].Value <<= 100;
 
                 lcl_MoveBorderPropertiesToFrame(aFrameProperties,
                     rAppendContext.pLastParagraphProperties->GetStartingRange(),
diff --git a/writerfilter/source/dmapper/PropertyIds.cxx b/writerfilter/source/dmapper/PropertyIds.cxx
index 173be40..c8f8a55 100644
--- a/writerfilter/source/dmapper/PropertyIds.cxx
+++ b/writerfilter/source/dmapper/PropertyIds.cxx
@@ -196,6 +196,7 @@ const rtl::OUString& PropertyNameSupplier::GetName( PropertyIds eId ) const
             case PROP_CONTOUR_POLY_POLYGON :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("ContourPolyPolygon")); break;
             case PROP_PAGE_TOGGLE          :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("PageToggle")); break;
             case PROP_BACK_COLOR           :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BackColor")); break;
+            case PROP_BACK_COLOR_TRANSPARENCY:  sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("BackColorTransparency")); break;
             case PROP_ALTERNATIVE_TEXT     :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("AlternativeText")); break;
             case PROP_HEADER_TEXT_LEFT     :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderTextLeft")); break;
             case PROP_HEADER_TEXT          :    sName = ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("HeaderText")); break;
diff --git a/writerfilter/source/dmapper/PropertyIds.hxx b/writerfilter/source/dmapper/PropertyIds.hxx
index dd20f06..b109cd6 100644
--- a/writerfilter/source/dmapper/PropertyIds.hxx
+++ b/writerfilter/source/dmapper/PropertyIds.hxx
@@ -51,6 +51,7 @@ enum PropertyIds
         ,PROP_ANCHOR_TYPE
         ,PROP_AUTOMATIC_DISTANCE
         ,PROP_BACK_COLOR
+        ,PROP_BACK_COLOR_TRANSPARENCY
         ,PROP_BITMAP
         ,PROP_BOTTOM_BORDER
         ,PROP_BOTTOM_BORDER_DISTANCE


More information about the Libreoffice-commits mailing list