Kaydet (Commit) 4a507f73 authored tarafından Miklos Vajna's avatar Miklos Vajna

fdo#57678 fix import of RTF_PARD between RTF_CELL and RTF_ROW

üst 9e0dbe9f
{\rtf\ansi\deff0
{\fonttbl{\f0 Times New Roman;}}
{\colortbl;\red0\green0\blue0;}
{\info
}
\paperw11907 \paperh16443 \deftab1298 \margl1701 \margr1701 \margt567 \margb1134 \pgnstart1\ftnnar \aftnnrlc \ftnstart1 \aftnstart1
\trowd\trowd\cellx1701\cellx3402
\intbl\itap1
\qc{Cell 1:1}
\cell\pard
\intbl\itap1
\qc{Cell 1:2}
\cell\pard
\row
\pard\itap0
\par \trowd\trowd \cellx1701\cellx3402\cellx5103\cellx6804
\intbl\itap1
{cell 1:1}
\cell\pard
{{\~}}\cell\pard
{{\~}}\cell\pard
{{\~}}\cell\pard
\row
\pard\itap0
}
......@@ -131,6 +131,7 @@ public:
void testFdo49934();
void testFdo57886();
void testFdo58076();
void testFdo57678();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
......@@ -212,6 +213,7 @@ void Test::run()
{"fdo49934.rtf", &Test::testFdo49934},
{"fdo57886.rtf", &Test::testFdo57886},
{"fdo58076.rtf", &Test::testFdo58076},
{"fdo57678.rtf", &Test::testFdo57678},
};
header();
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
......@@ -980,6 +982,14 @@ void Test::testFdo58076()
CPPUNIT_ASSERT_EQUAL(sal_Int32(635), getProperty<sal_Int32>(xStyle, "BottomMargin"));
}
void Test::testFdo57678()
{
// Paragraphs of the two tables were not converted to tables.
uno::Reference<text::XTextTablesSupplier> xTextTablesSupplier(mxComponent, uno::UNO_QUERY);
uno::Reference<container::XIndexAccess> xIndexAccess(xTextTablesSupplier->getTextTables(), uno::UNO_QUERY);
CPPUNIT_ASSERT_EQUAL(sal_Int32(2), xIndexAccess->getCount());
}
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
......
......@@ -2078,11 +2078,15 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
case RTF_PARD:
if (m_bHadPicture)
dispatchSymbol(RTF_PAR);
// \pard is allowed between \cell and \row, but in that case it should not reset the fact that we're inside a table.
if (m_aStates.top().nCells == 0)
{
m_aStates.top().aParagraphSprms = m_aDefaultState.aParagraphSprms;
m_aStates.top().aParagraphAttributes = m_aDefaultState.aParagraphAttributes;
m_aStates.top().resetFrame();
if (m_aStates.top().nDestinationState != DESTINATION_SHAPETEXT)
m_pCurrentBuffer = 0;
}
m_aStates.top().resetFrame();
break;
case RTF_SECTD:
m_aStates.top().aSectionSprms = m_aDefaultState.aSectionSprms;
......
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