diff options
author | Jürgen Schmidt <jsc@apache.org> | 2012-06-07 06:46:32 +0000 |
---|---|---|
committer | Jürgen Schmidt <jsc@apache.org> | 2012-06-07 06:46:32 +0000 |
commit | 0d2415df82388eb1a9a00c2d5e6bd3d9193057db (patch) | |
tree | bec5c58927cfece3ac0a5406223bdc8eaa5c289b /writerfilter/source/dmapper | |
parent | b9bd7806f57bc742c3251557d79416655ca70993 (diff) |
119544: sequence number is not displayed when open docx
fix: add code to handle the SEQ field command...
Patch By: Jin Long Wu
Found By: Don Jun Zung
Reviewed By: jsc
Notes
merged as: 348a5f8e80cba72d6a6aa13f001a16d9a62b70aa
Diffstat (limited to 'writerfilter/source/dmapper')
-rw-r--r-- | writerfilter/source/dmapper/DomainMapper_Impl.cxx | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/writerfilter/source/dmapper/DomainMapper_Impl.cxx b/writerfilter/source/dmapper/DomainMapper_Impl.cxx index a3ec92adb0be..e1bd3b40325c 100644 --- a/writerfilter/source/dmapper/DomainMapper_Impl.cxx +++ b/writerfilter/source/dmapper/DomainMapper_Impl.cxx @@ -3179,7 +3179,33 @@ void DomainMapper_Impl::CloseFieldCommand() break; case FIELD_SECTION : break; case FIELD_SECTIONPAGES : break; - case FIELD_SEQ : break; + case FIELD_SEQ : + { + // command looks like: " SEQ Table \* ARABIC " + ::rtl::OUString sCmd(pContext->GetCommand()); + // find the sequence name, e.g. "SEQ" + ::rtl::OUString sSeqName = lcl_FindQuotedText(sCmd, "SEQ ", '\\'); + sSeqName = sSeqName.trim(); + + // create a sequence field master using the sequence name + uno::Reference< beans::XPropertySet > xMaster = FindOrCreateFieldMaster( + "com.sun.star.text.FieldMaster.SetExpression", + sSeqName); + + xMaster->setPropertyValue( + rPropNameSupplier.GetName(PROP_SUB_TYPE), + uno::makeAny(text::SetVariableType::SEQUENCE)); + + // apply the numbering type + xFieldProperties->setPropertyValue( + rPropNameSupplier.GetName(PROP_NUMBERING_TYPE), + uno::makeAny( lcl_ParseNumberingType(pContext->GetCommand()) )); + + // attach the master to the field + uno::Reference< text::XDependentTextField > xDependentField( xFieldInterface, uno::UNO_QUERY_THROW ); + xDependentField->attachTextFieldMaster( xMaster ); + } + break; case FIELD_SET : break; case FIELD_SKIPIF : break; case FIELD_STYLEREF : break; |