summaryrefslogtreecommitdiff
path: root/sw
diff options
context:
space:
mode:
authorOliver-Rainer Wittmann <orw@apache.org>2014-03-21 12:32:09 +0000
committerCaolán McNamara <caolanm@redhat.com>2014-03-21 16:25:48 +0000
commit40c8121fbeb89403418a90c77b88d13ad268d347 (patch)
treeeb73bbfc3ad5367ab09855a9e1f948ffd615f078 /sw
parentcbce7443b2fa0c1304ff94a54eb48da0c4518146 (diff)
Resolves: #i124474# on change of User Field via UNO-API...
trigger update to get dependent Input Fields updated. (cherry picked from commit fc0c91c2d00157cb02cbe7b1d09cb950762e8145) Conflicts: sw/source/core/unocore/unofield.cxx Change-Id: I0ead765729c93992103baca53924b7a127936b38
Diffstat (limited to 'sw')
-rw-r--r--sw/source/core/unocore/unofield.cxx21
1 files changed, 16 insertions, 5 deletions
diff --git a/sw/source/core/unocore/unofield.cxx b/sw/source/core/unocore/unofield.cxx
index 044dcb13d121..a416963f2dcc 100644
--- a/sw/source/core/unocore/unofield.cxx
+++ b/sw/source/core/unocore/unofield.cxx
@@ -577,18 +577,29 @@ throw (beans::UnknownPropertyException, beans::PropertyVetoException,
}
}
}
- if( bSetValue )
+ if ( bSetValue )
{
// nothing special to be done here for the properties
// UNO_NAME_DATA_BASE_NAME and UNO_NAME_DATA_BASE_URL.
// We just call PutValue (empty string is allowed).
// Thus the last property set will be used as Data Source.
- sal_uInt16 nMId = GetFieldTypeMId( rPropertyName, *pType );
- if( USHRT_MAX != nMId )
- pType->PutValue( rValue, nMId );
+ const sal_uInt16 nMemberValueId = GetFieldTypeMId( rPropertyName, *pType );
+ if ( USHRT_MAX != nMemberValueId )
+ {
+ pType->PutValue( rValue, nMemberValueId );
+ if ( pType->Which() == RES_USERFLD )
+ {
+ // trigger update of User field in order to get depending Input Fields updated.
+ pType->UpdateFlds();
+ }
+ }
else
- throw beans::UnknownPropertyException(OUString( "Unknown property: " ) + rPropertyName, static_cast < cppu::OWeakObject * > ( this ) );
+ {
+ throw beans::UnknownPropertyException(
+ OUString( "Unknown property: " ) + rPropertyName,
+ static_cast< cppu::OWeakObject * >( this ) );
+ }
}
}
else if (!pType && m_pImpl->m_pDoc && rPropertyName == UNO_NAME_NAME)