summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2019-10-28 18:59:57 +0300
committerMike Kaganski <mike.kaganski@collabora.com>2019-11-09 09:53:38 +0100
commitd628258f279d003ba4e11f1f7e2e69273acd008c (patch)
tree15eb418ed03271538d1155402d41f8d1778937a6 /include
parent7e7e97fc0bd2f3d7b794b3fc064c60ef86e9b72b (diff)
tdf#80731: Only check closing parenthesis when in IDE
This reinstates the fix by Pierre Lepage, which was reverted in 351dead74b4c213b13102f81b5ae9bb47ad8ca39, and makes sure it only has effect when the compilation is started from IDE. The idea is that the IDE is used primarily for development, and that's a good opportunity to detect any error in the code. When the code is compiled from outside of the IDE (like running an extension), the error is tolerated to allow users run the legacy code having this error. Hopefully this is enough for tdf#106529. This re-uses comphelper's NoEnableJavaInteractionContext class, which is converted into general-purpose SetFlagContext class to avoid code duplication. Change-Id: Ie290019cb190b8d1d590699ec13bd63eac478d09 Reviewed-on: https://gerrit.libreoffice.org/81616 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com>
Diffstat (limited to 'include')
-rw-r--r--include/comphelper/DisableInteractionHelper.hxx49
-rw-r--r--include/comphelper/SetFlagContextHelper.hxx63
2 files changed, 63 insertions, 49 deletions
diff --git a/include/comphelper/DisableInteractionHelper.hxx b/include/comphelper/DisableInteractionHelper.hxx
deleted file mode 100644
index 3082a1406dfe..000000000000
--- a/include/comphelper/DisableInteractionHelper.hxx
+++ /dev/null
@@ -1,49 +0,0 @@
-/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
-/*
- * This file is part of the LibreOffice project.
- *
- * This Source Code Form is subject to the terms of the Mozilla Public
- * License, v. 2.0. If a copy of the MPL was not distributed with this
- * file, You can obtain one at http://mozilla.org/MPL/2.0/.
- */
-
-#ifndef INCLUDED_COMPHELPER_DISABLEINTERACTIONHELPER_HXX
-#define INCLUDED_COMPHELPER_DISABLEINTERACTIONHELPER_HXX
-
-#include <cppuhelper/implbase.hxx>
-#include <com/sun/star/uno/XCurrentContext.hpp>
-
-namespace comphelper
-{
-class NoEnableJavaInteractionContext final : public cppu::WeakImplHelper<css::uno::XCurrentContext>
-{
-public:
- explicit NoEnableJavaInteractionContext(
- css::uno::Reference<css::uno::XCurrentContext> const& xContext)
- : mxContext(xContext)
- {
- }
- NoEnableJavaInteractionContext(const NoEnableJavaInteractionContext&) = delete;
- NoEnableJavaInteractionContext& operator=(const NoEnableJavaInteractionContext&) = delete;
-
-private:
- virtual ~NoEnableJavaInteractionContext() override {}
-
- virtual css::uno::Any SAL_CALL getValueByName(OUString const& Name) override
- {
- if (Name == "DontEnableJava")
- return css::uno::Any(true);
- else if (mxContext.is())
- return mxContext->getValueByName(Name);
- else
- return css::uno::Any();
- }
-
- css::uno::Reference<css::uno::XCurrentContext> mxContext;
-};
-
-} // namespace comphelper
-
-#endif // INCLUDED_COMPHELPER_DISABLEINTERACTIONHELPER_HXX
-
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/comphelper/SetFlagContextHelper.hxx b/include/comphelper/SetFlagContextHelper.hxx
new file mode 100644
index 000000000000..d209e398aeab
--- /dev/null
+++ b/include/comphelper/SetFlagContextHelper.hxx
@@ -0,0 +1,63 @@
+/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
+/*
+ * This file is part of the LibreOffice project.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
+ */
+
+#ifndef INCLUDED_COMPHELPER_SETFLAGCONTEXTHELPER_HXX
+#define INCLUDED_COMPHELPER_SETFLAGCONTEXTHELPER_HXX
+
+#include <com/sun/star/uno/XCurrentContext.hpp>
+#include <cppuhelper/implbase.hxx>
+#include <uno/current_context.hxx>
+
+namespace comphelper
+{
+// Used to flag some named value to be true for all code running in this context
+class SetFlagContext final : public cppu::WeakImplHelper<css::uno::XCurrentContext>
+{
+public:
+ explicit SetFlagContext(const OUString& sName,
+ css::uno::Reference<css::uno::XCurrentContext> const& xContext)
+ : m_sName(sName)
+ , mxNextContext(xContext)
+ {
+ }
+ SetFlagContext(const SetFlagContext&) = delete;
+ SetFlagContext& operator=(const SetFlagContext&) = delete;
+
+ virtual css::uno::Any SAL_CALL getValueByName(OUString const& Name) override
+ {
+ if (Name == m_sName)
+ return css::uno::Any(true);
+ else if (mxNextContext.is())
+ return mxNextContext->getValueByName(Name);
+ else
+ return css::uno::Any();
+ }
+
+private:
+ OUString m_sName;
+ css::uno::Reference<css::uno::XCurrentContext> mxNextContext;
+};
+
+// Returns a new context that reports the named value to be true
+inline css::uno::Reference<css::uno::XCurrentContext> NewFlagContext(const OUString& sName)
+{
+ return new SetFlagContext(sName, css::uno::getCurrentContext());
+}
+
+// A specialization for preventing "Java must be enabled" interaction
+inline css::uno::Reference<css::uno::XCurrentContext> NoEnableJavaInteractionContext()
+{
+ return NewFlagContext("DontEnableJava");
+}
+
+} // namespace comphelper
+
+#endif // INCLUDED_COMPHELPER_SETFLAGCONTEXTHELPER_HXX
+
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */