tdf#82173 writerfilter: copy Xnote Characters -> Xnote anchor
In MSWord, Footnote Reference applies to both in-text and in-footnote formating of the reference number, while LO uses two. Convert into one style, and copy into the other style. Change-Id: I8cf731d5d1236c86fc1c82e798d8a459ca95d0ba Reviewed-on: https://gerrit.libreoffice.org/38374 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Justin Luth <justin_luth@sil.org> Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
This commit is contained in:
parent
8f2f277571
commit
0f4038abcd
@ -527,6 +527,10 @@ DECLARE_OOXMLEXPORT_TEST(testTdf82173_footnoteStyle, "tdf82173_footnoteStyle.doc
|
|||||||
uno::Reference<beans::XPropertySet> xPageStyle(getStyles("CharacterStyles")->getByName("Footnote Characters"), uno::UNO_QUERY);
|
uno::Reference<beans::XPropertySet> xPageStyle(getStyles("CharacterStyles")->getByName("Footnote Characters"), uno::UNO_QUERY);
|
||||||
CPPUNIT_ASSERT_EQUAL( sal_Int32(58), getProperty< sal_Int32 >(xPageStyle, "CharEscapementHeight") );
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(58), getProperty< sal_Int32 >(xPageStyle, "CharEscapementHeight") );
|
||||||
CPPUNIT_ASSERT_EQUAL( sal_Int32(0x00FF00), getProperty< sal_Int32 >(xPageStyle, "CharColor") );
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(0x00FF00), getProperty< sal_Int32 >(xPageStyle, "CharColor") );
|
||||||
|
|
||||||
|
xPageStyle.set(getStyles("CharacterStyles")->getByName("Footnote anchor"), uno::UNO_QUERY);
|
||||||
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(58), getProperty< sal_Int32 >(xPageStyle, "CharEscapementHeight") );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(0x00FF00), getProperty< sal_Int32 >(xPageStyle, "CharColor") );
|
||||||
}
|
}
|
||||||
|
|
||||||
DECLARE_OOXMLEXPORT_TEST(testTdf82173_endnoteStyle, "tdf82173_endnoteStyle.docx")
|
DECLARE_OOXMLEXPORT_TEST(testTdf82173_endnoteStyle, "tdf82173_endnoteStyle.docx")
|
||||||
@ -538,6 +542,14 @@ DECLARE_OOXMLEXPORT_TEST(testTdf82173_endnoteStyle, "tdf82173_endnoteStyle.docx"
|
|||||||
// character properties were previously not assigned to the footnote/endnote in-text anchor.
|
// character properties were previously not assigned to the footnote/endnote in-text anchor.
|
||||||
CPPUNIT_ASSERT_EQUAL( 24.0f, getProperty< float >(xEndnote->getAnchor(), "CharHeight") );
|
CPPUNIT_ASSERT_EQUAL( 24.0f, getProperty< float >(xEndnote->getAnchor(), "CharHeight") );
|
||||||
CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFF0000), getProperty< sal_Int32 >(xEndnote->getAnchor(), "CharColor") );
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFF0000), getProperty< sal_Int32 >(xEndnote->getAnchor(), "CharColor") );
|
||||||
|
|
||||||
|
uno::Reference<beans::XPropertySet> xPageStyle(getStyles("CharacterStyles")->getByName("Endnote Characters"), uno::UNO_QUERY);
|
||||||
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(58), getProperty< sal_Int32 >(xPageStyle, "CharEscapementHeight") );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFF00FF), getProperty< sal_Int32 >(xPageStyle, "CharColor") );
|
||||||
|
|
||||||
|
xPageStyle.set(getStyles("CharacterStyles")->getByName("Endnote anchor"), uno::UNO_QUERY);
|
||||||
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(58), getProperty< sal_Int32 >(xPageStyle, "CharEscapementHeight") );
|
||||||
|
CPPUNIT_ASSERT_EQUAL( sal_Int32(0xFF00FF), getProperty< sal_Int32 >(xPageStyle, "CharColor") );
|
||||||
}
|
}
|
||||||
|
|
||||||
DECLARE_OOXMLEXPORT_TEST(testTdf104162, "tdf104162.docx")
|
DECLARE_OOXMLEXPORT_TEST(testTdf104162, "tdf104162.docx")
|
||||||
|
@ -1135,6 +1135,20 @@ void StyleSheetTable::ApplyStyleSheets( const FontTablePtr& rFontTable )
|
|||||||
{
|
{
|
||||||
uno::Reference< beans::XMultiPropertySet > xMultiPropertySet( xStyle, uno::UNO_QUERY_THROW);
|
uno::Reference< beans::XMultiPropertySet > xMultiPropertySet( xStyle, uno::UNO_QUERY_THROW);
|
||||||
xMultiPropertySet->setPropertyValues( aSortedPropVals.getNames(), aSortedPropVals.getValues() );
|
xMultiPropertySet->setPropertyValues( aSortedPropVals.getNames(), aSortedPropVals.getValues() );
|
||||||
|
|
||||||
|
// Duplicate MSWord's single footnote reference into Footnote Characters and Footnote anchor
|
||||||
|
if( pEntry->sStyleName.equalsIgnoreAsciiCase("footnote reference")
|
||||||
|
|| pEntry->sStyleName.equalsIgnoreAsciiCase("endnote reference") )
|
||||||
|
{
|
||||||
|
uno::Reference< style::XStyle > xCopyStyle;
|
||||||
|
if( pEntry->sStyleName.equalsIgnoreAsciiCase("footnote reference") )
|
||||||
|
xStyles->getByName( "Footnote anchor" ) >>= xCopyStyle;
|
||||||
|
else
|
||||||
|
xStyles->getByName( "Endnote anchor" ) >>= xCopyStyle;
|
||||||
|
|
||||||
|
xMultiPropertySet.set( xCopyStyle, uno::UNO_QUERY_THROW);
|
||||||
|
xMultiPropertySet->setPropertyValues( aSortedPropVals.getNames(), aSortedPropVals.getValues() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch( const lang::WrappedTargetException& rWrapped)
|
catch( const lang::WrappedTargetException& rWrapped)
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user