summaryrefslogtreecommitdiff
path: root/extensions/source/propctrlr/browserlistbox.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'extensions/source/propctrlr/browserlistbox.cxx')
-rw-r--r--extensions/source/propctrlr/browserlistbox.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/extensions/source/propctrlr/browserlistbox.cxx b/extensions/source/propctrlr/browserlistbox.cxx
index 4cb35e9f0c6f..23008fc9a1de 100644
--- a/extensions/source/propctrlr/browserlistbox.cxx
+++ b/extensions/source/propctrlr/browserlistbox.cxx
@@ -667,11 +667,21 @@ namespace pcr
}
//------------------------------------------------------------------
- void OBrowserListBox::SetPropertyValue(const ::rtl::OUString& _rEntryName, const Any& _rValue)
+ void OBrowserListBox::SetPropertyValue(const ::rtl::OUString& _rEntryName, const Any& _rValue, bool _bUnknownValue )
{
ListBoxLines::iterator line = m_aLines.find( _rEntryName );
if ( line != m_aLines.end() )
- impl_setControlAsPropertyValue( line->second, _rValue );
+ {
+ if ( _bUnknownValue )
+ {
+ Reference< XPropertyControl > xControl( line->second.pLine->getControl() );
+ OSL_ENSURE( xControl.is(), "OBrowserListBox::SetPropertyValue: illegal control!" );
+ if ( xControl.is() )
+ xControl->setValue( Any() );
+ }
+ else
+ impl_setControlAsPropertyValue( line->second, _rValue );
+ }
}
//------------------------------------------------------------------------