In ODF import it happened that the parent style of "outline2" etc.
was always set to the "outline1" style of the first master page in
the document, but it should be the "outline1" style of the same master
page as the "outline2".
(regression from e955433c3574cb602dedba96bc645898f97858bf)
Change-Id: Ie563d5ee5c2040aeb6ca5c8bb25b195e15ea964e
This can happen when proportional line spacing is less than 100%
and "FontIndependentLineSpacing" is set, so just keep the height
of the very first line in case of IsFixedCellHeight() too.
Change-Id: Id231fc1f2373645e5420f877e8c2568ce8a1f099
This reverts commit 339e5d44a2afa0f5309a970f1ff11968103e336a
and commit d1987a3eaccfc3add35e6b9f8307ede857c5468e
"fix sd_import_tests after e42c05c1f96832572e525d85d89590f56f5a29dd".
It would need more work and understanding, so just revert.
Also, the problem with bnc#882631 is somewhere else, though this helped too.
The previous solution was good because older LO versions
import the fallback image without changing their code, but
it came out it does not fit to ODF standard so export
fallback image as the second object after the glTF model.
Change-Id: Ib9b2044b1f36b32d980cb79f6dac8dcf94d6209b
There is no an accepted mime type for glTF models yet, so
follow collada's mime type: model/vnd.collada+xml.
Change-Id: I1e23a95dbb0caea781dade819f8e08235cb5c1dc
We don't actually need to check mbAnchorCtr to change
text spacing. This txXfrm workaround works only with rectangles,
because other shapes' text area can be smaller then the shape
size. So add some condition to avoid using it for
other shapes.
Plus fix typos cause regression introduced in:
53c376d35b7223d53e8c9403390afe53d1f69089
Change-Id: I87917b8e0b2bb97ae1bba773e7dda7f81682736f
importExtDrawings() must be called as soon as possible,
before parser starts to parse the next shape.
Call it when graphicFrame tag is closed. This tag include
the reference to the SmartArt.
Plus fix up import tests.
Change-Id: I9e8d54c2b1afeb78a1122390dc4982d580c152ae
SmartArt import ignores some fragments during import if
drawing fragment exists, which seems to be not complete.
In this case font style is blank (white) in data (and drawing)
fragment and the real value is defined in the ignored color fragment.
So first make color fragment parsing work, then apply font
color of "node0" style on nodes of the SmartArt.
Actually, it's a workaround, because "node0" style label
is hardcoded, for a proper solution layout fragment should
be parsed too to get the right style label, but
it interferes with the drawing fragment by now.
Change-Id: I7db89176a07eee928563d42d3896fbd02190dfa8
Text list styles were copied, without proper
copy constructor and operator. It lad to mix
up list styles and so text font.
Change-Id: Iee7a6c0c1f74322fd7b80e41a262849f948e463a
In grouped list text area does not cover the whole
shape but just a part of it at the top.
To get the same visual effect modify text distance
attribute.
Change-Id: I32f30d0afbc1975f940c4562ec65f46596e97060
SvXMLImport::LO_4x does not mean 4.0+ any more.
(regression from 92cb21ebeda98c5193c50c4cf7ef3d60611c2a52)
Change-Id: Ib444762c2d6e4d051e99962eaff1b1ed34af983a
Apparently checking the TextWordWrap property in DrawingML::WriteText()
gives false by default for objects that do not have it set, which happens
to be everything except for custom shapes, which seem to be the only ones
to actually obey it. So all normal text would be exported as nowrap to .pptx
and read back as custom shape that has non-wrapping text.
I tried to make the property return true (which is what it should be in practice),
but that appears to be an exercise in futility, or I'm not mad enough to follow
the complicated property sets and whatnot. So just write it out only for custom
shapes. UNO purists, if any, are welcome to change the dynamic_cast to something
UNO-better if they manage without an ambiguous base class error.
Change-Id: I3ed906285fde88d902ac9c801986a82a7515638b
The InteropGrabBag property adds a lot of noise to this tests and it
doesn't actually have any purpose, because we are building their own
tests for InteropGrabBag-supported document attributes.
We have removed this property by default but we left a flag to enable
it when it's convenient for debugging.
Change-Id: I97cc7ba171783222a57ab5a96e5755070b949505
Users can select the fill color for a shape among the theme-defined
colors. This results in the following XML:
<wps:spPr>
...
<a:solidFill>
<a:schemeClr val="accent2"/>
</a:solidFill>
...
</wps:spPr>
Now we store both the original fill color and the name of the
theme-defined color, if it exists, on the import phase. They are put
into the InteropGrabBag of the shape with the names
OriginalSolidFillClr and SpPrSolidFillSchemeClr. Additionally, we
needed to to store the decoded theme color inside StyleFillRef.
On the export phase we have to take into account several combinations
of factors:
* If the final color for the shape fill is different from the
original color, we must ignore any theme attributes and write the
new color.
* If the fill color is unchanged and some theme color exists, we must
write the theme color.
* If the fill color is unchanged and no theme color exists, we must
check if the original color matches the style-defined color. If it
does, we must not write any <a:solidFill> tag.
* Otherwise we must write the <a:solidFill> tag with the RGB color.
The method putPropertiesToGrabBag was added to the Shape object for
convenience.
The data files for some /sd/qa/ unit tests were updated to reflect
the new properties inside the Shape InteropGrabBag.
Change-Id: If0915c5442872a8acab0a8a081f60c89c97277bd
Shape style attributes contain the default format for the shape in
case that no direct format is specified for it. This is an example
of the attribute we want to preserve with this patch:
<wps:style>
...
<a:fillRef idx="1">
<a:schemeClr val="accent1"/>
</a:fillRef>
...
</wps:style>
The relevant values in these tags are stored at the maShapeStyleRefs
member in the Shape object. The storage happens at
ShapeStyleContext::onCreateContext which is run when the <a:fillRef>
tag is opened. The ShapeStyleRef object contains the idx value and a
Color object which will contain the inner tag <a:schemeClr>.
The Color object has been modified to store the string value of
schemeClr. The storage happens at ColorValueContext::onStartElement
which is run when the tag <a:schemeClr> is opened.
Later, Shape::createAndInsert is called by the ShapeContextHandler to
create the actual XShape, this happens when the tag <wps:wsp> is
closed. createAndInsert puts idx and schemeClr values into the
InteropGrabBag property of the XShape with the name StyleFillRef.
On export time, when the shape data is written at
ShapeExport::WriteCustomShape, we added a call to
DrawingML::WriteShapeStyle. This method will check the existence of
the InteropGrabBag property in the shape, read the StyleFillRef prop
inside it and output the proper XML to the style definition.
DrawingML::WriteShapeStyle also writes some mock tags into the
<wps:style> because we found that they are compulsory. We will
replace them with the proper data in further patches.
The method putPropertyToGrabBag was added to the Shape object for
convenience.
The data files for some /sd/qa/ unit tests were updated to reflect
the new property StyleFillRef inside the InteropGrabBag.
Change-Id: I5ffa5242852461a1a709a8f169d40f0d7a2c9aa3