diff options
author | Miklos Vajna <vmiklos@collabora.com> | 2023-08-24 08:34:38 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-08-24 10:19:07 +0200 |
commit | 178421a6c719dac9c16f220b76292fec16a53f60 (patch) | |
tree | 1eae6071d42b23ba580cb0b2f74b3db9246c536c /writerfilter | |
parent | bf1e649e6f626268db99d20ae921669ed557c3af (diff) |
tdf#77760 sw floattable: add support for footnotes, DOCX import
This was originally added in commit
2fe248f2b36d541c0d243a620c217058a50a9d5d (tdf#87460 DOCX import: fix
missing endnote in floattable, 2015-06-23), because Writer core only
allows footnotes in floating tables since commit
56da1d30afe48cc4acd79567052a575e81f8c7a0 (tdf#77760 sw floattable: add
support for footnotes, doc model, 2023-08-22).
The DOCX export works already.
The ODT filter also works: there is a mechanism to try to not insert
footnotes in text frames, but the way XMLTextImportHelper::IsInFrame()
is implemented means that it only rejects footnotes directly in text
frames, not in tables-in-textframes, which is the interesting case for
us.
Change-Id: I90a5f0228385b2e3db8d994c6c76064fe595f439
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156024
Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'writerfilter')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableHandler.cxx | 12 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapperTableHandler.hxx | 5 | ||||
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 1 |
3 files changed, 2 insertions, 16 deletions
diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx index 5b0971eee20f..a942e303cae9 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.cxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.cxx @@ -88,8 +88,7 @@ DomainMapperTableHandler::DomainMapperTableHandler( css::uno::Reference<css::text::XTextAppendAndConvert> xText, DomainMapper_Impl& rDMapper_Impl) : m_xText(std::move(xText)), - m_rDMapper_Impl( rDMapper_Impl ), - m_bHadFootOrEndnote(false) + m_rDMapper_Impl( rDMapper_Impl ) { } @@ -1546,8 +1545,7 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel, bool bTab } // If we have a table with a start and an end position, we should make it a floating one. - // Unless the table had a foot or endnote, as Writer doesn't support those in TextFrames. - if (xTable.is() && xStart.is() && xEnd.is() && !m_bHadFootOrEndnote) + if (xTable.is() && xStart.is() && xEnd.is()) { uno::Reference<beans::XPropertySet> xTableProperties(xTable, uno::UNO_QUERY); bool bIsRelative = false; @@ -1675,7 +1673,6 @@ void DomainMapperTableHandler::endTable(unsigned int nestedTableLevel, bool bTab m_aTableProperties.clear(); m_aCellProperties.clear(); m_aRowProperties.clear(); - m_bHadFootOrEndnote = false; #ifdef DBG_UTIL TagLogger::getInstance().endElement(); @@ -1752,11 +1749,6 @@ void DomainMapperTableHandler::endCell(const css::uno::Reference< css::text::XTe m_aRowRanges.push_back(comphelper::containerToSequence(m_aCellRange)); } -void DomainMapperTableHandler::setHadFootOrEndnote(bool bHadFootOrEndnote) -{ - m_bHadFootOrEndnote = bHadFootOrEndnote; -} - DomainMapper_Impl& DomainMapperTableHandler::getDomainMapperImpl() { return m_rDMapper_Impl; diff --git a/writerfilter/source/dmapper/DomainMapperTableHandler.hxx b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx index f05fc1e474f1..d67c4d26bb7c 100644 --- a/writerfilter/source/dmapper/DomainMapperTableHandler.hxx +++ b/writerfilter/source/dmapper/DomainMapperTableHandler.hxx @@ -67,9 +67,6 @@ class DomainMapperTableHandler final : public virtual SvRefBase PropertyMapVector1 m_aRowProperties; TablePropertyMapPtr m_aTableProperties; - /// Did we have a foot or endnote in this table? - bool m_bHadFootOrEndnote; - TableStyleSheetEntry * endTableGetTableStyle(TableInfo & rInfo, std::vector<css::beans::PropertyValue>& rFrameProperties, bool bConvertToFloating); @@ -116,8 +113,6 @@ public: */ void endCell(const css::uno::Reference< css::text::XTextRange > & end); - void setHadFootOrEndnote(bool bHadFootOrEndnote); - DomainMapper_Impl& getDomainMapperImpl(); }; diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index d9faf0c206a4..4b7e91978128 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -9355,7 +9355,6 @@ void DomainMapper_Impl::substream(Id rName, { case NS_ooxml::LN_footnote: case NS_ooxml::LN_endnote: - m_pTableHandler->setHadFootOrEndnote(true); m_bHasFtn = true; break; } |