summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2023-04-11 21:24:58 +0300
committerXisco Fauli <xiscofauli@libreoffice.org>2023-04-17 16:25:15 +0200
commit4e89ff82d24277737653214a311702cd7c006d09 (patch)
tree67cb753e0bcd6b4989bb24eecb9f6a7f7a3c94b1
parent09dfba6441e0365860d3f2061c05ff2e31bc7799 (diff)
tdf#154761: each dl needs a dd to actually indent
Change-Id: Iaa75048b33ab82250d205cbf821e57425754ef5e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150244 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> Signed-off-by: Xisco Fauli <xiscofauli@libreoffice.org> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/150491
-rw-r--r--sw/qa/extras/htmlexport/htmlexport.cxx3
-rw-r--r--sw/source/filter/html/htmlatr.cxx2
-rw-r--r--sw/source/filter/html/htmltabw.cxx19
-rw-r--r--sw/source/filter/html/wrthtml.hxx1
4 files changed, 6 insertions, 19 deletions
diff --git a/sw/qa/extras/htmlexport/htmlexport.cxx b/sw/qa/extras/htmlexport/htmlexport.cxx
index 8ed189b44bb0..6834434bf3da 100644
--- a/sw/qa/extras/htmlexport/htmlexport.cxx
+++ b/sw/qa/extras/htmlexport/htmlexport.cxx
@@ -2407,8 +2407,9 @@ CPPUNIT_TEST_FIXTURE(HtmlExportTest, testTdf153923)
// Without the fix in place, this would fail
CPPUNIT_ASSERT(pDoc);
+ assertXPath(pDoc, "/html/body//dl", 3);
// The 'dd' tag was not closed
- assertXPath(pDoc, "/html/body//dd");
+ assertXPath(pDoc, "/html/body//dd", 3);
}
CPPUNIT_TEST_FIXTURE(SwHtmlDomExportTest, testTdf153923_ReqIF)
diff --git a/sw/source/filter/html/htmlatr.cxx b/sw/source/filter/html/htmlatr.cxx
index 1bf0a45e82e3..822718763e4d 100644
--- a/sw/source/filter/html/htmlatr.cxx
+++ b/sw/source/filter/html/htmlatr.cxx
@@ -136,6 +136,7 @@ void SwHTMLWriter::OutAndSetDefList( sal_uInt16 nNewLvl )
if( m_bLFPossible )
OutNewLine();
HTMLOutFuncs::Out_AsciiTag( Strm(), Concat2View(GetNamespace() + OOO_STRING_SVTOOLS_HTML_deflist) );
+ HTMLOutFuncs::Out_AsciiTag( Strm(), Concat2View(GetNamespace() + OOO_STRING_SVTOOLS_HTML_dd) );
IncIndentLevel();
m_bLFPossible = true;
}
@@ -147,6 +148,7 @@ void SwHTMLWriter::OutAndSetDefList( sal_uInt16 nNewLvl )
DecIndentLevel();
if( m_bLFPossible )
OutNewLine();
+ HTMLOutFuncs::Out_AsciiTag( Strm(), Concat2View(GetNamespace() + OOO_STRING_SVTOOLS_HTML_dd), false );
HTMLOutFuncs::Out_AsciiTag( Strm(), Concat2View(GetNamespace() + OOO_STRING_SVTOOLS_HTML_deflist), false );
m_bLFPossible = true;
}
diff --git a/sw/source/filter/html/htmltabw.cxx b/sw/source/filter/html/htmltabw.cxx
index 8c86f70c97ff..ab611724474d 100644
--- a/sw/source/filter/html/htmltabw.cxx
+++ b/sw/source/filter/html/htmltabw.cxx
@@ -1050,17 +1050,9 @@ Writer& OutHTML_SwTableNode( Writer& rWrt, SwTableNode & rNode,
}
}
- if( !pFlyFrameFormat && nNewDefListLvl != rHTMLWrt.m_nDefListLvl )
+ if( !pFlyFrameFormat && !rHTMLWrt.mbReqIF && nNewDefListLvl != rHTMLWrt.m_nDefListLvl )
rHTMLWrt.OutAndSetDefList( nNewDefListLvl );
- if( nNewDefListLvl )
- {
- if( rHTMLWrt.m_bLFPossible )
- rHTMLWrt.OutNewLine();
- HTMLOutFuncs::Out_AsciiTag( rWrt.Strm(), Concat2View(rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_dd) );
- rHTMLWrt.IncIndentLevel();
- }
-
// eFlyHoriOri and eTabHoriOri now only contain the values of
// LEFT/CENTER and RIGHT!
if( eFlyHoriOri!=text::HoriOrientation::NONE )
@@ -1185,15 +1177,6 @@ Writer& OutHTML_SwTableNode( Writer& rWrt, SwTableNode & rNode,
// move Pam behind the table
rHTMLWrt.m_pCurrentPam->GetPoint()->Assign( *rNode.EndOfSectionNode() );
- if (nNewDefListLvl)
- {
- rHTMLWrt.DecIndentLevel();
- if (rHTMLWrt.m_bLFPossible)
- rHTMLWrt.OutNewLine();
- // close the dd element
- HTMLOutFuncs::Out_AsciiTag(rWrt.Strm(), Concat2View(rHTMLWrt.GetNamespace() + OOO_STRING_SVTOOLS_HTML_dd), false);
- }
-
if( bPreserveForm )
{
rHTMLWrt.m_bPreserveForm = false;
diff --git a/sw/source/filter/html/wrthtml.hxx b/sw/source/filter/html/wrthtml.hxx
index b62aab60af6e..c083d688acb4 100644
--- a/sw/source/filter/html/wrthtml.hxx
+++ b/sw/source/filter/html/wrthtml.hxx
@@ -472,6 +472,7 @@ public:
void OutBasic(const SwHTMLWriter& rHTMLWrt);
+ // Used to indent inner blocks using dl/dd tags
void OutAndSetDefList( sal_uInt16 nNewLvl );
void OutStyleSheet( const SwPageDesc& rPageDesc );