|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
From abb84c2cce54a903ef846cbfe297b2bbc62ff260 Mon Sep 17 00:00:00 2001
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
From: =?UTF-8?q?Caol=C3=A1n=20McNamara?= <caolanm@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
Date: Thu, 17 Jan 2013 12:41:11 +0000
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
Subject: [PATCH] Resolves: fdo#58730 workaround [UL|LR]Space 100% problem
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
If all paragraph margins are 100% on import, ignore that as being the implicit
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
default. That avoids explicit 100% being set onto the awesome [UL|LR]Space
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
which takes a relative propsize of 100% as a flag that its value field is
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
absolute and so rejected by SwTxtFmtColl::Modify as a candidate for getting its
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
true value initialized relative to its parent, so it ends up as an absolute 0
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
Always elide the property on export because writing individual
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
margin-foos provides better backward compatibility with older versions
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
anyway.
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
Trigged by 3c5facfce42a0dbe362d6b9fa5ac374fd76f51a1
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
Change-Id: I55f6ceeae287b7d8e99befa4bd3cc06738a21299
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
(cherry picked from commit 23c099a0236062724430efb986251637095c8d4f)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
Signed-off-by: Michael Stahl <mstahl@redhat.com>
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
---
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
xmloff/source/text/txtexppr.cxx | 8 ++++++++
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
xmloff/source/text/txtimppr.cxx | 23 ++++++++++++++++++++++-
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
2 files changed, 30 insertions(+), 1 deletion(-)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
diff --git a/xmloff/source/text/txtexppr.cxx b/xmloff/source/text/txtexppr.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
index 67341bd..c84774e 100644
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
--- a/xmloff/source/text/txtexppr.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+++ b/xmloff/source/text/txtexppr.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
@@ -463,6 +463,8 @@ void XMLTextExportPropertySetMapper::ContextFilter(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
XMLPropertyState* pClip11State = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
XMLPropertyState* pClipState = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ // filter fo:margin
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ XMLPropertyState* pAllParaMarginRel = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
XMLPropertyState* pAllParaMargin = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
XMLPropertyState* pAllMargin = NULL;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
@@ -580,6 +582,7 @@ void XMLTextExportPropertySetMapper::ContextFilter(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
case CTF_NUMBERINGSTYLENAME: pListStyleName = propertie; break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
case CTF_TEXT_CLIP11: pClip11State = propertie; break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
case CTF_TEXT_CLIP: pClipState = propertie; break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ case CTF_PARAMARGINALL_REL: pAllParaMarginRel = propertie; break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
case CTF_PARAMARGINALL: pAllParaMargin = propertie; break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
case CTF_MARGINALL: pAllMargin = propertie; break;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
}
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
@@ -633,6 +636,11 @@ void XMLTextExportPropertySetMapper::ContextFilter(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
lcl_checkMultiProperty(pParaBottomMarginState, pParaBottomMarginRelState);
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
lcl_checkMultiProperty(pParaFirstLineState, pParaFirstLineRelState);
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ if (pAllParaMarginRel)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ { // because older OOo/LO versions can't read fo:margin:
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ pAllParaMarginRel->mnIndex = -1; // just export individual attributes...
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ pAllParaMarginRel->maValue.clear();
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
if (pAllParaMargin)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
{
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
pAllParaMargin->mnIndex = -1; // just export individual attributes...
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
diff --git a/xmloff/source/text/txtimppr.cxx b/xmloff/source/text/txtimppr.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
index 8c6d0aa..49e8d92 100644
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
--- a/xmloff/source/text/txtimppr.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+++ b/xmloff/source/text/txtimppr.cxx
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
@@ -266,6 +266,26 @@ void XMLTextImportPropertyMapper::FontDefaultsCheck(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
}
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
}
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//fdo#58730 The [UL|LR]Space class has a deficiency where "100%" also serves as
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//a flag that the value is an absolute value so we can't truly handle an
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//up/lower space property which wants to specify its 200% upper but 100% lower
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//of its parent (try typing 100% vs 200% into the edit style dialog and revisit
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//your style). So on xml load that ends up meaning 200%, 0 lower. This is a
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//crock.
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+//On import clear 100% all-margins relative sizes.
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+static bool
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+isNotDefaultRelSize(const XMLPropertyState* pRelState, const UniReference<XMLPropertySetMapper>& rPrMap)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+{
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ if (rPrMap->GetEntryContextId(pRelState->mnIndex) == CTF_PARAMARGINALL_REL)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ {
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ sal_Int32 nTemp = 0;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ pRelState->maValue >>= nTemp;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ return nTemp != 100;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ }
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ return true;
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+}
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
void XMLTextImportPropertyMapper::finished(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
::std::vector< XMLPropertyState >& rProperties,
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
sal_Int32 /*nStartIndex*/, sal_Int32 /*nEndIndex*/ ) const
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
@@ -434,7 +454,8 @@ void XMLTextImportPropertyMapper::finished(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
for (sal_uInt16 i = 0; i < 4; i++)
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
{
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
- if (pAllParaMargin && !pParaMargins[i])
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ if (pAllParaMargin && !pParaMargins[i]
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
+ && isNotDefaultRelSize(pAllParaMargin, getPropertySetMapper()))
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
{
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
#if OSL_DEBUG_LEVEL > 0
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
sal_Int16 nTmp = getPropertySetMapper()->GetEntryContextId(
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
--
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
1.7.11.7
|
|
![](https://seccdn.libravatar.org/avatar/458cba86a9e3c708792786cff75e0477690c6568e870645d469cf18baaf50224?s=16&d=retro) |
c93eaca |
|