You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openoffice.apache.org by js...@apache.org on 2012/06/07 09:46:33 UTC

svn commit: r1347450 - /incubator/ooo/trunk/main/writerfilter/source/dmapper/DomainMapper_Impl.cxx

Author: jsc
Date: Thu Jun  7 07:46:32 2012
New Revision: 1347450

URL: http://svn.apache.org/viewvc?rev=1347450&view=rev
Log:
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


Modified:
    incubator/ooo/trunk/main/writerfilter/source/dmapper/DomainMapper_Impl.cxx

Modified: incubator/ooo/trunk/main/writerfilter/source/dmapper/DomainMapper_Impl.cxx
URL: http://svn.apache.org/viewvc/incubator/ooo/trunk/main/writerfilter/source/dmapper/DomainMapper_Impl.cxx?rev=1347450&r1=1347449&r2=1347450&view=diff
==============================================================================
--- incubator/ooo/trunk/main/writerfilter/source/dmapper/DomainMapper_Impl.cxx (original)
+++ incubator/ooo/trunk/main/writerfilter/source/dmapper/DomainMapper_Impl.cxx Thu Jun  7 07:46:32 2012
@@ -3179,7 +3179,33 @@ void DomainMapper_Impl::CloseFieldComman
                     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;