offapi/com/sun/star/inspection/XPropertyHandler.idl | 4 +++- offapi/com/sun/star/report/XReportComponent.idl | 10 ++++++++-- reportdesign/inc/ReportHelperDefines.hxx | 4 ++-- reportdesign/source/core/api/FixedLine.cxx | 8 ++++++-- reportdesign/source/core/inc/ReportHelperImpl.hxx | 4 ++-- reportdesign/source/ui/inc/GeometryHandler.hxx | 2 +- reportdesign/source/ui/inspection/GeometryHandler.cxx | 2 +- 7 files changed, 23 insertions(+), 11 deletions(-)
New commits: commit 1fefd633220e5d9a7b1d511e3ebac7c008d97a97 Author: Lionel Elie Mamane <[email protected]> Date: Thu Nov 29 15:53:28 2012 +0100 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 diff --git a/offapi/com/sun/star/inspection/XPropertyHandler.idl b/offapi/com/sun/star/inspection/XPropertyHandler.idl index 0c24dbe..40f7210 100644 --- a/offapi/com/sun/star/inspection/XPropertyHandler.idl +++ b/offapi/com/sun/star/inspection/XPropertyHandler.idl @@ -25,6 +25,7 @@ #include <com/sun/star/inspection/LineDescriptor.idl> #include <com/sun/star/lang/NullPointerException.idl> #include <com/sun/star/beans/UnknownPropertyException.idl> +#include <com/sun/star/beans/PropertyVetoException.idl> #include <com/sun/star/lang/XComponent.idl> #include <com/sun/star/inspection/InteractiveSelectionResult.idl> @@ -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 f6e9d8c..148b75f 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 d0467cb..a54dea3 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 1b3bc04..1734998 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 08b71ef..e639500 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 d7ea714..cfb5cba 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; commit efd2438e824edd616075e62e948d4ed771f1251f Author: Lionel Elie Mamane <[email protected]> Date: Thu Nov 29 15:55:45 2012 +0100 Enhance error message for too small FixedLine size Change-Id: Icc9ac2789637db3d30ad452998cf0d857c9f5bea diff --git a/reportdesign/source/core/api/FixedLine.cxx b/reportdesign/source/core/api/FixedLine.cxx index b2c3dbe..79e836d 100644 --- a/reportdesign/source/core/api/FixedLine.cxx +++ b/reportdesign/source/core/api/FixedLine.cxx @@ -514,8 +514,12 @@ awt::Size SAL_CALL OFixedLine::getSize( ) throw (uno::RuntimeException) // ----------------------------------------------------------------------------- void SAL_CALL OFixedLine::setSize( const awt::Size& aSize ) throw (beans::PropertyVetoException, uno::RuntimeException) { - if ( (aSize.Width < MIN_WIDTH && m_nOrientation == 1) || (aSize.Height < MIN_HEIGHT && m_nOrientation == 0) ) - throw beans::PropertyVetoException(); + const char hundredthmmC[] = "0\xe2\x80\x89\xC2\xB5""m"; // in UTF-8: 0, thin space, µ (micro), m (meter) + const rtl::OUString hundredthmm(hundredthmmC, sizeof(hundredthmmC)-1, RTL_TEXTENCODING_UTF8); + if ( aSize.Width < MIN_WIDTH && m_nOrientation == 1 ) + throw beans::PropertyVetoException("Too small width for FixedLine; minimum is " + rtl::OUString::valueOf(MIN_WIDTH) + hundredthmm, *this); + else if ( aSize.Height < MIN_HEIGHT && m_nOrientation == 0 ) + throw beans::PropertyVetoException("Too small height for FixedLine; minimum is " + rtl::OUString::valueOf(MIN_HEIGHT) + hundredthmm, *this); OShapeHelper::setSize(aSize,this); } // -----------------------------------------------------------------------------
_______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
