From adb203bc05e3e36173cbd46b9951f79821a81799 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Mon, 15 Apr 2024 11:27:54 +0200 Subject: Merging upstream version 4:24.2.1. Signed-off-by: Daniel Baumann --- cui/source/dialogs/cuicharmap.cxx | 1 + cui/source/dialogs/tipofthedaydlg.cxx | 28 +++++------- cui/source/factory/dlgfact.cxx | 11 +++++ cui/source/factory/dlgfact.hxx | 8 ++++ cui/source/inc/securityoptions.hxx | 80 ++++++++++++++++++++++++++++++++++ cui/source/inc/tipofthedaydlg.hxx | 2 +- cui/source/options/optinet2.cxx | 38 ++-------------- cui/source/options/securityoptions.cxx | 30 ++++++++++++- cui/source/options/securityoptions.hxx | 79 --------------------------------- 9 files changed, 143 insertions(+), 134 deletions(-) create mode 100644 cui/source/inc/securityoptions.hxx delete mode 100644 cui/source/options/securityoptions.hxx (limited to 'cui/source') diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx index 03d1e8c90b..0d0b809b0e 100644 --- a/cui/source/dialogs/cuicharmap.cxx +++ b/cui/source/dialogs/cuicharmap.cxx @@ -523,6 +523,7 @@ IMPL_LINK(SvxCharacterMap, CharClickHdl, SvxCharView*, rView, void) { rView->GrabFocus(); + SetCharFont(rView->GetFont()); m_aShowChar.SetText( rView->GetText() ); m_aShowChar.SetFont(rView->GetFont()); m_aShowChar.Invalidate(); diff --git a/cui/source/dialogs/tipofthedaydlg.cxx b/cui/source/dialogs/tipofthedaydlg.cxx index f1cb7afc2c..bbb26a054b 100644 --- a/cui/source/dialogs/tipofthedaydlg.cxx +++ b/cui/source/dialogs/tipofthedaydlg.cxx @@ -50,7 +50,7 @@ const Size ThumbSize(150, 150); TipOfTheDayDialog::TipOfTheDayDialog(weld::Window* pParent) : GenericDialogController(pParent, "cui/ui/tipofthedaydialog.ui", "TipOfTheDayDialog") - , m_pParent(pParent) + , m_xParent(pParent ? pParent->GetXWindow() : nullptr) , m_pText(m_xBuilder->weld_label("lbText")) , m_pShowTip(m_xBuilder->weld_check_button("cbShowTip")) , m_pNext(m_xBuilder->weld_button("btnNext")) @@ -62,15 +62,11 @@ TipOfTheDayDialog::TipOfTheDayDialog(weld::Window* pParent) m_nCurrentTip = officecfg::Office::Common::Misc::LastTipOfTheDayID::get(); m_pPreview->set_size_request(ThumbSize.Width(), ThumbSize.Height()); - if (pParent != nullptr) + if (m_xParent.is()) { - css::uno::Reference xWindow = pParent->GetXWindow(); - if (xWindow.is()) - { - VclPtr xVclWin(VCLUnoHelper::GetWindow(xWindow)); - if (xVclWin != nullptr) - xVclWin->AddEventListener(LINK(this, TipOfTheDayDialog, Terminated)); - } + VclPtr xVclWin(VCLUnoHelper::GetWindow(m_xParent)); + if (xVclWin != nullptr) + xVclWin->AddEventListener(LINK(this, TipOfTheDayDialog, Terminated)); } const auto t0 = std::chrono::system_clock::now().time_since_epoch(); @@ -94,7 +90,7 @@ IMPL_LINK(TipOfTheDayDialog, Terminated, VclWindowEvent&, rEvent, void) { if (rEvent.GetId() == VclEventId::ObjectDying) { - m_pParent = nullptr; + m_xParent.clear(); TipOfTheDayDialog::response(RET_OK); } } @@ -107,15 +103,11 @@ TipOfTheDayDialog::~TipOfTheDayDialog() officecfg::Office::Common::Misc::ShowTipOfTheDay::set(m_pShowTip->get_active(), xChanges); xChanges->commit(); - if (m_pParent != nullptr) + if (m_xParent.is()) { - css::uno::Reference xWindow = m_pParent->GetXWindow(); - if (xWindow.is()) - { - VclPtr xVclWin(VCLUnoHelper::GetWindow(xWindow)); - if (xVclWin != nullptr) - xVclWin->RemoveEventListener(LINK(this, TipOfTheDayDialog, Terminated)); - } + VclPtr xVclWin(VCLUnoHelper::GetWindow(m_xParent)); + if (xVclWin != nullptr) + xVclWin->RemoveEventListener(LINK(this, TipOfTheDayDialog, Terminated)); } } diff --git a/cui/source/factory/dlgfact.cxx b/cui/source/factory/dlgfact.cxx index ffb5fd3010..c53e3432a2 100644 --- a/cui/source/factory/dlgfact.cxx +++ b/cui/source/factory/dlgfact.cxx @@ -116,6 +116,7 @@ IMPL_ABSTDLG_CLASS(AbstractScreenshotAnnotationDlg) IMPL_ABSTDLG_CLASS(AbstractSignatureLineDialog) IMPL_ABSTDLG_CLASS(AbstractSignSignatureLineDialog) IMPL_ABSTDLG_CLASS(AbstractSvxCharacterMapDialog) +IMPL_ABSTDLG_CLASS(AbstractSecurityOptionsDialog) IMPL_ABSTDLG_CLASS(AbstractSvxHpLinkDlg) IMPL_ABSTDLG_CLASS(AbstractSvxJSearchOptionsDialog) IMPL_ABSTDLG_CLASS(AbstractSvxMultiPathDialog) @@ -874,6 +875,16 @@ VclPtr AbstractDialogFactory_Impl::CreateFrameDialog(weld::Wi return nullptr; } +VclPtr AbstractDialogFactory_Impl::CreateSvxSecurityOptionsDialog(weld::Window* pParent) +{ + return VclPtr::Create(std::make_unique(pParent)); +} + +bool AbstractSecurityOptionsDialog_Impl::SetSecurityOptions() +{ + return m_xDlg->SetSecurityOptions(); +} + // TabDialog outside the drawing layer VclPtr AbstractDialogFactory_Impl::CreateAutoCorrTabDialog(weld::Window* pParent, const SfxItemSet* pAttrSet) { diff --git a/cui/source/factory/dlgfact.hxx b/cui/source/factory/dlgfact.hxx index 1da0ec35ec..02ba9a1b0f 100644 --- a/cui/source/factory/dlgfact.hxx +++ b/cui/source/factory/dlgfact.hxx @@ -49,6 +49,7 @@ #include #include #include +#include #include #include #include @@ -402,6 +403,11 @@ DECL_ABSTDLG_CLASS_UNIQUE(AbstractSvxCharacterMapDialog,SfxAbstractDialog,SvxCha DECL_ABSTDLG_CLASS(AbstractScreenshotAnnotationDlg,ScreenshotAnnotationDlg) }; +// AbstractSecurityOptionsDialog_Impl +DECL_ABSTDLG_CLASS(AbstractSecurityOptionsDialog, svx::SecurityOptionsDialog) + virtual bool SetSecurityOptions() override; +}; + // AbstractSignatureLineDialog_Impl DECL_ABSTDLG_CLASS(AbstractSignatureLineDialog,SignatureLineDialog) }; @@ -592,6 +598,8 @@ public: virtual VclPtr CreateScreenshotAnnotationDlg(weld::Dialog& rParentDialog) override; + virtual VclPtr CreateSvxSecurityOptionsDialog(weld::Window* pParent) override; + virtual VclPtr CreateSignatureLineDialog(weld::Window* pParent, const css::uno::Reference xModel, bool bEditExisting) override; diff --git a/cui/source/inc/securityoptions.hxx b/cui/source/inc/securityoptions.hxx new file mode 100644 index 0000000000..6839e39318 --- /dev/null +++ b/cui/source/inc/securityoptions.hxx @@ -0,0 +1,80 @@ +/* -*- 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 . + */ +#pragma once + +#include + +namespace svx +{ + class SecurityOptionsDialog : public weld::GenericDialogController + { + private: + std::unique_ptr m_xSaveOrSendDocsCB; + std::unique_ptr m_xSaveOrSendDocsImg; + std::unique_ptr m_xSignDocsCB; + std::unique_ptr m_xSignDocsImg; + std::unique_ptr m_xPrintDocsCB; + std::unique_ptr m_xPrintDocsImg; + std::unique_ptr m_xCreatePdfCB; + std::unique_ptr m_xCreatePdfImg; + + std::unique_ptr m_xRemovePersInfoCB; + std::unique_ptr m_xRemovePersInfoImg; + std::unique_ptr m_xRecommPasswdCB; + std::unique_ptr m_xRecommPasswdImg; + std::unique_ptr m_xCtrlHyperlinkCB; + std::unique_ptr m_xCtrlHyperlinkImg; + std::unique_ptr m_xBlockUntrustedRefererLinksCB; + std::unique_ptr m_xBlockUntrustedRefererLinksImg; + + std::unique_ptr m_xRedlineinfoCB; + std::unique_ptr m_xRedlineinfoImg; + std::unique_ptr m_xDocPropertiesCB; + std::unique_ptr m_xDocPropertiesImg; + std::unique_ptr m_xNoteAuthorCB; + std::unique_ptr m_xNoteAuthorImg; + std::unique_ptr m_xDocumentVersionCB; + std::unique_ptr m_xDocumentVersionImg; + + public: + SecurityOptionsDialog(weld::Window* pParent); + + void init(); + + bool IsSaveOrSendDocsChecked() const { return m_xSaveOrSendDocsCB->get_active(); } + bool IsSignDocsChecked() const { return m_xSignDocsCB->get_active(); } + bool IsPrintDocsChecked() const { return m_xPrintDocsCB->get_active(); } + bool IsCreatePdfChecked() const { return m_xCreatePdfCB->get_active(); } + bool IsRemovePersInfoChecked() const { return m_xRemovePersInfoCB->get_active(); } + bool IsRemoveRedlineInfoChecked() const { return m_xRedlineinfoCB->get_active(); } + bool IsRemoveDocUserInfoChecked() const { return m_xDocPropertiesCB->get_active(); } + bool IsRemoveNoteAuthorInfoChecked() const { return m_xNoteAuthorCB->get_active(); } + bool IsRemoveDocVersionInfoChecked() const { return m_xDocumentVersionCB->get_active(); } + bool IsRecommPasswdChecked() const { return m_xRecommPasswdCB->get_active(); } + bool IsCtrlHyperlinkChecked() const { return m_xCtrlHyperlinkCB->get_active(); } + bool IsBlockUntrustedRefererLinksChecked() const { return m_xBlockUntrustedRefererLinksCB->get_active(); } + + DECL_LINK(ShowPersonalInfosToggle, weld::Toggleable&, void); + + bool SetSecurityOptions(); + void changeKeepSecurityInfosEnabled(); + }; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/cui/source/inc/tipofthedaydlg.hxx b/cui/source/inc/tipofthedaydlg.hxx index 69af1996e4..1f86d1bf23 100644 --- a/cui/source/inc/tipofthedaydlg.hxx +++ b/cui/source/inc/tipofthedaydlg.hxx @@ -27,7 +27,7 @@ class TipOfTheDayDialog : public weld::GenericDialogController { private: CuiGraphicPreviewWindow m_aPreview; - weld::Window* m_pParent; + css::uno::Reference m_xParent; std::unique_ptr m_pText; std::unique_ptr m_pShowTip; diff --git a/cui/source/options/optinet2.cxx b/cui/source/options/optinet2.cxx index 083c3e40f7..eaf0e8616b 100644 --- a/cui/source/options/optinet2.cxx +++ b/cui/source/options/optinet2.cxx @@ -27,7 +27,6 @@ #include #include #include -#include #include #include @@ -52,7 +51,7 @@ #include #include #include -#include "securityoptions.hxx" +#include #include "webconninfo.hxx" #include "certpath.hxx" #include "tsaurls.hxx" @@ -834,25 +833,6 @@ DeactivateRC SvxSecurityTabPage::DeactivatePage( SfxItemSet* _pSet ) return DeactivateRC::LeavePage; } -namespace -{ - bool CheckAndSave( SvtSecurityOptions::EOption _eOpt, const bool _bIsChecked, bool& _rModified ) - { - bool bModified = false; - if ( !SvtSecurityOptions::IsReadOnly( _eOpt ) ) - { - bModified = SvtSecurityOptions::IsOptionSet( _eOpt ) != _bIsChecked; - if ( bModified ) - { - SvtSecurityOptions::SetOption( _eOpt, _bIsChecked ); - _rModified = true; - } - } - - return bModified; - } -} - OUString SvxSecurityTabPage::GetAllStrings() { OUString sAllStrings; @@ -892,20 +872,8 @@ bool SvxSecurityTabPage::FillItemSet( SfxItemSet* ) { bool bModified = false; - if (m_xSecOptDlg) - { - CheckAndSave( SvtSecurityOptions::EOption::DocWarnSaveOrSend, m_xSecOptDlg->IsSaveOrSendDocsChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnSigning, m_xSecOptDlg->IsSignDocsChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnPrint, m_xSecOptDlg->IsPrintDocsChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnCreatePdf, m_xSecOptDlg->IsCreatePdfChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo, m_xSecOptDlg->IsRemovePersInfoChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnKeepRedlineInfo, m_xSecOptDlg->IsRemoveRedlineInfoChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnKeepDocUserInfo, m_xSecOptDlg->IsRemoveDocUserInfoChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnKeepNoteAuthorDateInfo, m_xSecOptDlg->IsRemoveNoteAuthorInfoChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnKeepDocVersionInfo, m_xSecOptDlg->IsRemoveDocVersionInfoChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::DocWarnRecommendPassword, m_xSecOptDlg->IsRecommPasswdChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::CtrlClickHyperlink, m_xSecOptDlg->IsCtrlHyperlinkChecked(), bModified ); - CheckAndSave( SvtSecurityOptions::EOption::BlockUntrustedRefererLinks, m_xSecOptDlg->IsBlockUntrustedRefererLinksChecked(), bModified ); + if (m_xSecOptDlg) { + bModified = m_xSecOptDlg->SetSecurityOptions(); } std::shared_ptr pBatch( diff --git a/cui/source/options/securityoptions.cxx b/cui/source/options/securityoptions.cxx index d583f62618..d7523973e3 100644 --- a/cui/source/options/securityoptions.cxx +++ b/cui/source/options/securityoptions.cxx @@ -17,8 +17,8 @@ * the License at http://www.apache.org/licenses/LICENSE-2.0 . */ +#include #include -#include "securityoptions.hxx" namespace { @@ -31,6 +31,15 @@ namespace rCheckBox.set_active(SvtSecurityOptions::IsOptionSet(eOption)); return bEnable; } + + void CheckAndSave(SvtSecurityOptions::EOption _eOpt, const bool _bIsChecked, bool& _rModified) + { + if (!SvtSecurityOptions::IsReadOnly(_eOpt) && SvtSecurityOptions::IsOptionSet(_eOpt) != _bIsChecked) + { + SvtSecurityOptions::SetOption(_eOpt, _bIsChecked); + _rModified = true; + } + } } namespace svx @@ -103,6 +112,25 @@ void SecurityOptionsDialog::init() changeKeepSecurityInfosEnabled(); } +bool SecurityOptionsDialog::SetSecurityOptions() +{ + bool bModified = false; + CheckAndSave(SvtSecurityOptions::EOption::DocWarnSaveOrSend, IsSaveOrSendDocsChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnSigning, IsSignDocsChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnPrint, IsPrintDocsChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnCreatePdf, IsCreatePdfChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnRemovePersonalInfo, IsRemovePersInfoChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepRedlineInfo, IsRemoveRedlineInfoChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepDocUserInfo, IsRemoveDocUserInfoChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepNoteAuthorDateInfo, IsRemoveNoteAuthorInfoChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnKeepDocVersionInfo, IsRemoveDocVersionInfoChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::DocWarnRecommendPassword, IsRecommPasswdChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::CtrlClickHyperlink, IsCtrlHyperlinkChecked(), bModified); + CheckAndSave(SvtSecurityOptions::EOption::BlockUntrustedRefererLinks, IsBlockUntrustedRefererLinksChecked(), bModified); + + return bModified; +} + void SecurityOptionsDialog::changeKeepSecurityInfosEnabled() { bool bEnable = m_xRemovePersInfoCB->get_active(); diff --git a/cui/source/options/securityoptions.hxx b/cui/source/options/securityoptions.hxx deleted file mode 100644 index 7884ccfbd3..0000000000 --- a/cui/source/options/securityoptions.hxx +++ /dev/null @@ -1,79 +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 . - */ -#pragma once - -#include - -namespace svx -{ - class SecurityOptionsDialog : public weld::GenericDialogController - { - private: - std::unique_ptr m_xSaveOrSendDocsCB; - std::unique_ptr m_xSaveOrSendDocsImg; - std::unique_ptr m_xSignDocsCB; - std::unique_ptr m_xSignDocsImg; - std::unique_ptr m_xPrintDocsCB; - std::unique_ptr m_xPrintDocsImg; - std::unique_ptr m_xCreatePdfCB; - std::unique_ptr m_xCreatePdfImg; - - std::unique_ptr m_xRemovePersInfoCB; - std::unique_ptr m_xRemovePersInfoImg; - std::unique_ptr m_xRecommPasswdCB; - std::unique_ptr m_xRecommPasswdImg; - std::unique_ptr m_xCtrlHyperlinkCB; - std::unique_ptr m_xCtrlHyperlinkImg; - std::unique_ptr m_xBlockUntrustedRefererLinksCB; - std::unique_ptr m_xBlockUntrustedRefererLinksImg; - - std::unique_ptr m_xRedlineinfoCB; - std::unique_ptr m_xRedlineinfoImg; - std::unique_ptr m_xDocPropertiesCB; - std::unique_ptr m_xDocPropertiesImg; - std::unique_ptr m_xNoteAuthorCB; - std::unique_ptr m_xNoteAuthorImg; - std::unique_ptr m_xDocumentVersionCB; - std::unique_ptr m_xDocumentVersionImg; - - public: - SecurityOptionsDialog(weld::Window* pParent); - - void init(); - - bool IsSaveOrSendDocsChecked() const { return m_xSaveOrSendDocsCB->get_active(); } - bool IsSignDocsChecked() const { return m_xSignDocsCB->get_active(); } - bool IsPrintDocsChecked() const { return m_xPrintDocsCB->get_active(); } - bool IsCreatePdfChecked() const { return m_xCreatePdfCB->get_active(); } - bool IsRemovePersInfoChecked() const { return m_xRemovePersInfoCB->get_active(); } - bool IsRemoveRedlineInfoChecked() const { return m_xRedlineinfoCB->get_active(); } - bool IsRemoveDocUserInfoChecked() const { return m_xDocPropertiesCB->get_active(); } - bool IsRemoveNoteAuthorInfoChecked() const { return m_xNoteAuthorCB->get_active(); } - bool IsRemoveDocVersionInfoChecked() const { return m_xDocumentVersionCB->get_active(); } - bool IsRecommPasswdChecked() const { return m_xRecommPasswdCB->get_active(); } - bool IsCtrlHyperlinkChecked() const { return m_xCtrlHyperlinkCB->get_active(); } - bool IsBlockUntrustedRefererLinksChecked() const { return m_xBlockUntrustedRefererLinksCB->get_active(); } - - DECL_LINK(ShowPersonalInfosToggle, weld::Toggleable&, void); - - void changeKeepSecurityInfosEnabled(); - }; -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ -- cgit v1.2.3