summaryrefslogtreecommitdiff
path: root/writerfilter/source
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@suse.cz>2012-05-29 15:31:11 +0200
committerMiklos Vajna <vmiklos@suse.cz>2012-05-29 19:30:24 +0200
commit9486851baea59d16c449d79bd61a38f6e686cfe0 (patch)
tree65f2cdb186e03af9fd2ef10d5de1f53f91325aa2 /writerfilter/source
parent6e6d81e9cfc593d865e409ad22b2307f87a37859 (diff)
n#760764 dmapper: don't ignore character properties of text fields
Change-Id: If1497d78b8c31a4b2e5677bb57f40a0343a819a9
Diffstat (limited to 'writerfilter/source')
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.cxx11
-rw-r--r--writerfilter/source/dmapper/DomainMapper_Impl.hxx1
2 files changed, 11 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
index c73b1ccd5c48..01d4b4600012 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx
@@ -196,6 +196,7 @@ DomainMapper_Impl::DomainMapper_Impl(
m_bIsColumnBreakDeferred( false ),
m_bIsPageBreakDeferred( false ),
m_pLastSectionContext( ),
+ m_pLastCharacterContext(),
m_nCurrentTabStopIndex( 0 ),
m_sCurrentParaStyleId(),
m_bInStyleSheetImport( false ),
@@ -361,6 +362,8 @@ void DomainMapper_Impl::PopProperties(ContextType eId)
{
m_pLastSectionContext = m_aPropertyStacks[eId].top( );
}
+ else if (eId == CONTEXT_CHARACTER)
+ m_pLastCharacterContext = m_aPropertyStacks[eId].top();
m_aPropertyStacks[eId].pop();
m_aContextStack.pop();
@@ -3173,7 +3176,13 @@ void DomainMapper_Impl::PopFieldContext()
if( xToInsert.is() )
{
uno::Reference< text::XTextAppendAndConvert > xTextAppendAndConvert( xTextAppend, uno::UNO_QUERY_THROW );
- xTextAppendAndConvert->appendTextContent( xToInsert, uno::Sequence< beans::PropertyValue >() );
+ uno::Sequence<beans::PropertyValue> aValues;
+ // Character properties of the field show up here the
+ // last (always empty) run. Inherit character
+ // properties from there.
+ if (m_pLastCharacterContext.get())
+ aValues = m_pLastCharacterContext->GetPropertyValues();
+ xTextAppendAndConvert->appendTextContent(xToInsert, aValues);
}
else
{
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.hxx b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
index 8fa3f4a240ae..1dc1ebc67e1c 100644
--- a/writerfilter/source/dmapper/DomainMapper_Impl.hxx
+++ b/writerfilter/source/dmapper/DomainMapper_Impl.hxx
@@ -326,6 +326,7 @@ private:
PropertyMapPtr m_pTopContext;
PropertyMapPtr m_pLastSectionContext;
+ PropertyMapPtr m_pLastCharacterContext;
::std::vector<DeletableTabStop> m_aCurrentTabStops;
sal_uInt32 m_nCurrentTabStopIndex;