diff options
author | Mike Kaganski <mike.kaganski@collabora.com> | 2024-05-04 13:04:41 +0500 |
---|---|---|
committer | Mike Kaganski <mike.kaganski@collabora.com> | 2024-05-12 05:04:57 +0200 |
commit | ccdb98c0e590281f63a8c180a2eb87086210efbd (patch) | |
tree | 98e0b192123fa140bdf2a7bc8f826ed33d218c3c /scripting | |
parent | d4f07d4c08724602d0a13045bec957e285d45c0d (diff) |
Drop some uses of css::uno::Sequence::getConstArray
where it was obsoleted by commits 2484de6728bd11bb7949003d112f1ece2223c7a1
(Remove non-const Sequence::begin()/end() in internal code, 2021-10-15) and
fb3c04bd1930eedacd406874e1a285d62bbf27d9 (Drop non-const Sequence::operator[]
in internal code 2021-11-05).
Change-Id: I64683093afc48ddf2307dc1dee2302cf0b3cbecc
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/167110
Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Tested-by: Jenkins
Diffstat (limited to 'scripting')
-rw-r--r-- | scripting/source/dlgprov/dlgevtatt.cxx | 59 | ||||
-rw-r--r-- | scripting/source/dlgprov/dlgevtatt.hxx | 1 | ||||
-rw-r--r-- | scripting/source/dlgprov/dlgprov.cxx | 7 |
3 files changed, 30 insertions, 37 deletions
diff --git a/scripting/source/dlgprov/dlgevtatt.cxx b/scripting/source/dlgprov/dlgevtatt.cxx index 6facf2e75dbd..53c2e5b67406 100644 --- a/scripting/source/dlgprov/dlgevtatt.cxx +++ b/scripting/source/dlgprov/dlgevtatt.cxx @@ -281,37 +281,33 @@ namespace dlgprov // We know that we have to do with instances of XControl. // Otherwise this is not the right implementation for // XScriptEventsAttacher and we have to give up. - Reference< XControl > xControl( rObject, UNO_QUERY ); - Reference< XControlContainer > xControlContainer( xControl, UNO_QUERY ); - Reference< XDialog > xDialog( xControl, UNO_QUERY ); - if ( !xControl.is() ) - throw IllegalArgumentException(); - - // get XEventsSupplier from control model - Reference< XControlModel > xControlModel = xControl->getModel(); - Reference< XScriptEventsSupplier > xEventsSupplier( xControlModel, UNO_QUERY ); - attachEventsToControl( xControl, xEventsSupplier, Helper ); - if ( mbUseFakeVBAEvents ) - { - xEventsSupplier.set( getFakeVbaEventsSupplier( xControl, sDialogCodeName ) ); - Any newHelper(xControl ); - attachEventsToControl( xControl, xEventsSupplier, newHelper ); - } - if ( xControlContainer.is() && !xDialog.is() ) - { - Sequence< Reference< XControl > > aControls = xControlContainer->getControls(); - sal_Int32 nControlCount = aControls.getLength(); - - Sequence< Reference< XInterface > > aObjects( nControlCount ); - Reference< XInterface >* pObjects2 = aObjects.getArray(); - const Reference< XControl >* pControls = aControls.getConstArray(); + nestedAttachEvents(rObject.query<XControl>(), Helper, sDialogCodeName); + } + } - for ( sal_Int32 i2 = 0; i2 < nControlCount; ++i2 ) - { - pObjects2[i2].set( pControls[i2], UNO_QUERY ); - } - nestedAttachEvents( aObjects, Helper, sDialogCodeName ); - } + void DialogEventsAttacherImpl::nestedAttachEvents( + const css::uno::Reference<css::awt::XControl>& xControl, const css::uno::Any& Helper, + OUString& sDialogCodeName) + { + if (!xControl.is()) + throw IllegalArgumentException(); + Reference<XControlContainer> xControlContainer(xControl, UNO_QUERY); + Reference<XDialog> xDialog(xControl, UNO_QUERY); + + // get XEventsSupplier from control model + Reference<XControlModel> xControlModel = xControl->getModel(); + Reference<XScriptEventsSupplier> xEventsSupplier(xControlModel, UNO_QUERY); + attachEventsToControl(xControl, xEventsSupplier, Helper); + if (mbUseFakeVBAEvents) + { + xEventsSupplier.set(getFakeVbaEventsSupplier(xControl, sDialogCodeName)); + Any newHelper(xControl); + attachEventsToControl(xControl, xEventsSupplier, newHelper); + } + if (xControlContainer.is() && !xDialog.is()) + { + for (auto& xChildControl : xControlContainer->getControls()) + nestedAttachEvents(xChildControl, Helper, sDialogCodeName); } } @@ -527,8 +523,7 @@ namespace dlgprov { OUString aMethodName = aScriptEvent.ScriptCode.copy( strlen("vnd.sun.star.UNO:") ); - const Any* pArguments = aScriptEvent.Arguments.getConstArray(); - Any aEventObject = pArguments[0]; + Any aEventObject = aScriptEvent.Arguments[0]; bool bHandled = false; if( m_xHandler.is() ) diff --git a/scripting/source/dlgprov/dlgevtatt.hxx b/scripting/source/dlgprov/dlgevtatt.hxx index 62a131de03a9..73e15ebb4566 100644 --- a/scripting/source/dlgprov/dlgevtatt.hxx +++ b/scripting/source/dlgprov/dlgevtatt.hxx @@ -54,6 +54,7 @@ namespace dlgprov css::uno::Reference< css::script::XScriptListener > const & getScriptListenerForKey( const OUString& sScriptName ); css::uno::Reference< css::script::XScriptEventsSupplier > getFakeVbaEventsSupplier( const css::uno::Reference< css::awt::XControl>& xControl, OUString const & sCodeName ); void nestedAttachEvents( const css::uno::Sequence< css::uno::Reference< css::uno::XInterface > >& Objects, const css::uno::Any& Helper, OUString& sDialogCodeName ); + void nestedAttachEvents( const css::uno::Reference< css::awt::XControl >& xControl, const css::uno::Any& Helper, OUString& sDialogCodeName ); void attachEventsToControl( const css::uno::Reference< css::awt::XControl>& xControl, const css::uno::Reference< css::script::XScriptEventsSupplier >& events, const css::uno::Any& Helper ); public: DialogEventsAttacherImpl( const css::uno::Reference< css::uno::XComponentContext >& rxContext, diff --git a/scripting/source/dlgprov/dlgprov.cxx b/scripting/source/dlgprov/dlgprov.cxx index 32e85900d440..bf499982ac7a 100644 --- a/scripting/source/dlgprov/dlgprov.cxx +++ b/scripting/source/dlgprov/dlgprov.cxx @@ -440,15 +440,12 @@ namespace dlgprov return; Sequence< Reference< XControl > > aControls = xControlContainer->getControls(); - const Reference< XControl >* pControls = aControls.getConstArray(); sal_Int32 nControlCount = aControls.getLength(); Sequence< Reference< XInterface > > aObjects( nControlCount + 1 ); Reference< XInterface >* pObjects = aObjects.getArray(); - for ( sal_Int32 i = 0; i < nControlCount; ++i ) - { - pObjects[i].set( pControls[i], UNO_QUERY ); - } + std::transform(aControls.begin(), aControls.end(), pObjects, + [](auto& xControl) { return xControl.template query<XInterface>(); }); // also add the dialog control itself to the sequence pObjects[nControlCount].set( rxControl, UNO_QUERY ); |