Accepting request 646502 from LibreOffice:6.1
- bsc#1110348 LO-L3: [PPTX] Charts having weird/darker/ugly background versus Office 365 and strange artefacts where overlapping * bsc1110348.patch OBS-URL: https://build.opensuse.org/request/show/646502 OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=724
This commit is contained in:
parent
31bd0eaf2b
commit
c35863cc97
275
bsc1110348.patch
Normal file
275
bsc1110348.patch
Normal file
@ -0,0 +1,275 @@
|
||||
From b77f4f69bb2f1d3ab740446799da2fd3db9094da Mon Sep 17 00:00:00 2001
|
||||
From: Balazs Varga <balazs.varga991@gmail.com>
|
||||
Date: Wed, 31 Oct 2018 08:43:47 +0100
|
||||
Subject: [PATCH] tdf#108104 OOXML Import: Fix Hatch fill in Charts
|
||||
|
||||
Sets an explicit fill hatch, or creates a named fill hatch
|
||||
and stored in a global container. With this patch the
|
||||
SUPPORTED MS Office hatch styles by LibreOffice, or the custom
|
||||
LibreOffice hatches will be appeared correctly instead of the
|
||||
previous display as horizontal lines in LibreOffice.
|
||||
(The background color of the hatch styles are not imported correcty,
|
||||
but that is another BUG.)
|
||||
|
||||
Change-Id: Ifda9dc805dd08f58db10b35f40d7f511a8614f77
|
||||
Reviewed-on: https://gerrit.libreoffice.org/62681
|
||||
Tested-by: Jenkins
|
||||
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
|
||||
Reviewed-on: https://gerrit.libreoffice.org/62891
|
||||
Reviewed-by: Andras Timar <andras.timar@collabora.com>
|
||||
---
|
||||
|
||||
diff --git a/include/oox/drawingml/shapepropertymap.hxx b/include/oox/drawingml/shapepropertymap.hxx
|
||||
index 2fb237c..dd2d0d4 100644
|
||||
--- a/include/oox/drawingml/shapepropertymap.hxx
|
||||
+++ b/include/oox/drawingml/shapepropertymap.hxx
|
||||
@@ -71,7 +71,7 @@
|
||||
FillBitmapOffsetX,
|
||||
FillBitmapOffsetY,
|
||||
FillBitmapRectanglePoint,
|
||||
- FillHatch,
|
||||
+ FillHatch, /// Explicit fill hatch or name of a fill hatch stored in a global container.
|
||||
ShadowXDistance,
|
||||
FillBitmapName,
|
||||
FillBackground,
|
||||
@@ -87,12 +87,13 @@
|
||||
bool mbNamedLineDash; /// True = use named line dash instead of explicit line dash.
|
||||
bool mbNamedFillGradient; /// True = use named fill gradient instead of explicit fill gradient.
|
||||
bool mbNamedFillBitmap; /// True = use named fill bitmap instead of explicit fill bitmap.
|
||||
+ bool mbNamedFillHatch; /// True = use named fill hatch instead of explicit fill hatch.
|
||||
|
||||
static ShapePropertyInfo DEFAULT; /// Default property info (used as default parameter of other methods).
|
||||
|
||||
explicit ShapePropertyInfo(const ShapePropertyIds& rnPropertyIds,
|
||||
bool bNamedLineMarker, bool bNamedLineDash,
|
||||
- bool bNamedFillGradient, bool bNamedFillBitmap);
|
||||
+ bool bNamedFillGradient, bool bNamedFillBitmap, bool bNamedFillHatch);
|
||||
|
||||
bool has(ShapeProperty ePropId) const
|
||||
{
|
||||
@@ -147,6 +148,8 @@
|
||||
bool setFillBitmap( sal_Int32 nPropId, const css::uno::Any& rValue );
|
||||
/** Sets an explicit fill bitmap and pushes the name to FillBitmapName */
|
||||
bool setFillBitmapName( const css::uno::Any& rValue );
|
||||
+ /** Sets an explicit fill hatch, or creates a named fill hatch. */
|
||||
+ bool setFillHatch( sal_Int32 nPropId, const css::uno::Any& rValue );
|
||||
|
||||
// not implemented, to prevent implicit conversion from enum to int
|
||||
css::uno::Any& operator[]( ShapeProperty ePropId ) = delete;
|
||||
diff --git a/include/oox/helper/modelobjecthelper.hxx b/include/oox/helper/modelobjecthelper.hxx
|
||||
index eb9c7ba..016b963 100644
|
||||
--- a/include/oox/helper/modelobjecthelper.hxx
|
||||
+++ b/include/oox/helper/modelobjecthelper.hxx
|
||||
@@ -32,6 +32,7 @@
|
||||
namespace graphic { class XGraphic; }
|
||||
namespace container { class XNameContainer; }
|
||||
namespace drawing { struct LineDash; }
|
||||
+ namespace drawing { struct Hatch; }
|
||||
namespace drawing { struct PolyPolygonBezierCoords; }
|
||||
namespace lang { class XMultiServiceFactory; }
|
||||
} } }
|
||||
@@ -105,6 +106,8 @@
|
||||
|
||||
OUString insertTransGrandient( const css::awt::Gradient& rGradient );
|
||||
|
||||
+ OUString insertFillHatch( const css::drawing::Hatch& rHatch );
|
||||
+
|
||||
/** Inserts a new named fill graphic, returns the bitmap name, based on
|
||||
an internal constant name with a new unused index appended. */
|
||||
OUString insertFillBitmapXGraphic(css::uno::Reference<css::graphic::XGraphic> const & rxGraphic);
|
||||
@@ -117,10 +120,12 @@
|
||||
ObjectContainer maGradientContainer; ///< Contains all named fill gradients.
|
||||
ObjectContainer maTransGradContainer; ///< Contains all named transparency Gradients.
|
||||
ObjectContainer maBitmapUrlContainer; ///< Contains all named fill bitmap URLs.
|
||||
+ ObjectContainer maHatchContainer; ///< Contains all named fill hatches.
|
||||
const OUString maDashNameBase; ///< Base name for all named line dashes.
|
||||
const OUString maGradientNameBase; ///< Base name for all named fill gradients.
|
||||
const OUString maTransGradNameBase; ///< Base name for all named fill gradients.
|
||||
const OUString maBitmapUrlNameBase; ///< Base name for all named fill bitmap URLs.
|
||||
+ const OUString maHatchNameBase; ///< Base name for all named fill hatch URLs.
|
||||
};
|
||||
|
||||
|
||||
diff --git a/oox/source/drawingml/chart/objectformatter.cxx b/oox/source/drawingml/chart/objectformatter.cxx
|
||||
index 5b5f67b..2eaad42 100644
|
||||
--- a/oox/source/drawingml/chart/objectformatter.cxx
|
||||
+++ b/oox/source/drawingml/chart/objectformatter.cxx
|
||||
@@ -449,7 +449,8 @@
|
||||
PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID,
|
||||
PROP_FillStyle, PROP_FillColor, PROP_FillTransparence, PROP_INVALID, PROP_FillGradientName,
|
||||
PROP_FillBitmapName, PROP_FillBitmapMode, PROP_FillBitmapSizeX, PROP_FillBitmapSizeY,
|
||||
- PROP_FillBitmapPositionOffsetX, PROP_FillBitmapPositionOffsetY, PROP_FillBitmapRectanglePoint
|
||||
+ PROP_FillBitmapPositionOffsetX, PROP_FillBitmapPositionOffsetY, PROP_FillBitmapRectanglePoint,
|
||||
+ PROP_FillHatchName
|
||||
};
|
||||
|
||||
static const ShapePropertyIds spnLinearPropIds =
|
||||
@@ -458,7 +459,8 @@
|
||||
PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID,
|
||||
PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID,
|
||||
PROP_INVALID, PROP_INVALID, PROP_INVALID, PROP_INVALID,
|
||||
- PROP_INVALID, PROP_INVALID, PROP_INVALID
|
||||
+ PROP_INVALID, PROP_INVALID, PROP_INVALID,
|
||||
+ PROP_INVALID
|
||||
};
|
||||
|
||||
static const ShapePropertyIds spnFilledPropIds =
|
||||
@@ -487,15 +489,15 @@
|
||||
PROP_FillBitmapPositionOffsetX,
|
||||
PROP_FillBitmapPositionOffsetY,
|
||||
PROP_FillBitmapRectanglePoint,
|
||||
- PROP_FillHatch
|
||||
+ PROP_HatchName
|
||||
};
|
||||
|
||||
/** Property info for common chart objects, to be used in ShapePropertyMap. */
|
||||
-static const ShapePropertyInfo saCommonPropInfo( spnCommonPropIds, false, true, true, true );
|
||||
+static const ShapePropertyInfo saCommonPropInfo( spnCommonPropIds, false, true, true, true, true );
|
||||
/** Property info for linear data series, to be used in ShapePropertyMap. */
|
||||
-static const ShapePropertyInfo saLinearPropInfo( spnLinearPropIds, false, true, true, true );
|
||||
+static const ShapePropertyInfo saLinearPropInfo( spnLinearPropIds, false, true, true, true, true );
|
||||
/** Property info for filled data series, to be used in ShapePropertyMap. */
|
||||
-static const ShapePropertyInfo saFilledPropInfo( spnFilledPropIds, false, true, true, true );
|
||||
+static const ShapePropertyInfo saFilledPropInfo( spnFilledPropIds, false, true, true, true, true );
|
||||
|
||||
/** Contains information about formatting of a specific chart object type. */
|
||||
struct ObjectTypeFormatEntry
|
||||
diff --git a/oox/source/drawingml/shapepropertymap.cxx b/oox/source/drawingml/shapepropertymap.cxx
|
||||
index fcb1549..b072403 100644
|
||||
--- a/oox/source/drawingml/shapepropertymap.cxx
|
||||
+++ b/oox/source/drawingml/shapepropertymap.cxx
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <com/sun/star/awt/Gradient.hpp>
|
||||
#include <com/sun/star/beans/NamedValue.hpp>
|
||||
#include <com/sun/star/drawing/LineDash.hpp>
|
||||
+#include <com/sun/star/drawing/Hatch.hpp>
|
||||
#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
|
||||
#include <com/sun/star/graphic/XGraphic.hpp>
|
||||
|
||||
@@ -53,15 +54,16 @@
|
||||
|
||||
} // namespace
|
||||
|
||||
-ShapePropertyInfo ShapePropertyInfo::DEFAULT( spnDefaultShapeIds, true, false, false, false );
|
||||
+ShapePropertyInfo ShapePropertyInfo::DEFAULT( spnDefaultShapeIds, true, false, false, false, false );
|
||||
|
||||
ShapePropertyInfo::ShapePropertyInfo( const ShapePropertyIds& rnPropertyIds,
|
||||
- bool bNamedLineMarker, bool bNamedLineDash, bool bNamedFillGradient, bool bNamedFillBitmap ) :
|
||||
+ bool bNamedLineMarker, bool bNamedLineDash, bool bNamedFillGradient, bool bNamedFillBitmap, bool bNamedFillHatch ) :
|
||||
mrPropertyIds(rnPropertyIds),
|
||||
mbNamedLineMarker( bNamedLineMarker ),
|
||||
mbNamedLineDash( bNamedLineDash ),
|
||||
mbNamedFillGradient( bNamedFillGradient ),
|
||||
- mbNamedFillBitmap( bNamedFillBitmap )
|
||||
+ mbNamedFillBitmap( bNamedFillBitmap ),
|
||||
+ mbNamedFillHatch( bNamedFillHatch )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -108,6 +110,9 @@
|
||||
|
||||
case ShapeProperty::FillBitmapName:
|
||||
return setFillBitmapName(rValue);
|
||||
+
|
||||
+ case ShapeProperty::FillHatch:
|
||||
+ return setFillHatch( nPropId, rValue );
|
||||
|
||||
default:; // suppress compiler warnings
|
||||
}
|
||||
@@ -168,6 +173,22 @@
|
||||
return false;
|
||||
}
|
||||
|
||||
+bool ShapePropertyMap::setFillHatch( sal_Int32 nPropId, const Any& rValue )
|
||||
+{
|
||||
+ // push hatch explicitly
|
||||
+ if( !maShapePropInfo.mbNamedFillHatch )
|
||||
+ return setAnyProperty( nPropId, rValue );
|
||||
+
|
||||
+ // create named hatch and push its name
|
||||
+ if( rValue.has< Hatch >() )
|
||||
+ {
|
||||
+ OUString aHatchName = mrModelObjHelper.insertFillHatch( rValue.get< Hatch >() );
|
||||
+ return !aHatchName.isEmpty() && setProperty( nPropId, aHatchName );
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
bool ShapePropertyMap::setGradientTrans( sal_Int32 nPropId, const Any& rValue )
|
||||
{
|
||||
// create named gradient and push its name
|
||||
diff --git a/oox/source/helper/modelobjecthelper.cxx b/oox/source/helper/modelobjecthelper.cxx
|
||||
index 4929dc2..02481e2 100644
|
||||
--- a/oox/source/helper/modelobjecthelper.cxx
|
||||
+++ b/oox/source/helper/modelobjecthelper.cxx
|
||||
@@ -22,6 +22,7 @@
|
||||
#include <com/sun/star/awt/Gradient.hpp>
|
||||
#include <com/sun/star/container/XNameContainer.hpp>
|
||||
#include <com/sun/star/drawing/LineDash.hpp>
|
||||
+#include <com/sun/star/drawing/Hatch.hpp>
|
||||
#include <com/sun/star/drawing/PolyPolygonBezierCoords.hpp>
|
||||
#include <com/sun/star/lang/XMultiServiceFactory.hpp>
|
||||
#include <com/sun/star/graphic/XGraphic.hpp>
|
||||
@@ -92,12 +93,14 @@
|
||||
maMarkerContainer( rxModelFactory, "com.sun.star.drawing.MarkerTable" ),
|
||||
maDashContainer( rxModelFactory, "com.sun.star.drawing.DashTable" ),
|
||||
maGradientContainer( rxModelFactory, "com.sun.star.drawing.GradientTable" ),
|
||||
- maTransGradContainer( rxModelFactory, "com.sun.star.drawing.TransparencyGradientTable" ),
|
||||
+ maTransGradContainer( rxModelFactory, "com.sun.star.drawing.TransparencyGradientTable" ),
|
||||
maBitmapUrlContainer( rxModelFactory, "com.sun.star.drawing.BitmapTable" ),
|
||||
+ maHatchContainer( rxModelFactory, "com.sun.star.drawing.HatchTable" ),
|
||||
maDashNameBase( "msLineDash " ),
|
||||
maGradientNameBase( "msFillGradient " ),
|
||||
maTransGradNameBase( "msTransGradient " ),
|
||||
- maBitmapUrlNameBase( "msFillBitmap " )
|
||||
+ maBitmapUrlNameBase( "msFillBitmap " ),
|
||||
+ maHatchNameBase( "msFillHatch " )
|
||||
{
|
||||
}
|
||||
|
||||
@@ -137,6 +140,11 @@
|
||||
return OUString();
|
||||
}
|
||||
|
||||
+OUString ModelObjectHelper::insertFillHatch( const Hatch& rHatch )
|
||||
+{
|
||||
+ return maHatchContainer.insertObject( maHatchNameBase, Any( rHatch ), true );
|
||||
+}
|
||||
+
|
||||
uno::Reference<awt::XBitmap> ModelObjectHelper::getFillBitmap(OUString const & rGraphicName)
|
||||
{
|
||||
uno::Reference<awt::XBitmap> xBitmap;
|
||||
diff --git a/oox/source/ppt/slidepersist.cxx b/oox/source/ppt/slidepersist.cxx
|
||||
index 8d6abaa..2704a24 100644
|
||||
--- a/oox/source/ppt/slidepersist.cxx
|
||||
+++ b/oox/source/ppt/slidepersist.cxx
|
||||
@@ -171,7 +171,7 @@
|
||||
|
||||
oox::drawingml::ShapePropertyIds aPropertyIds = oox::drawingml::ShapePropertyInfo::DEFAULT.mrPropertyIds;
|
||||
aPropertyIds[oox::drawingml::ShapeProperty::FillGradient] = PROP_FillGradientName;
|
||||
- oox::drawingml::ShapePropertyInfo aPropInfo( aPropertyIds, true, false, true, false );
|
||||
+ oox::drawingml::ShapePropertyInfo aPropInfo( aPropertyIds, true, false, true, false, false );
|
||||
oox::drawingml::ShapePropertyMap aPropMap( rFilterBase.getModelObjectHelper(), aPropInfo );
|
||||
mpBackgroundPropertiesPtr->pushToPropMap( aPropMap, rFilterBase.getGraphicHelper(), 0, nPhClr );
|
||||
PropertySet( mxPage ).setProperty( PROP_Background, aPropMap.makePropertySet() );
|
||||
diff --git a/oox/source/token/properties.txt b/oox/source/token/properties.txt
|
||||
index 86dd843..1b06aa7 100644
|
||||
--- a/oox/source/token/properties.txt
|
||||
+++ b/oox/source/token/properties.txt
|
||||
@@ -171,6 +171,7 @@
|
||||
FillGradient
|
||||
FillGradientName
|
||||
FillHatch
|
||||
+FillHatchName
|
||||
FillStyle
|
||||
FillTransparence
|
||||
FillTransparenceGradient
|
||||
@@ -202,6 +203,7 @@
|
||||
GenerateVbaEvents
|
||||
Geometry3D
|
||||
GradientName
|
||||
+HatchName
|
||||
Graphic
|
||||
GraphicBitmap
|
||||
GraphicColorMode
|
@ -1,3 +1,9 @@
|
||||
-------------------------------------------------------------------
|
||||
Mon Nov 5 19:57:23 UTC 2018 - andras.timar@collabora.com
|
||||
|
||||
- bsc#1110348 LO-L3: [PPTX] Charts having weird/darker/ugly background versus Office 365 and strange artefacts where overlapping
|
||||
* bsc1110348.patch
|
||||
|
||||
-------------------------------------------------------------------
|
||||
Wed Oct 31 11:08:05 UTC 2018 - Tomáš Chvátal <tchvatal@suse.com>
|
||||
|
||||
|
@ -12,7 +12,7 @@
|
||||
# license that conforms to the Open Source Definition (Version 1.9)
|
||||
# published by the Open Source Initiative.
|
||||
|
||||
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
||||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||||
#
|
||||
|
||||
|
||||
@ -104,6 +104,8 @@ Patch3: mediawiki-no-broken-help.diff
|
||||
Patch4: libreoffice-java-sched.patch
|
||||
Patch5: old-boost.patch
|
||||
Patch6: 0001-call-System.runFinalizersOnExit-by-reflection-since-.patch
|
||||
# Bug 1110348 - LO-L3: [PPTX] Charts having weird/darker/ugly background versus Office 365 and strange artefacts where overlapping
|
||||
Patch7: bsc1110348.patch
|
||||
# try to save space by using hardlinks
|
||||
Patch990: install-with-hardlinks.diff
|
||||
BuildRequires: %{name}-share-linker
|
||||
@ -950,6 +952,7 @@ Provides %{langname} translations and additional resources (help files, etc.) fo
|
||||
%patch3
|
||||
%patch4 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch990 -p1
|
||||
|
||||
# Disable some of the failing tests (some are random)
|
||||
|
Loading…
x
Reference in New Issue
Block a user