From 1fefd633220e5d9a7b1d511e3ebac7c008d97a97 Mon Sep 17 00:00:00 2001 From: Lionel Elie Mamane Date: Thu, 29 Nov 2012 15:53:28 +0100 Subject: fdo#57611 don't crash when setting too small size setHeight/Width needs to be authorized to throw com::sun::star::beans::PropertyVetoException, which is already handled adequately Change-Id: I077fbf7e3b871a59446fb3e23cc9fa1e2e9272a2 --- offapi/com/sun/star/inspection/XPropertyHandler.idl | 4 +++- offapi/com/sun/star/report/XReportComponent.idl | 10 ++++++++-- reportdesign/inc/ReportHelperDefines.hxx | 4 ++-- reportdesign/source/core/inc/ReportHelperImpl.hxx | 4 ++-- reportdesign/source/ui/inc/GeometryHandler.hxx | 2 +- reportdesign/source/ui/inspection/GeometryHandler.cxx | 2 +- 6 files changed, 17 insertions(+), 9 deletions(-) diff --git a/offapi/com/sun/star/inspection/XPropertyHandler.idl b/offapi/com/sun/star/inspection/XPropertyHandler.idl index 0c24dbe02dae..40f721068641 100644 --- a/offapi/com/sun/star/inspection/XPropertyHandler.idl +++ b/offapi/com/sun/star/inspection/XPropertyHandler.idl @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -86,7 +87,8 @@ interface XPropertyHandler */ void setPropertyValue( [in] string PropertyName, [in] any Value ) - raises (::com::sun::star::beans::UnknownPropertyException); + raises (::com::sun::star::beans::UnknownPropertyException, + ::com::sun::star::beans::PropertyVetoException); /** returns the state of a property diff --git a/offapi/com/sun/star/report/XReportComponent.idl b/offapi/com/sun/star/report/XReportComponent.idl index f6e9d8c5494d..148b75f0cf96 100644 --- a/offapi/com/sun/star/report/XReportComponent.idl +++ b/offapi/com/sun/star/report/XReportComponent.idl @@ -64,7 +64,10 @@ interface XReportComponent /** specifies the height of the control. */ - [attribute,bound] long Height; + [attribute,bound] long Height + { + set raises ( com::sun::star::beans::PropertyVetoException ); + }; /** specifies the horizontal position of the control. */ @@ -76,7 +79,10 @@ interface XReportComponent /** specifies the width of the control. */ - [attribute,bound] long Width; + [attribute,bound] long Width + { + set raises ( com::sun::star::beans::PropertyVetoException ); + }; /** specifies the border style of the control. diff --git a/reportdesign/inc/ReportHelperDefines.hxx b/reportdesign/inc/ReportHelperDefines.hxx index d0467cbfce08..a54dea39a218 100644 --- a/reportdesign/inc/ReportHelperDefines.hxx +++ b/reportdesign/inc/ReportHelperDefines.hxx @@ -38,13 +38,13 @@ virtual ::rtl::OUString SAL_CALL getName() throw (::com::sun::star::uno::RuntimeException); \ virtual void SAL_CALL setName(const ::rtl::OUString & the_value) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::PropertyVetoException); \ virtual ::sal_Int32 SAL_CALL getHeight() throw (::com::sun::star::uno::RuntimeException); \ - virtual void SAL_CALL setHeight(::sal_Int32 the_value) throw (::com::sun::star::uno::RuntimeException); \ + virtual void SAL_CALL setHeight(::sal_Int32 the_value) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::PropertyVetoException); \ virtual ::sal_Int32 SAL_CALL getPositionX() throw (::com::sun::star::uno::RuntimeException); \ virtual void SAL_CALL setPositionX(::sal_Int32 the_value) throw (::com::sun::star::uno::RuntimeException); \ virtual ::sal_Int32 SAL_CALL getPositionY() throw (::com::sun::star::uno::RuntimeException); \ virtual void SAL_CALL setPositionY(::sal_Int32 the_value) throw (::com::sun::star::uno::RuntimeException); \ virtual ::sal_Int32 SAL_CALL getWidth() throw (::com::sun::star::uno::RuntimeException); \ - virtual void SAL_CALL setWidth(::sal_Int32 the_value) throw (::com::sun::star::uno::RuntimeException); \ + virtual void SAL_CALL setWidth(::sal_Int32 the_value) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::PropertyVetoException); \ virtual ::sal_Int16 SAL_CALL getControlBorder() throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException); \ virtual void SAL_CALL setControlBorder(::sal_Int16 the_value) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::IllegalArgumentException, ::com::sun::star::beans::UnknownPropertyException); \ virtual ::sal_Int32 SAL_CALL getControlBorderColor() throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException); \ diff --git a/reportdesign/source/core/inc/ReportHelperImpl.hxx b/reportdesign/source/core/inc/ReportHelperImpl.hxx index 1b3bc04a7fe4..1734998d3c95 100644 --- a/reportdesign/source/core/inc/ReportHelperImpl.hxx +++ b/reportdesign/source/core/inc/ReportHelperImpl.hxx @@ -33,7 +33,7 @@ void SAL_CALL clazz::setName( const ::rtl::OUString& _name ) throw (uno::Runtime { \ return getSize().Height; \ } \ -void SAL_CALL clazz::setHeight( ::sal_Int32 _height ) throw (uno::RuntimeException) \ +void SAL_CALL clazz::setHeight( ::sal_Int32 _height ) throw (uno::RuntimeException,beans::PropertyVetoException) \ { \ awt::Size aSize = getSize(); \ aSize.Height = _height; \ @@ -63,7 +63,7 @@ void SAL_CALL clazz::setPositionY( ::sal_Int32 _positiony ) throw (uno::RuntimeE { \ return getSize().Width; \ } \ -void SAL_CALL clazz::setWidth( ::sal_Int32 _width ) throw (uno::RuntimeException) \ +void SAL_CALL clazz::setWidth( ::sal_Int32 _width ) throw (uno::RuntimeException,beans::PropertyVetoException) \ { \ awt::Size aSize = getSize(); \ aSize.Width = _width; \ diff --git a/reportdesign/source/ui/inc/GeometryHandler.hxx b/reportdesign/source/ui/inc/GeometryHandler.hxx index 08b71ef48529..e639500ce31c 100644 --- a/reportdesign/source/ui/inc/GeometryHandler.hxx +++ b/reportdesign/source/ui/inc/GeometryHandler.hxx @@ -258,7 +258,7 @@ namespace rptui // ::com::sun::star::inspection::XPropertyHandler: virtual void SAL_CALL inspect(const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface > & Component) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::lang::NullPointerException); virtual ::com::sun::star::uno::Any SAL_CALL getPropertyValue(const ::rtl::OUString & PropertyName) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException); - virtual void SAL_CALL setPropertyValue(const ::rtl::OUString & PropertyName, const ::com::sun::star::uno::Any & Value) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException); + virtual void SAL_CALL setPropertyValue(const ::rtl::OUString & PropertyName, const ::com::sun::star::uno::Any & Value) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::beans::PropertyVetoException); virtual ::com::sun::star::beans::PropertyState SAL_CALL getPropertyState(const ::rtl::OUString & PropertyName) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException); virtual ::com::sun::star::inspection::LineDescriptor SAL_CALL describePropertyLine(const ::rtl::OUString& PropertyName, const ::com::sun::star::uno::Reference< ::com::sun::star::inspection::XPropertyControlFactory >& ControlFactory ) throw (::com::sun::star::beans::UnknownPropertyException, ::com::sun::star::lang::NullPointerException, ::com::sun::star::uno::RuntimeException); virtual ::com::sun::star::uno::Any SAL_CALL convertToPropertyValue(const ::rtl::OUString & PropertyName, const ::com::sun::star::uno::Any & ControlValue) throw (::com::sun::star::uno::RuntimeException, ::com::sun::star::beans::UnknownPropertyException); diff --git a/reportdesign/source/ui/inspection/GeometryHandler.cxx b/reportdesign/source/ui/inspection/GeometryHandler.cxx index d7ea714b58d9..cfb5cbae01e2 100644 --- a/reportdesign/source/ui/inspection/GeometryHandler.cxx +++ b/reportdesign/source/ui/inspection/GeometryHandler.cxx @@ -469,7 +469,7 @@ uno::Any SAL_CALL GeometryHandler::getPropertyValue(const ::rtl::OUString & Prop return aPropertyValue; } -void SAL_CALL GeometryHandler::setPropertyValue(const ::rtl::OUString & PropertyName, const uno::Any & Value) throw (uno::RuntimeException, beans::UnknownPropertyException) +void SAL_CALL GeometryHandler::setPropertyValue(const ::rtl::OUString & PropertyName, const uno::Any & Value) throw (uno::RuntimeException, beans::UnknownPropertyException, beans::PropertyVetoException) { ::osl::ResettableMutexGuard aGuard( m_aMutex ); uno::Any aNewValue = Value; -- cgit v1.2.3