cui/source/dialogs/scriptdlg.cxx | 26 +++++++++++++++++++------- 1 file changed, 19 insertions(+), 7 deletions(-)
New commits: commit 60b6288bc1aec17d04b45f62ba6f117fc43f8ab4 Author: Mike Kaganski <mike.kagan...@collabora.com> AuthorDate: Fri Aug 2 07:08:04 2019 +1000 Commit: Caolán McNamara <caol...@redhat.com> CommitDate: Sat Aug 3 20:15:58 2019 +0200 tdf#126643: avoid unnecessary asking for JRE in script organizer dialog Use two-pass search for the needed language node; if it fails with Java interaction disabled, only then repeat the search with it enabled, like in commit f3ce30ec75a4d7116b9cd4d7b21d9aaa0e237eeb. Change-Id: Icde5dbeb552a6837af02182f7b8cbbc90765c5a5 Reviewed-on: https://gerrit.libreoffice.org/76831 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kagan...@collabora.com> (cherry picked from commit 1a1f4e73b7ab9e5b071aab74c8d7e27ba2b2d29c) Reviewed-on: https://gerrit.libreoffice.org/76878 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/cui/source/dialogs/scriptdlg.cxx b/cui/source/dialogs/scriptdlg.cxx index 11ef3a8820e2..99ac608b17af 100644 --- a/cui/source/dialogs/scriptdlg.cxx +++ b/cui/source/dialogs/scriptdlg.cxx @@ -24,6 +24,7 @@ #include <sfx2/objsh.hxx> #include <vcl/svapp.hxx> #include <vcl/weld.hxx> +#include <uno/current_context.hxx> #include <strings.hrc> #include <bitmaps.hlst> @@ -47,6 +48,7 @@ #include <com/sun/star/script/XInvocation.hpp> #include <com/sun/star/document/XEmbeddedScripts.hpp> +#include <comphelper/DisableInteractionHelper.hxx> #include <comphelper/documentinfo.hxx> #include <comphelper/processfactory.hxx> @@ -247,14 +249,24 @@ SvxScriptOrgDialog::getLangNodeFromRootNode( Reference< browse::XBrowseNode > co try { - Sequence < Reference< browse::XBrowseNode > > children = rootNode->getChildNodes(); - for ( sal_Int32 n = 0; n < children.getLength(); n++ ) + auto tryFind = [&] { + const Sequence<Reference<browse::XBrowseNode>> children = rootNode->getChildNodes(); + const auto it = std::find_if(children.begin(), children.end(), + [&](const Reference<browse::XBrowseNode>& child) { + return child->getName() == language; + }); + return (it != children.end()) ? *it : nullptr; + }; { - if ( children[ n ]->getName() == language ) - { - langNode = children[ n ]; - break; - } + // First try without Java interaction, to avoid warnings for non-JRE-dependent providers + css::uno::ContextLayer layer( + new comphelper::NoEnableJavaInteractionContext(css::uno::getCurrentContext())); + langNode = tryFind(); + } + if (!langNode) + { + // Now try with Java interaction enabled + langNode = tryFind(); } } catch ( Exception& ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits