From ce01727e4d6779ea128aa1be09f4af8cad4e1854 Mon Sep 17 00:00:00 2001 From: Miklos Vajna Date: Tue, 12 Mar 2019 18:43:43 +0100 Subject: [PATCH] sw HTML export, field shadings: give text portion background priority If the user explicitly gives a background color to the field portion, then respect that, don't overwrite with the field shading (the UI does the same). Change-Id: I7c35618f82a37ef1dd16c03b82651268767813af Reviewed-on: https://gerrit.libreoffice.org/69127 Reviewed-by: Miklos Vajna Tested-by: Jenkins --- sw/qa/extras/htmlexport/data/field-shade.odt | Bin 8249 -> 8592 bytes sw/qa/extras/htmlexport/htmlexport.cxx | 6 ++++++ sw/source/filter/html/htmlatr.cxx | 2 ++ sw/source/filter/html/htmlfldw.cxx | 13 +++++++++++-- sw/source/filter/html/wrthtml.hxx | 4 ++++ 5 files changed, 23 insertions(+), 2 deletions(-) diff --git a/sw/qa/extras/htmlexport/data/field-shade.odt b/sw/qa/extras/htmlexport/data/field-shade.odt index 38debcb48d0b724c262e41224be2bc8d4ee95703..2533be68c49e34c6c418e81aa5ccf517acc9e5b9 100644 GIT binary patch delta 6773 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 dmg9b|^!KGetItem(), rHWrt ); + rHWrt.maStartedAttributes[pPos->GetItem()->Which()]++; rHWrt.m_nCSS1Script = nCSS1Script; } } @@ -1981,6 +1982,7 @@ void HTMLEndPosLst::OutEndAttrs( SwHTMLWriter& rHWrt, sal_Int32 nPos, if( !bSkipOut ) { Out( aHTMLAttrFnTab, *pPos->GetItem(), rHWrt ); + rHWrt.maStartedAttributes[pPos->GetItem()->Which()]--; } RemoveItem_( i ); } diff --git a/sw/source/filter/html/htmlfldw.cxx b/sw/source/filter/html/htmlfldw.cxx index e70e856bae819..0ad1b55d5db7a 100644 --- a/sw/source/filter/html/htmlfldw.cxx +++ b/sw/source/filter/html/htmlfldw.cxx @@ -539,7 +539,16 @@ Writer& OutHTML_SwFormatField( Writer& rWrt, const SfxPoolItem& rHt ) if( pTextField ) { SwHTMLWriter& rHTMLWrt = static_cast(rWrt); - if (SwViewOption::IsFieldShadings()) + bool bFieldShadings = SwViewOption::IsFieldShadings(); + if (bFieldShadings) + { + // If there is a text portion background started already, that should have priority. + auto it = rHTMLWrt.maStartedAttributes.find(RES_CHRATR_BACKGROUND); + if (it != rHTMLWrt.maStartedAttributes.end()) + bFieldShadings = it->second <= 0; + } + + if (bFieldShadings) { OStringBuffer sOut; sOut.append("<" + rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_span); @@ -556,7 +565,7 @@ Writer& OutHTML_SwFormatField( Writer& rWrt, const SfxPoolItem& rHt ) OutHTML_SwField( rWrt, pField, pTextField->GetTextNode(), pTextField->GetStart() ); - if (SwViewOption::IsFieldShadings()) + if (bFieldShadings) HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_span, false); } diff --git a/sw/source/filter/html/wrthtml.hxx b/sw/source/filter/html/wrthtml.hxx index 9c96d8680232e..b92b95f70e27c 100644 --- a/sw/source/filter/html/wrthtml.hxx +++ b/sw/source/filter/html/wrthtml.hxx @@ -22,6 +22,7 @@ #include #include #include +#include #include #include @@ -398,6 +399,9 @@ public: bool m_bParaDotLeaders : 1; // for TOC dot leaders // 25 + /// Tracks which text portion attributes are currently open: a which id -> open count map. + std::map maStartedAttributes; + explicit SwHTMLWriter( const OUString& rBaseURL ); virtual ~SwHTMLWriter() override;