[Libreoffice-commits] core.git: Branch 'distro/vector/vector-5.4' - sw/qa sw/source
Miklos Vajna
vmiklos at collabora.co.uk
Thu Apr 19 07:34:43 UTC 2018
sw/qa/extras/htmlexport/data/reqif-table2.odt |binary
sw/qa/extras/htmlexport/htmlexport.cxx | 21 ++++++++++++++++++---
sw/source/filter/html/htmltabw.cxx | 17 +++++++++--------
3 files changed, 27 insertions(+), 11 deletions(-)
New commits:
commit 5f6c58009a311f85d2b5c830cde843ad4f711917
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date: Wed Apr 18 18:56:05 2018 +0200
sw XHTML export: close <col> for tables
By switching to HtmlWriter instead of manually constructing HTML
elements / attributes.
Also fix a validity problem for ReqIF (transitional XHTML still allows
that, so not depending on mbXHTML here).
Change-Id: I4f3fef781fdbb4c72824701ad6d380cece8e6f81
Reviewed-on: https://gerrit.libreoffice.org/53120
Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>
Tested-by: Jenkins <ci at libreoffice.org>
(cherry picked from commit b263c92250834993f954ed9535f67225d330861c)
diff --git a/sw/qa/extras/htmlexport/data/reqif-table2.odt b/sw/qa/extras/htmlexport/data/reqif-table2.odt
new file mode 100644
index 000000000000..772dde0dd6a9
Binary files /dev/null and b/sw/qa/extras/htmlexport/data/reqif-table2.odt differ
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx
index 9901d0cac702..f4f23d0ef59a 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -56,9 +56,12 @@ private:
setFilterOptions("XHTML");
else if (getTestName().indexOf("ReqIf") != -1)
{
- setImportFilterOptions("xhtmlns=reqif-xhtml");
- // Bypass filter detect.
- setImportFilterName("HTML (StarWriter)");
+ if (OString(filename).endsWith(".xhtml"))
+ {
+ setImportFilterOptions("xhtmlns=reqif-xhtml");
+ // Bypass filter detect.
+ setImportFilterName("HTML (StarWriter)");
+ }
// Export options (implies XHTML).
setFilterOptions("xhtmlns=reqif-xhtml");
}
@@ -475,6 +478,18 @@ DECLARE_HTMLEXPORT_TEST(testReqIfTable, "reqif-table.xhtml")
assertXPathNoAttribute(pDoc, "/html/body/div/table/tr/th", "bgcolor");
}
+DECLARE_HTMLEXPORT_TEST(testReqIfTable2, "reqif-table2.odt")
+{
+ SvStream* pStream = maTempFile.GetStream(StreamMode::READ);
+ CPPUNIT_ASSERT(pStream);
+ pStream->Seek(STREAM_SEEK_TO_END);
+ sal_uInt64 nLength = pStream->Tell();
+ pStream->Seek(0);
+ OString aStream(read_uInt8s_ToOString(*pStream, nLength));
+ // This failed, <reqif-xhtml:td width="..."> was written.
+ CPPUNIT_ASSERT(aStream.indexOf("<reqif-xhtml:td>") != -1);
+}
+
DECLARE_HTMLEXPORT_TEST(testReqIfList, "reqif-list.xhtml")
{
SvStream* pStream = maTempFile.GetStream(StreamMode::READ);
diff --git a/sw/source/filter/html/htmltabw.cxx b/sw/source/filter/html/htmltabw.cxx
index a28157019d84..d78e29be4729 100644
--- a/sw/source/filter/html/htmltabw.cxx
+++ b/sw/source/filter/html/htmltabw.cxx
@@ -344,6 +344,10 @@ void SwHTMLWrtTable::OutTableCell( SwHTMLWriter& rWrt,
}
}
+ if (rWrt.mbReqIF)
+ // ReqIF implies strict XHTML: no width for <td>.
+ bOutWidth = false;
+
long nHeight = pCell->GetHeight() > 0
? GetAbsHeight( pCell->GetHeight(), nRow, nRowSpan )
: 0;
@@ -741,8 +745,8 @@ void SwHTMLWrtTable::Write( SwHTMLWriter& rWrt, sal_Int16 eAlign,
const SwWriteTableCol *pColumn = m_aCols[nCol];
- OStringBuffer sOutStr;
- sOutStr.append('<').append(rWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_col);
+ HtmlWriter html(rWrt.Strm(), rWrt.maNamespace);
+ html.start(OOO_STRING_SVTOOLS_HTML_col);
sal_uInt32 nWidth;
bool bRel;
@@ -757,14 +761,11 @@ void SwHTMLWrtTable::Write( SwHTMLWriter& rWrt, sal_Int16 eAlign,
nWidth = bRel ? GetRelWidth(nCol,1) : GetAbsWidth(nCol,1);
}
- sOutStr.append(' ').append(OOO_STRING_SVTOOLS_HTML_O_width).
- append("=\"");
if( bRel )
- sOutStr.append(static_cast<sal_Int32>(nWidth)).append('*');
+ html.attribute(OOO_STRING_SVTOOLS_HTML_O_width, OString::number(nWidth) + "*");
else
- sOutStr.append(static_cast<sal_Int32>(SwHTMLWriter::ToPixel(nWidth,false)));
- sOutStr.append("\">");
- rWrt.Strm().WriteCharPtr( sOutStr.makeStringAndClear().getStr() );
+ html.attribute(OOO_STRING_SVTOOLS_HTML_O_width, OString::number(SwHTMLWriter::ToPixel(nWidth,false)));
+ html.end();
if( bColGroups && pColumn->bRightBorder && nCol<nCols-1 )
{
More information about the Libreoffice-commits
mailing list