[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - framework/source sfx2/sdi sfx2/source
Samuel Mehrbrodt (via logerrit)
logerrit at kemper.freedesktop.org
Tue Dec 3 08:34:05 UTC 2019
framework/source/uielement/macrosmenucontroller.cxx | 5 +++++
sfx2/sdi/appslots.sdi | 4 ++++
sfx2/source/appl/appserv.cxx | 10 ++++++++++
sfx2/source/view/viewfrm.cxx | 3 ++-
4 files changed, 21 insertions(+), 1 deletion(-)
New commits:
commit e5c258b5422f9c98dcddc102b323c00f99a48a5f
Author: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
AuthorDate: Mon Dec 2 15:54:13 2019 +0100
Commit: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
CommitDate: Tue Dec 3 09:33:15 2019 +0100
Disable macro menu entries when DisableMacrosExecution is set
Change-Id: Ica9a4f4a6510717dcd9fe53676e5a6f261f005ce
Reviewed-on: https://gerrit.libreoffice.org/84231
Reviewed-by: Serge Krot (CIB) <Serge.Krot at cib.de>
Tested-by: Serge Krot (CIB) <Serge.Krot at cib.de>
(cherry picked from commit e58eda7df5b384c0f054fcbd4a8dc4a47bed2080)
Reviewed-on: https://gerrit.libreoffice.org/84293
Tested-by: Jenkins
Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt at cib.de>
diff --git a/framework/source/uielement/macrosmenucontroller.cxx b/framework/source/uielement/macrosmenucontroller.cxx
index c9beceba63f7..001fafacd4d5 100644
--- a/framework/source/uielement/macrosmenucontroller.cxx
+++ b/framework/source/uielement/macrosmenucontroller.cxx
@@ -25,6 +25,7 @@
#include <com/sun/star/beans/XPropertySet.hpp>
#include <com/sun/star/container/XContentEnumerationAccess.hpp>
#include <com/sun/star/style/XStyleFamiliesSupplier.hpp>
+#include <officecfg/Office/Common.hxx>
#include <toolkit/awt/vclxmenu.hxx>
#include <vcl/svapp.hxx>
#include <vcl/i18nhelp.hxx>
@@ -65,6 +66,10 @@ MacrosMenuController::~MacrosMenuController()
// private function
void MacrosMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu > const & rPopupMenu )
{
+ bool bMacrosDisabled = officecfg::Office::Common::Security::Scripting::DisableMacrosExecution::get();
+ if (bMacrosDisabled)
+ return;
+
VCLXPopupMenu* pVCLPopupMenu = static_cast<VCLXPopupMenu *>(comphelper::getUnoTunnelImplementation<VCLXMenu>( rPopupMenu ));
PopupMenu* pPopupMenu = nullptr;
diff --git a/sfx2/sdi/appslots.sdi b/sfx2/sdi/appslots.sdi
index 6bd28f73b37f..c12eb098b37e 100644
--- a/sfx2/sdi/appslots.sdi
+++ b/sfx2/sdi/appslots.sdi
@@ -231,18 +231,22 @@ shell SfxApplication
SID_BASICIDE_APPEAR // status(final|play)
[
ExecMethod = OfaExec_Impl;
+ StateMethod = OfaState_Impl;
]
SID_SCRIPTORGANIZER // status(final|play)
[
ExecMethod = OfaExec_Impl;
+ StateMethod = OfaState_Impl;
]
SID_MACROORGANIZER // status(final|play)
[
ExecMethod = OfaExec_Impl;
+ StateMethod = OfaState_Impl;
]
SID_RUNMACRO // status(final|play)
[
ExecMethod = OfaExec_Impl;
+ StateMethod = OfaState_Impl;
]
SID_BASICCHOOSER // status(final|play)
[
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 334c10a07ecd..c73d8d9d39c9 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -1690,6 +1690,16 @@ void SfxApplication::OfaState_Impl(SfxItemSet &rSet)
}
if ( comphelper::LibreOfficeKit::isActive() )
rSet.DisableItem( SID_AUTO_CORRECT_DLG );
+
+ bool bMacrosDisabled
+ = officecfg::Office::Common::Security::Scripting::DisableMacrosExecution::get();
+ if (bMacrosDisabled)
+ {
+ rSet.DisableItem(SID_RUNMACRO);
+ rSet.DisableItem(SID_MACROORGANIZER);
+ rSet.DisableItem(SID_SCRIPTORGANIZER);
+ rSet.DisableItem(SID_BASICIDE_APPEAR);
+ }
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sfx2/source/view/viewfrm.cxx b/sfx2/source/view/viewfrm.cxx
index 80d66831f0bb..3264a1c9497a 100644
--- a/sfx2/source/view/viewfrm.cxx
+++ b/sfx2/source/view/viewfrm.cxx
@@ -2982,7 +2982,8 @@ void SfxViewFrame::MiscState_Impl(SfxItemSet &rSet)
{
SvtMiscOptions aMiscOptions;
const OUString& sName{GetObjectShell()->GetFactory().GetFactoryName()};
- if ( !aMiscOptions.IsMacroRecorderMode() ||
+ bool bMacrosDisabled = officecfg::Office::Common::Security::Scripting::DisableMacrosExecution::get();
+ if (bMacrosDisabled || !aMiscOptions.IsMacroRecorderMode() ||
( sName!="swriter" && sName!="scalc" ) )
{
rSet.DisableItem( nWhich );
More information about the Libreoffice-commits
mailing list