From 9730be282ad786d3f9b006dc31696493eee3616c Mon Sep 17 00:00:00 2001 From: Noel Power Date: Thu, 24 Feb 2011 09:43:39 +0000 Subject: 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 --- writerfilter/source/dmapper/FormControlHelper.cxx | 27 ++++++++++++++++++++--- 1 file changed, 24 insertions(+), 3 deletions(-) (limited to 'writerfilter/source/dmapper/FormControlHelper.cxx') 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 xTextRan bool FormControlHelper::processField(uno::Reference xFormField) { - if (m_pImpl->m_eFieldId == FIELD_FORMCHECKBOX ) + uno::Reference 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 xPropSet(xFormField, uno::UNO_QUERY); uno::Any aAny; aAny <<= m_pFFData->getCheckboxChecked(); @@ -236,7 +258,6 @@ bool FormControlHelper::processField(uno::Reference xFormField else if (m_pImpl->m_eFieldId == FIELD_FORMDROPDOWN ) { xFormField->setFieldType( rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(ODF_FORMDROPDOWN))); - uno::Reference xNameCont = xFormField->getParameters(); if ( xNameCont.is() ) { uno::Sequence< rtl::OUString > sItems; -- cgit