summaryrefslogtreecommitdiff
path: root/writerfilter
diff options
context:
space:
mode:
authorMiklos Vajna <vmiklos@frugalware.org>2011-08-11 15:43:29 +0200
committerMiklos Vajna <vmiklos@frugalware.org>2011-08-11 15:43:29 +0200
commitfa73964707dcea6c8b60bf32f765516aed3a26f1 (patch)
tree76e6a55afa4743c767f2532bf57b5fbe406977f3 /writerfilter
parentbad3177c55725b6238852eb192a25bb3449f7a54 (diff)
implement RTF_NOLINE
Diffstat (limited to 'writerfilter')
-rw-r--r--writerfilter/source/rtftok/rtfdocumentimpl.cxx13
1 files changed, 13 insertions, 0 deletions
diff --git a/writerfilter/source/rtftok/rtfdocumentimpl.cxx b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
index 80ade59be0db..4988e42553cd 100644
--- a/writerfilter/source/rtftok/rtfdocumentimpl.cxx
+++ b/writerfilter/source/rtftok/rtfdocumentimpl.cxx
@@ -119,6 +119,16 @@ static void lcl_putNestedSprm(RTFSprms& rSprms, Id nParent, Id nId, RTFValue::Po
lcl_putNestedAttribute(rSprms, nParent, nId, pValue, bOverwrite, false);
}
+static bool lcl_eraseNestedAttribute(RTFSprms& rSprms, Id nParent, Id nId)
+{
+ RTFValue::Pointer_t pParent = rSprms.find(nParent);
+ if (!pParent.get())
+ // It doesn't even have a parent, we're done!
+ return false;
+ RTFSprms& rAttributes = pParent->getAttributes();
+ return rAttributes.erase(nId);
+}
+
static RTFSprms& lcl_getLastAttributes(RTFSprms& rSprms, Id nId)
{
RTFValue::Pointer_t p = rSprms.find(nId);
@@ -1741,6 +1751,9 @@ int RTFDocumentImpl::dispatchFlag(RTFKeyword nKeyword)
lcl_putNestedSprm(m_aDefaultState.aParagraphSprms, NS_ooxml::LN_EG_SectPrContents_footnotePr, NS_ooxml::LN_EG_FtnEdnNumProps_numRestart, pValue);
}
break;
+ case RTF_NOLINE:
+ lcl_eraseNestedAttribute(m_aStates.top().aSectionSprms, NS_ooxml::LN_EG_SectPrContents_lnNumType, NS_ooxml::LN_CT_LineNumber_distance);
+ break;
default:
#if OSL_DEBUG_LEVEL > 1
OSL_TRACE("%s: TODO handle flag '%s'", OSL_THIS_FUNC, lcl_RtfToString(nKeyword));