summaryrefslogtreecommitdiff
path: root/scripting
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2024-05-04 13:04:41 +0500
committerMike Kaganski <mike.kaganski@collabora.com>2024-05-12 05:04:57 +0200
commitccdb98c0e590281f63a8c180a2eb87086210efbd (patch)
tree98e0b192123fa140bdf2a7bc8f826ed33d218c3c /scripting
parentd4f07d4c08724602d0a13045bec957e285d45c0d (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.cxx59
-rw-r--r--scripting/source/dlgprov/dlgevtatt.hxx1
-rw-r--r--scripting/source/dlgprov/dlgprov.cxx7
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 );