summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2013-06-21 15:48:39 +0200
committerMiklos Vajna <vmiklos@suse.cz>2013-06-24 16:42:03 +0200
commit59d70e958005cd0ca93eb5def4fae7174bc9fb65 (patch)
treee964619de4569c78c014322301527054abd9503e
parent8e33e95500c2f5edc91e853024a5c0fff285fcce (diff)
bnc#823655 RTF import: ignore styles without a type
Regression from 29dcdf6b56f8dbc1b7de0478afb04122f8dbf0f9. Change-Id: I970c0e7b3652d7e6f093815b90e04e0c45904b28 (cherry picked from commit c6a941b51b68eb097d4d43323b39ff1aba4c753e)
-rw-r--r--sw/qa/extras/rtfimport/data/para-bottom-margin.rtf14
-rw-r--r--sw/qa/extras/rtfimport/rtfimport.cxx8
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx3
3 files changed, 25 insertions, 0 deletions
diff --git a/sw/qa/extras/rtfimport/data/para-bottom-margin.rtf b/sw/qa/extras/rtfimport/data/para-bottom-margin.rtf
new file mode 100644
index 000000000000..7bc505139514
--- /dev/null
+++ b/sw/qa/extras/rtfimport/data/para-bottom-margin.rtf
@@ -0,0 +1,14 @@
+{\rtf1
+{\stylesheet
+{\ql \li0\ri0\sa200\sl276\slmult1
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang4105\langfe4105\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp4105\langfenp4105 \snext0 \sqformat \spriority0 Normal;}
+{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}
+{\*
+\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa200\sl276\slmult1
+\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang4105\langfe4105\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp4105\langfenp4105 \snext11 \ssemihidden \sunhideused
+Normal Table;}
+}
+\pard \ltrpar\ql \li720\ri0\sb1\sl-179\slmult0\nowidctlpar\tx9924\wrapdefault\faauto\rin0\lin720\itap0
+{\rtlch\fcs1 \af0\afs16 \ltrch\fcs0 \f0\fs16\expnd-1\expndtw-5\cf1\insrsid10962741 \hich\af0\dbch\af31505\loch\f0 hello
+\par }
+}
diff --git a/sw/qa/extras/rtfimport/rtfimport.cxx b/sw/qa/extras/rtfimport/rtfimport.cxx
index c87ba3e90f11..d3362da67239 100644
--- a/sw/qa/extras/rtfimport/rtfimport.cxx
+++ b/sw/qa/extras/rtfimport/rtfimport.cxx
@@ -150,6 +150,7 @@ public:
void testN818997();
void testFdo64671();
void testN825305();
+ void testParaBottomMargin();
CPPUNIT_TEST_SUITE(Test);
#if !defined(MACOSX) && !defined(WNT)
@@ -270,6 +271,7 @@ void Test::run()
{"n818997.rtf", &Test::testN818997},
{"fdo64671.rtf", &Test::testFdo64671},
{"n825305.rtf", &Test::testN825305},
+ {"para-bottom-margin.rtf", &Test::testParaBottomMargin},
};
for (unsigned int i = 0; i < SAL_N_ELEMENTS(aMethods); ++i)
{
@@ -1244,6 +1246,12 @@ void Test::testN825305()
CPPUNIT_ASSERT_EQUAL(beans::PropertyState_DIRECT_VALUE, ePropertyState);
}
+void Test::testParaBottomMargin()
+{
+ // This was 353, i.e. bottom margin of the paragraph was 0.35cm instead of 0.
+ CPPUNIT_ASSERT_EQUAL(sal_Int32(0), getProperty<sal_Int32>(getParagraph(1), "ParaBottomMargin"));
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(Test);
CPPUNIT_PLUGIN_IMPLEMENT();
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 951adc4bc014..876ab9f3560a 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -1025,6 +1025,7 @@ void RTFDocumentImpl::text(OUString& rString)
break;
case DESTINATION_STYLESHEET:
case DESTINATION_STYLEENTRY:
+ if (m_aStates.top().aTableAttributes.find(NS_rtf::LN_SGC))
{
RTFValue::Pointer_t pValue(new RTFValue(m_aStates.top().aDestinationText.makeStringAndClear()));
m_aStates.top().aTableAttributes.set(NS_rtf::LN_XSTZNAME1, pValue);
@@ -1034,6 +1035,8 @@ void RTFDocumentImpl::text(OUString& rString)
);
m_aStyleTableEntries.insert(make_pair(m_nCurrentStyleIndex, pProp));
}
+ else
+ SAL_INFO("writerfilter", "no RTF style type defined, ignoring");
break;
case DESTINATION_REVISIONTABLE:
case DESTINATION_REVISIONENTRY: