Kaydet (Commit) 5cbe4bcc authored tarafından Miklos Vajna's avatar Miklos Vajna

tdf#94043 RTF filter: implement column separator handling

Change-Id: I9d74642156d7bb79577671bae24346c75178c5c7
üst 34cf91de
{\rtf1
\pard\plain
{AAA}
\par \sect\sectd\cols2\linebetcol\colsx0\ltrsect\sbknone\pard\plain
{\rtlch \ltrch\loch
Section 1, first column, this has a separator.}
\par \pard\plain
{Section 1, second column.}
\par \sect\sectd\sbknone\pard\plain
{BBB}
\par \sect\sectd\cols2\colsx0\ltrsect\sbknone\pard\plain
{Section 2, first column, this has no separator.}
\par \pard\plain
{Section 2, second column.}
\par \sect\sectd\sbknone\pard\plain
{CCC}
\par }
......@@ -28,6 +28,7 @@
#include <com/sun/star/text/WritingMode2.hpp>
#include <com/sun/star/view/XViewSettingsSupplier.hpp>
#include <com/sun/star/text/RubyAdjust.hpp>
#include <com/sun/star/text/XTextColumns.hpp>
#include <vcl/svapp.hxx>
......@@ -943,6 +944,14 @@ DECLARE_RTFEXPORT_TEST(testTdf92521, "tdf92521.odt")
CPPUNIT_ASSERT_EQUAL(2, getPages());
}
DECLARE_RTFEXPORT_TEST(testTdf94043, "tdf94043.rtf")
{
auto xTextSection = getProperty< uno::Reference<beans::XPropertySet> >(getParagraph(2), "TextSection");
auto xTextColumns = getProperty< uno::Reference<text::XTextColumns> >(xTextSection, "TextColumns");
// This was 0, the separator line was not visible due to 0 width.
CPPUNIT_ASSERT_EQUAL(static_cast<sal_Int32>(2), getProperty<sal_Int32>(xTextColumns, "SeparatorLineWidth"));
}
CPPUNIT_PLUGIN_IMPLEMENT();
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
......@@ -3330,6 +3330,9 @@ void RtfAttributeOutput::FormatColumns_Impl(sal_uInt16 nCols, const SwFormatCol&
m_rExport.Strm().WriteCharPtr(OOO_STRING_SVTOOLS_RTF_COLS);
m_rExport.OutLong(nCols);
if (rCol.GetLineAdj() != COLADJ_NONE)
m_rExport.Strm().WriteCharPtr(OOO_STRING_SVTOOLS_RTF_LINEBETCOL);
if (bEven)
{
m_rExport.Strm().WriteCharPtr(OOO_STRING_SVTOOLS_RTF_COLSX);
......
......@@ -3530,6 +3530,9 @@ RTFError RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
case RTF_WIDOWCTRL:
m_aSettingsTableSprms.set(NS_ooxml::LN_CT_Settings_widowControl, std::make_shared<RTFValue>(1));
break;
case RTF_LINEBETCOL:
lcl_putNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_cols, NS_ooxml::LN_CT_Columns_sep, std::make_shared<RTFValue>(1));
break;
default:
{
SAL_INFO("writerfilter", "TODO handle flag '" << lcl_RtfToString(nKeyword) << "'");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment