diff options
author | Noel Power <noel.power@novell.com> | 2011-02-24 09:43:39 +0000 |
---|---|---|
committer | Noel Power <noel.power@novell.com> | 2011-02-24 09:43:39 +0000 |
commit | 9730be282ad786d3f9b006dc31696493eee3616c (patch) | |
tree | da81e7e85ec99ce61b37034c8d9843357989e707 /writerfilter/source/dmapper/FormControlHelper.cxx | |
parent | 51576337ac12b0135ac3c72a135d99259ef2d98a (diff) |
more form field fixes
writerfilter/source/dmapper/DomainMapper_Impl.cxx: really use enhanced Text
Form field, also cleaned using enhanced fields or not logic a little more and
finally got rid of the "com.sun.star.text.FormFieldmark.xxx" type services as I
realised these weren't necessary
writerfilter/source/dmapper/FormControlHelper.cxx: added support for Text Form
in the processField method
Diffstat (limited to 'writerfilter/source/dmapper/FormControlHelper.cxx')
-rw-r--r-- | writerfilter/source/dmapper/FormControlHelper.cxx | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/writerfilter/source/dmapper/FormControlHelper.cxx b/writerfilter/source/dmapper/FormControlHelper.cxx index 0af763753077..1f7a5b5029aa 100644 --- a/writerfilter/source/dmapper/FormControlHelper.cxx +++ b/writerfilter/source/dmapper/FormControlHelper.cxx @@ -223,9 +223,31 @@ bool FormControlHelper::createCheckbox(uno::Reference<text::XTextRange> xTextRan bool FormControlHelper::processField(uno::Reference<text::XFormField> xFormField) { - if (m_pImpl->m_eFieldId == FIELD_FORMCHECKBOX ) + uno::Reference<container::XNameContainer> xNameCont = xFormField->getParameters(); + if (m_pImpl->m_eFieldId == FIELD_FORMTEXT ) { - xFormField->setFieldType( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("vnd.oasis.opendocument.field.FORMCHECKBOX"))); + xFormField->setFieldType( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT))); + if ( xNameCont.is() ) + { + if ( m_pFFData->getName().getLength() ) + { + if ( xNameCont->hasByName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT_NAME)) ) ) + xNameCont->replaceByName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT_NAME)), uno::makeAny( m_pFFData->getName() ) ); + else + xNameCont->insertByName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT_NAME)), uno::makeAny( m_pFFData->getName() ) ); + } + if ( m_pFFData->getTextDefault().getLength() ) + { + if ( xNameCont->hasByName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT_DEFAULT)) ) ) + xNameCont->replaceByName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT_DEFAULT)), uno::makeAny( m_pFFData->getTextDefault() ) ); + else + xNameCont->insertByName( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMTEXT_DEFAULT)), uno::makeAny( m_pFFData->getTextDefault() ) ); + } + } + } + else if (m_pImpl->m_eFieldId == FIELD_FORMCHECKBOX ) + { + xFormField->setFieldType( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMCHECKBOX))); uno::Reference<beans::XPropertySet> xPropSet(xFormField, uno::UNO_QUERY); uno::Any aAny; aAny <<= m_pFFData->getCheckboxChecked(); @@ -236,7 +258,6 @@ bool FormControlHelper::processField(uno::Reference<text::XFormField> xFormField else if (m_pImpl->m_eFieldId == FIELD_FORMDROPDOWN ) { xFormField->setFieldType( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMDROPDOWN))); - uno::Reference<container::XNameContainer> xNameCont = xFormField->getParameters(); if ( xNameCont.is() ) { uno::Sequence< rtl::OUString > sItems; |