diff options
author | Caolán McNamara <caolanm@redhat.com> | 2020-07-29 14:24:51 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2020-07-29 17:41:33 +0200 |
commit | b6f03ac06ba7eac8ca1e2ab1c3d885525cd7519c (patch) | |
tree | 9e05b92ff65eb29862f4403c670752852dacc6b0 | |
parent | f3c67b783a5dcdf874c6109d36fae8f411e885be (diff) |
replace and drop SvtExtendedSecurityOptions class
Change-Id: Ibe3443531c83eb44080217b61f5746be9cce9c49
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99695
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | cui/source/options/optlingu.cxx | 8 | ||||
-rw-r--r-- | include/unotools/extendedsecurityoptions.hxx | 67 | ||||
-rw-r--r-- | include/unotools/itemholderbase.hxx | 1 | ||||
-rw-r--r-- | sfx2/source/appl/appopen.cxx | 4 | ||||
-rw-r--r-- | solenv/clang-format/excludelist | 1 | ||||
-rw-r--r-- | unotools/Library_utl.mk | 1 | ||||
-rw-r--r-- | unotools/source/config/extendedsecurityoptions.cxx | 226 | ||||
-rw-r--r-- | unotools/source/config/itemholder1.cxx | 5 |
8 files changed, 15 insertions, 298 deletions
diff --git a/cui/source/options/optlingu.cxx b/cui/source/options/optlingu.cxx index ada93128e6e1..8d099ad0c884 100644 --- a/cui/source/options/optlingu.cxx +++ b/cui/source/options/optlingu.cxx @@ -21,6 +21,7 @@ #include <vcl/weld.hxx> #include <i18nlangtag/languagetag.hxx> #include <i18nlangtag/mslangid.hxx> +#include <officecfg/Office/Security.hxx> #include <unotools/lingucfg.hxx> #include <unotools/linguprops.hxx> #include <editeng/unolingu.hxx> @@ -870,7 +871,7 @@ SvxLinguTabPage::SvxLinguTabPage(weld::Container* pPage, weld::DialogController* m_xLinguOptionsCLB->connect_changed( LINK( this, SvxLinguTabPage, SelectHdl_Impl )); m_xLinguOptionsCLB->connect_row_activated(LINK(this, SvxLinguTabPage, BoxDoubleClickHdl_Impl)); - if ( SvtExtendedSecurityOptions().GetOpenHyperlinkMode() == SvtExtendedSecurityOptions::OPEN_NEVER ) + if (officecfg::Office::Security::Hyperlinks::Open::get() == SvtExtendedSecurityOptions::OPEN_NEVER) m_xMoreDictsLink->hide(); xProp = LinguMgr::GetLinguPropertySet(); @@ -1527,8 +1528,7 @@ void SvxLinguTabPage::HideGroups( sal_uInt16 nGrp ) m_xLinguModulesCLB->hide(); m_xLinguModulesEditPB->hide(); - if ( SvtExtendedSecurityOptions().GetOpenHyperlinkMode() - != SvtExtendedSecurityOptions::OPEN_NEVER ) + if (officecfg::Office::Security::Hyperlinks::Open::get() != SvtExtendedSecurityOptions::OPEN_NEVER) { m_xMoreDictsLink->show(); } @@ -1568,7 +1568,7 @@ SvxEditModulesDlg::SvxEditModulesDlg(weld::Window* pParent, SvxLinguData_Impl& r m_xPrioUpPB->set_sensitive( false ); m_xPrioDownPB->set_sensitive( false ); - if ( SvtExtendedSecurityOptions().GetOpenHyperlinkMode() == SvtExtendedSecurityOptions::OPEN_NEVER ) + if (officecfg::Office::Security::Hyperlinks::Open::get() == SvtExtendedSecurityOptions::OPEN_NEVER) m_xMoreDictsLink->hide(); // set that we want the checkbox shown if spellchecking is available diff --git a/include/unotools/extendedsecurityoptions.hxx b/include/unotools/extendedsecurityoptions.hxx index 533cc8894890..4a2b493e8d46 100644 --- a/include/unotools/extendedsecurityoptions.hxx +++ b/include/unotools/extendedsecurityoptions.hxx @@ -16,66 +16,17 @@ * except in compliance with the License. You may obtain a copy of * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ -#ifndef INCLUDED_UNOTOOLS_EXTENDEDSECURITYOPTIONS_HXX -#define INCLUDED_UNOTOOLS_EXTENDEDSECURITYOPTIONS_HXX -#include <unotools/unotoolsdllapi.h> -#include <sal/types.h> -#include <unotools/options.hxx> -#include <memory> +#pragma once -namespace osl { class Mutex; } - -/*-************************************************************************************************************ - @short forward declaration to our private date container implementation - @descr We use these class as internal member to support small memory requirements. - You can create the container if it is necessary. The class which use these mechanism - is faster and smaller then a complete implementation! -*//*-*************************************************************************************************************/ - -class SvtExtendedSecurityOptions_Impl; - -/*-************************************************************************************************************ - @short collect information about security features - @ATTENTION This class is partially threadsafe. - - @devstatus ready to use -*//*-*************************************************************************************************************/ - -class SAL_WARN_UNUSED UNOTOOLS_DLLPUBLIC SvtExtendedSecurityOptions final : public utl::detail::Options +namespace SvtExtendedSecurityOptions { - public: - // Must be zero based! - enum OpenHyperlinkMode - { - OPEN_NEVER = 0, - OPEN_WITHSECURITYCHECK, - }; - - SvtExtendedSecurityOptions(); - virtual ~SvtExtendedSecurityOptions() override; - - OpenHyperlinkMode GetOpenHyperlinkMode() const; - - private: - - /*-**************************************************************************************************** - @short return a reference to a static mutex - @descr These class is partially threadsafe (for de-/initialization only). - All access methods aren't safe! - We create a static mutex only for one ime and use at different times. - @return A reference to a static mutex member. - *//*-*****************************************************************************************************/ - - UNOTOOLS_DLLPRIVATE static ::osl::Mutex& GetInitMutex(); - - // private member - - private: - std::shared_ptr<SvtExtendedSecurityOptions_Impl> m_pImpl; - -}; // class SvtExtendedSecurityOptions - -#endif // INCLUDED_UNOTOOLS_EXTENDEDSECURITYOPTIONS_HXX + // Must be zero based! + enum OpenHyperlinkMode + { + OPEN_NEVER = 0, + OPEN_WITHSECURITYCHECK, + }; +} /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/include/unotools/itemholderbase.hxx b/include/unotools/itemholderbase.hxx index 22bbc4efddd2..1c496667681e 100644 --- a/include/unotools/itemholderbase.hxx +++ b/include/unotools/itemholderbase.hxx @@ -43,7 +43,6 @@ enum class EItem DynamicMenuOptions , EventConfig , - ExtendedSecurityOptions , HelpOptions , // 2 HistoryOptions , diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx index f888ebf1981b..e59e58b08033 100644 --- a/sfx2/source/appl/appopen.cxx +++ b/sfx2/source/appl/appopen.cxx @@ -86,6 +86,7 @@ #include <openuriexternally.hxx> #include <officecfg/Office/ProtocolHandler.hxx> +#include <officecfg/Office/Security.hxx> using namespace ::com::sun::star; using namespace ::com::sun::star::beans; @@ -827,8 +828,7 @@ void SfxApplication::OpenDocExec_Impl( SfxRequest& rReq ) xTrans->parseStrict( aURL ); INetProtocol aINetProtocol = INetURLObject( aURL.Complete ).GetProtocol(); - SvtExtendedSecurityOptions aExtendedSecurityOptions; - SvtExtendedSecurityOptions::OpenHyperlinkMode eMode = aExtendedSecurityOptions.GetOpenHyperlinkMode(); + auto eMode = officecfg::Office::Security::Hyperlinks::Open::get(); if ( eMode == SvtExtendedSecurityOptions::OPEN_NEVER && aINetProtocol != INetProtocol::VndSunStarHelp ) { diff --git a/solenv/clang-format/excludelist b/solenv/clang-format/excludelist index 2f21632f4c31..b51a643f84ac 100644 --- a/solenv/clang-format/excludelist +++ b/solenv/clang-format/excludelist @@ -16266,7 +16266,6 @@ unotools/source/config/defaultoptions.cxx unotools/source/config/docinfohelper.cxx unotools/source/config/dynamicmenuoptions.cxx unotools/source/config/eventcfg.cxx -unotools/source/config/extendedsecurityoptions.cxx unotools/source/config/fltrcfg.cxx unotools/source/config/fontcfg.cxx unotools/source/config/historyoptions.cxx diff --git a/unotools/Library_utl.mk b/unotools/Library_utl.mk index 4838371364f8..e0059567baa4 100644 --- a/unotools/Library_utl.mk +++ b/unotools/Library_utl.mk @@ -68,7 +68,6 @@ $(eval $(call gb_Library_add_exception_objects,utl,\ unotools/source/config/docinfohelper \ unotools/source/config/dynamicmenuoptions \ unotools/source/config/eventcfg \ - unotools/source/config/extendedsecurityoptions \ unotools/source/config/fltrcfg \ unotools/source/config/fontcfg \ unotools/source/config/historyoptions \ diff --git a/unotools/source/config/extendedsecurityoptions.cxx b/unotools/source/config/extendedsecurityoptions.cxx deleted file mode 100644 index 2d57ab4230a2..000000000000 --- a/unotools/source/config/extendedsecurityoptions.cxx +++ /dev/null @@ -1,226 +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/. - * - * This file incorporates work covered by the following license notice: - * - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed - * with this work for additional information regarding copyright - * ownership. The ASF licenses this file to you under the Apache - * License, Version 2.0 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.apache.org/licenses/LICENSE-2.0 . - */ - -#include <sal/config.h> - -#include <unotools/extendedsecurityoptions.hxx> -#include <unotools/configitem.hxx> -#include <tools/debug.hxx> -#include <com/sun/star/uno/Any.hxx> -#include <com/sun/star/uno/Sequence.hxx> -#include <osl/diagnose.h> - -#include "itemholder1.hxx" - -#include <unordered_map> - -using namespace ::utl; -using namespace ::osl; -using namespace ::com::sun::star::uno; - -#define ROOTNODE_SECURITY "Office.Security" - -#define SECURE_EXTENSIONS_SET OUString("SecureExtensions") - -#define PROPERTYNAME_HYPERLINKS_OPEN OUString("Hyperlinks/Open") - -#define PROPERTYHANDLE_HYPERLINKS_OPEN 0 - -#define PROPERTYCOUNT 1 - -typedef std::unordered_map<OUString, sal_Int32> - ExtensionHashMap; - -class SvtExtendedSecurityOptions_Impl : public ConfigItem -{ - public: - SvtExtendedSecurityOptions_Impl(); - virtual ~SvtExtendedSecurityOptions_Impl() override; - - /*-**************************************************************************************************** - @short called for notify of configmanager - @descr This method is called from the ConfigManager before the application ends or from the - PropertyChangeListener if the sub tree broadcasts changes. You must update your - internal values. - - @seealso baseclass ConfigItem - - @param "seqPropertyNames" is the list of properties which should be updated. - *//*-*****************************************************************************************************/ - - virtual void Notify( const Sequence< OUString >& seqPropertyNames ) override; - - SvtExtendedSecurityOptions::OpenHyperlinkMode GetOpenHyperlinkMode() const { return m_eOpenHyperlinkMode;} - - private: - virtual void ImplCommit() override; - - /*-**************************************************************************************************** - @short return list of key names of our configuration management which represent our module tree - @descr This method returns a static const list of key names. We need it to get needed values from our - configuration management. - @return A list of needed configuration keys is returned. - *//*-*****************************************************************************************************/ - - static Sequence< OUString > GetPropertyNames(); - - SvtExtendedSecurityOptions::OpenHyperlinkMode m_eOpenHyperlinkMode; -}; - -// constructor - -SvtExtendedSecurityOptions_Impl::SvtExtendedSecurityOptions_Impl() - // Init baseclasses first - : ConfigItem ( ROOTNODE_SECURITY ) - , m_eOpenHyperlinkMode(SvtExtendedSecurityOptions::OPEN_NEVER) - // Init member then. -{ - Sequence< OUString > seqNames = GetPropertyNames(); - Sequence< Any > seqValues = GetProperties( seqNames ); - - sal_Int32 nPropertyCount = seqValues.getLength(); - for( sal_Int32 nProperty=0; nProperty<nPropertyCount; ++nProperty ) - { - // Safe impossible cases. - // Check any for valid value. - DBG_ASSERT( seqValues[nProperty].hasValue(), "SvtExtendedSecurityOptions_Impl::SvtExtendedSecurityOptions_Impl()\nInvalid property value detected!\n" ); - switch( nProperty ) - { - case PROPERTYHANDLE_HYPERLINKS_OPEN: - { - DBG_ASSERT( ( seqValues[nProperty].getValueTypeClass() == TypeClass_LONG ), "SvtExtendedSecurityOptions_Impl::SvtExtendedSecurityOptions_Impl()\nWho has changed the value type of 'Hyperlink/Open'?" ); - - sal_Int32 nMode = SvtExtendedSecurityOptions::OPEN_WITHSECURITYCHECK; - if ( seqValues[nProperty] >>= nMode ) - m_eOpenHyperlinkMode = static_cast<SvtExtendedSecurityOptions::OpenHyperlinkMode>(nMode); - else { - OSL_FAIL("Wrong type for Open mode!"); - } - } - break; - } - } - - // Enable notification mechanism of our baseclass. - // We need it to get information about changes outside these class on our used configuration keys! - Sequence<OUString> seqNotifyNames { SECURE_EXTENSIONS_SET }; - EnableNotification( seqNotifyNames ); -} - -// destructor - -SvtExtendedSecurityOptions_Impl::~SvtExtendedSecurityOptions_Impl() -{ - assert(!IsModified()); // should have been committed -} - -// public method - -void SvtExtendedSecurityOptions_Impl::Notify( const Sequence< OUString >& ) -{ - // Not implemented -} - -// public method - -void SvtExtendedSecurityOptions_Impl::ImplCommit() -{ - // Get names of supported properties, create a list for values and copy current values to it. - Sequence< OUString > seqNames = GetPropertyNames (); - sal_Int32 nCount = seqNames.getLength(); - Sequence< Any > seqValues ( nCount ); - for( sal_Int32 nProperty=0; nProperty<nCount; ++nProperty ) - { - switch( nProperty ) - { - case PROPERTYHANDLE_HYPERLINKS_OPEN: { - seqValues[nProperty] <<= static_cast<sal_Int32>(m_eOpenHyperlinkMode); - } - break; - } - } - - // Set properties in configuration. - PutProperties( seqNames, seqValues ); -} - -// private method (currently not used) - -Sequence< OUString > SvtExtendedSecurityOptions_Impl::GetPropertyNames() -{ - // Build list of configuration key names. - const OUString pProperties[] = - { - PROPERTYNAME_HYPERLINKS_OPEN - }; - // Initialize return sequence with these list ... - const Sequence< OUString > seqPropertyNames( pProperties, PROPERTYCOUNT ); - // ... and return it. - return seqPropertyNames; -} - -namespace { - -std::weak_ptr<SvtExtendedSecurityOptions_Impl> g_pExtendedSecurityOptions; - -} - -SvtExtendedSecurityOptions::SvtExtendedSecurityOptions() -{ - // Global access, must be guarded (multithreading!). - MutexGuard aGuard( GetInitMutex() ); - - m_pImpl = g_pExtendedSecurityOptions.lock(); - if( !m_pImpl ) - { - m_pImpl = std::make_shared<SvtExtendedSecurityOptions_Impl>(); - g_pExtendedSecurityOptions = m_pImpl; - ItemHolder1::holdConfigItem(EItem::ExtendedSecurityOptions); - } -} - -SvtExtendedSecurityOptions::~SvtExtendedSecurityOptions() -{ - // Global access, must be guarded (multithreading!) - MutexGuard aGuard( GetInitMutex() ); - - m_pImpl.reset(); -} - -// public method - -SvtExtendedSecurityOptions::OpenHyperlinkMode SvtExtendedSecurityOptions::GetOpenHyperlinkMode() const -{ - MutexGuard aGuard( GetInitMutex() ); - return m_pImpl->GetOpenHyperlinkMode(); -} - -namespace -{ - class theExtendedSecurityOptionsMutex : public rtl::Static<osl::Mutex, theExtendedSecurityOptionsMutex>{}; -} - -// private method - -Mutex& SvtExtendedSecurityOptions::GetInitMutex() -{ - return theExtendedSecurityOptionsMutex::get(); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/unotools/source/config/itemholder1.cxx b/unotools/source/config/itemholder1.cxx index 90d1690ac6ef..f24af51db595 100644 --- a/unotools/source/config/itemholder1.cxx +++ b/unotools/source/config/itemholder1.cxx @@ -28,7 +28,6 @@ #include <unotools/compatibility.hxx> #include <unotools/defaultoptions.hxx> #include <unotools/dynamicmenuoptions.hxx> -#include <unotools/extendedsecurityoptions.hxx> #include <unotools/historyoptions.hxx> #include <unotools/lingucfg.hxx> #include <unotools/moduleoptions.hxx> @@ -138,10 +137,6 @@ void ItemHolder1::impl_newItem(TItemInfo& rItem) //rItem.pItem.reset( new GlobalEventConfig() ); break; - case EItem::ExtendedSecurityOptions : - rItem.pItem.reset( new SvtExtendedSecurityOptions() ); - break; - case EItem::HistoryOptions : rItem.pItem.reset( new SvtHistoryOptions() ); break; |