summaryrefslogtreecommitdiff
path: root/writerfilter/source/dmapper/FormControlHelper.cxx
diff options
context:
space:
mode:
authorNoel Power <noel.power@novell.com>2011-02-24 09:43:39 +0000
committerNoel Power <noel.power@novell.com>2011-02-24 09:43:39 +0000
commit9730be282ad786d3f9b006dc31696493eee3616c (patch)
treeda81e7e85ec99ce61b37034c8d9843357989e707 /writerfilter/source/dmapper/FormControlHelper.cxx
parent51576337ac12b0135ac3c72a135d99259ef2d98a (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.cxx27
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;