sw/inc/fldbas.hxx | 1 + sw/inc/fmtfld.hxx | 4 ++++ sw/source/core/fields/fldbas.cxx | 7 +++++++ sw/source/core/txtnode/atrfld.cxx | 4 ++++ sw/source/uibase/app/docsh.cxx | 17 ++--------------- 5 files changed, 18 insertions(+), 15 deletions(-)
New commits: commit 79d0f67f01f75bf80e80a814ff3397fcf7dd1599 Author: Bjoern Michaelsen <bjoern.michael...@libreoffice.org> AuthorDate: Mon Feb 10 07:51:17 2020 +0100 Commit: Björn Michaelsen <bjoern.michael...@libreoffice.org> CommitDate: Sun Feb 16 14:10:56 2020 +0100 no more SwIterator in HasHiddenInformationNotes Change-Id: Ic2a4340972ad29305dadc56a33081a211cc0205b Reviewed-on: https://gerrit.libreoffice.org/c/core/+/88758 Reviewed-by: Björn Michaelsen <bjoern.michael...@libreoffice.org> Tested-by: Björn Michaelsen <bjoern.michael...@libreoffice.org> diff --git a/sw/inc/fldbas.hxx b/sw/inc/fldbas.hxx index 0b7367a24509..93012dc5458b 100644 --- a/sw/inc/fldbas.hxx +++ b/sw/inc/fldbas.hxx @@ -273,6 +273,7 @@ public: SwFormatField* FindFormatForField(const SwField*) const; SwFormatField* FindFormatForPostItId(sal_uInt32 nPostItId) const; void CollectPostIts(std::vector<SwFormatField*>& rvFormatFields, IDocumentRedlineAccess const& rIDRA, bool HideRedlines); + bool HasHiddenInformationNotes(); }; inline void SwFieldType::UpdateFields() const diff --git a/sw/inc/fmtfld.hxx b/sw/inc/fmtfld.hxx index 812bc7403209..b2e6a6bf1508 100644 --- a/sw/inc/fmtfld.hxx +++ b/sw/inc/fmtfld.hxx @@ -52,6 +52,10 @@ namespace sw { const bool m_bHideRedlines; CollectPostItsHint(std::vector<SwFormatField*>& rvFormatFields, IDocumentRedlineAccess const& rIDRA, bool bHideRedlines) : m_rvFormatFields(rvFormatFields), m_rIDRA(rIDRA), m_bHideRedlines(bHideRedlines) {}; }; + struct HasHiddenInformationNotesHint final : SfxHint { + bool& m_rbHasHiddenInformationNotes; + HasHiddenInformationNotesHint(bool& rbHasHiddenInformationNotes) : m_rbHasHiddenInformationNotes(rbHasHiddenInformationNotes) {}; + }; } diff --git a/sw/source/core/fields/fldbas.cxx b/sw/source/core/fields/fldbas.cxx index b2345906496d..b17d07fd4171 100644 --- a/sw/source/core/fields/fldbas.cxx +++ b/sw/source/core/fields/fldbas.cxx @@ -173,6 +173,13 @@ void SwFieldType::CollectPostIts(std::vector<SwFormatField*>& rvFormatFields, ID CallSwClientNotify(sw::CollectPostItsHint(rvFormatFields, rIDRA, bHideRedlines)); } +bool SwFieldType::HasHiddenInformationNotes() +{ + bool bHasHiddenInformationNotes = false; + CallSwClientNotify(sw::HasHiddenInformationNotesHint(bHasHiddenInformationNotes)); + return bHasHiddenInformationNotes; +} + void SwFieldTypes::dumpAsXml(xmlTextWriterPtr pWriter) const { xmlTextWriterStartElement(pWriter, BAD_CAST("SwFieldTypes")); diff --git a/sw/source/core/txtnode/atrfld.cxx b/sw/source/core/txtnode/atrfld.cxx index 6042ad99b931..67ec2b0992f2 100644 --- a/sw/source/core/txtnode/atrfld.cxx +++ b/sw/source/core/txtnode/atrfld.cxx @@ -258,6 +258,10 @@ void SwFormatField::SwClientNotify( const SwModify& rModify, const SfxHint& rHin { if(GetTextField() && IsFieldInDoc() && (!pCollectPostItsHint->m_bHideRedlines || !sw::IsFieldDeletedInModel(pCollectPostItsHint->m_rIDRA, *GetTextField()))) pCollectPostItsHint->m_rvFormatFields.push_back(this); + } else if (const auto pHasHiddenInfoHint = dynamic_cast<const sw::HasHiddenInformationNotesHint*>( &rHint )) + { + if(!pHasHiddenInfoHint->m_rbHasHiddenInformationNotes && GetTextField() && IsFieldInDoc()) + pHasHiddenInfoHint->m_rbHasHiddenInformationNotes = true; } } diff --git a/sw/source/uibase/app/docsh.cxx b/sw/source/uibase/app/docsh.cxx index 758419a2b899..a8e80a688e58 100644 --- a/sw/source/uibase/app/docsh.cxx +++ b/sw/source/uibase/app/docsh.cxx @@ -953,21 +953,8 @@ HiddenInformation SwDocShell::GetHiddenInformationState( HiddenInformation nStat if ( nStates & HiddenInformation::NOTES ) { OSL_ENSURE( GetWrtShell(), "No SwWrtShell, no information" ); - if ( GetWrtShell() ) - { - SwFieldType* pType = GetWrtShell()->GetFieldType(SwFieldIds::Postit, OUString()); - SwIterator<SwFormatField,SwFieldType> aIter( *pType ); - SwFormatField* pFirst = aIter.First(); - while( pFirst ) - { - if( pFirst->GetTextField() && pFirst->IsFieldInDoc() ) - { - nState |= HiddenInformation::NOTES; - break; - } - pFirst = aIter.Next(); - } - } + if(GetWrtShell() && GetWrtShell()->GetFieldType(SwFieldIds::Postit, OUString())->HasHiddenInformationNotes()) + nState |= HiddenInformation::NOTES; } return nState; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits