diff options
author | Michael Stahl <michael.stahl@allotropia.de> | 2022-01-10 12:12:52 +0100 |
---|---|---|
committer | Thorsten Behrens <thorsten.behrens@allotropia.de> | 2022-01-12 02:38:02 +0100 |
commit | 20c819bf3bfd9d203f860f1fd078903d0b3945a7 (patch) | |
tree | 895f26e799636878421a4ea1c93b49d3228065a7 /sw/source | |
parent | e1449eaf3b2b0bf4ebed44bbcf54e5e01d356465 (diff) |
sw: stop inheriting SwSectionData::m_bProtectFlag from parent section
This is actually no longer inherited by accident since commit
2e32f4ed5af16a68c97a50806a42ffa2d10f1d7a because it replaced the
SwSectionFormat::Modify()->ModifyBroadcast()->CallSwClientNotify()->CallSwClientNotify()
with a call to GetNotifier()->Broadcast(), and apparently SwSection
is a SwClient of SwSectionFormat but not a SvtListener.
But some consider the new behaviour useful, as previously there was no
way to un-protect a section inside an outer protected section at all,
while in this way every section can have its own independent protection
flag. (The m_bEditInReadonlyFlag is not used for this purpose, as it is
only for the case when the document was loaded ReadOnly.)
So make it more explicit by removing the SwSection inheritance code.
A similar change was made for hidden flag in commit
91b0024965908c692bea40f47c58ea9d1bf8a596
Change-Id: I29d3c84309a84267573950775f2a1c6353623724
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128221
Tested-by: Jenkins
Reviewed-by: Michael Stahl <michael.stahl@allotropia.de>
(cherry picked from commit 840cc7883849a10eea11a02a743848238723a3de)
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/128232
Reviewed-by: Thorsten Behrens <thorsten.behrens@allotropia.de>
Diffstat (limited to 'sw/source')
-rw-r--r-- | sw/source/core/docnode/section.cxx | 23 |
1 files changed, 3 insertions, 20 deletions
diff --git a/sw/source/core/docnode/section.cxx b/sw/source/core/docnode/section.cxx index ec77917bd30d..2e1a4cab6270 100644 --- a/sw/source/core/docnode/section.cxx +++ b/sw/source/core/docnode/section.cxx @@ -201,15 +201,11 @@ SwSection::SwSection( SwSection *const pParentSect = GetParent(); if( pParentSect ) { - m_Data.SetProtectFlag( pParentSect->IsProtectFlag() ); // edit in readonly sections m_Data.SetEditInReadonlyFlag( pParentSect->IsEditInReadonlyFlag() ); } - if (!m_Data.IsProtectFlag()) - { - m_Data.SetProtectFlag( rFormat.GetProtect().IsContentProtected() ); - } + m_Data.SetProtectFlag( rFormat.GetProtect().IsContentProtected() ); if (!m_Data.IsEditInReadonlyFlag()) // edit in readonly sections { @@ -457,21 +453,8 @@ void SwSection::SwClientNotify(const SwModify&, const SfxHint& rHint) { bool bNewFlag = static_cast<const SvxProtectItem*>(pNew)->IsContentProtected(); - if( !bNewFlag ) - { - // Switching off: See if there is protection transferred - // by the Parents - const SwSection* pSect = this; - do { - if( pSect->IsProtect() ) - { - bNewFlag = true; - break; - } - pSect = pSect->GetParent(); - } while (pSect); - } - + // this used to inherit the flag from the parent, but then there is + // no way to turn it off in an inner section m_Data.SetProtectFlag( bNewFlag ); } return; |