Kaydet (Commit) 7f9928bf authored tarafından Michael Stahl's avatar Michael Stahl

fdo#38056: ODF import: fix page style attributes:

PageMasterImportPropMapper: in the case of a single "fo:border"
and "style:border-line-width" attribute, it is possible that the border
is imported wrongly, like this:

1. pAllBorderProperty is set from the imported value, with name "TopBorder"
2. individual pNewBorder[i] are created as copies from pAllBorderProperty,
   one of which also with name "TopBorder"
3. pNewBorder[i] is updated with widths from pBorderWidths[i]
4. the individual pNewBorder[i] are added to the property vector
5. the property vector is sorted by property name
6. the properites are applied in order; if the pNewBorder[TOP]
   happens to precede the pAllBorderProperty (which is indeterminate
   as they both have name "TopBorder"), then the pAllBorderProperty
   will overwrite the border widths computed in step 3.

Thus, nerf the various pAllFoo properties so they do not override
the individual Foo properties later on.

Change-Id: I87755f1184d59da2aa72ac053e6f77d7295d6958
üst 042686d3
......@@ -408,6 +408,57 @@ void PageMasterImportPropertyMapper::finished(::std::vector< XMLPropertyState >&
rProperties.push_back(*pFooterDynamic);
delete pFooterDynamic;
}
// fdo#38056: nerf the various AllFoo properties so they do not override
// the individual Foo properties later on
if (pAllPaddingProperty)
{
pAllPaddingProperty->mnIndex = -1;
}
if (pAllBorderProperty)
{
pAllBorderProperty->mnIndex = -1;
}
if (pAllBorderWidthProperty)
{
pAllBorderWidthProperty->mnIndex = -1;
}
if (pAllHeaderPaddingProperty)
{
pAllHeaderPaddingProperty->mnIndex = -1;
}
if (pAllHeaderBorderProperty)
{
pAllHeaderBorderProperty->mnIndex = -1;
}
if (pAllHeaderBorderWidthProperty)
{
pAllHeaderBorderWidthProperty->mnIndex = -1;
}
if (pAllFooterPaddingProperty)
{
pAllFooterPaddingProperty->mnIndex = -1;
}
if (pAllFooterBorderProperty)
{
pAllFooterBorderProperty->mnIndex = -1;
}
if (pAllFooterBorderWidthProperty)
{
pAllFooterBorderWidthProperty->mnIndex = -1;
}
if (pAllMarginProperty)
{
pAllMarginProperty->mnIndex = -1;
}
if (pAllHeaderMarginProperty)
{
pAllHeaderMarginProperty->mnIndex = -1;
}
if (pAllFooterMarginProperty)
{
pAllFooterMarginProperty->mnIndex = -1;
}
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment