diff options
author | Ocke Janssen [oj] <Ocke.Janssen@oracle.com> | 2010-09-09 17:41:40 +0200 |
---|---|---|
committer | Ocke Janssen [oj] <Ocke.Janssen@oracle.com> | 2010-09-09 17:41:40 +0200 |
commit | 5de58a084612c45d20b58ef95159c67b5df422bb (patch) | |
tree | 02aa99a8a99bd94760365976893340f2c9db1a53 /toolkit/source/controls/dialogcontrol.cxx | |
parent | 39faed2cd839f40091fee03d05c528e6d08c7522 (diff) |
tabcontrol: fix graphic objedct for dialog
Diffstat (limited to 'toolkit/source/controls/dialogcontrol.cxx')
-rw-r--r-- | toolkit/source/controls/dialogcontrol.cxx | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/toolkit/source/controls/dialogcontrol.cxx b/toolkit/source/controls/dialogcontrol.cxx index 06e509f7e249..a5c6db27d855 100644 --- a/toolkit/source/controls/dialogcontrol.cxx +++ b/toolkit/source/controls/dialogcontrol.cxx @@ -461,3 +461,31 @@ throw (RuntimeException) ImplUpdateResourceResolver(); } +void UnoDialogControl::ImplModelPropertiesChanged( const Sequence< PropertyChangeEvent >& rEvents ) throw(RuntimeException) +{ + sal_Int32 nLen = rEvents.getLength(); + for( sal_Int32 i = 0; i < nLen; i++ ) + { + const PropertyChangeEvent& rEvt = rEvents.getConstArray()[i]; + Reference< XControlModel > xModel( rEvt.Source, UNO_QUERY ); + sal_Bool bOwnModel = (XControlModel*)xModel.get() == (XControlModel*)getModel().get(); + if ( bOwnModel && rEvt.PropertyName.equalsAsciiL( "ImageURL", 8 )) + { + ::rtl::OUString aImageURL; + Reference< graphic::XGraphic > xGraphic; + if (( ImplGetPropertyValue( GetPropertyName( BASEPROPERTY_IMAGEURL ) ) >>= aImageURL ) && + ( aImageURL.getLength() > 0 )) + { + ::rtl::OUString absoluteUrl = + getPhysicalLocation( ImplGetPropertyValue( GetPropertyName( BASEPROPERTY_DIALOGSOURCEURL )), + uno::makeAny(aImageURL)); + + xGraphic = Impl_getGraphicFromURL_nothrow( absoluteUrl ); + } + + ImplSetPropertyValue( GetPropertyName( BASEPROPERTY_GRAPHIC), uno::makeAny( xGraphic ), sal_True ); + break; + } + } + ControlContainerBase::ImplModelPropertiesChanged(rEvents); +} |