[Libreoffice-commits] core.git: Branch 'libreoffice-6-4' - sw/source
Serge Krot (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jun 10 21:53:39 UTC 2020
sw/source/core/text/porlay.cxx | 24 ++++++++++++++++++++++++
1 file changed, 24 insertions(+)
New commits:
commit 4b3f9c6a06650532df34af6388fa62d659eabd90
Author: Serge Krot <Serge.Krot at cib.de>
AuthorDate: Mon Jun 8 12:43:53 2020 +0200
Commit: Thorsten Behrens <Thorsten.Behrens at CIB.de>
CommitDate: Wed Jun 10 23:53:16 2020 +0200
tdf#101856 evaluate condition to expand / collapse bookmarks
Change-Id: I7c135eab0feeca0ede794f6c88a2b06e339d6a14
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/95795
Tested-by: Jenkins
Reviewed-by: Thorsten Behrens <Thorsten.Behrens at CIB.de>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/96003
Reviewed-by: Michael Stahl <michael.stahl at cib.de>
diff --git a/sw/source/core/text/porlay.cxx b/sw/source/core/text/porlay.cxx
index d9406a4e28c1..2bb9e87bd2c9 100644
--- a/sw/source/core/text/porlay.cxx
+++ b/sw/source/core/text/porlay.cxx
@@ -54,9 +54,11 @@
#include <doc.hxx>
#include <swscanner.hxx>
#include <txatbase.hxx>
+#include <calc.hxx>
#include <IDocumentRedlineAccess.hxx>
#include <IDocumentSettingAccess.hxx>
#include <IDocumentContentOperations.hxx>
+#include <IDocumentFieldsAccess.hxx>
#include <IMark.hxx>
using namespace ::com::sun::star;
@@ -2283,7 +2285,29 @@ void SwScriptInfo::selectHiddenTextProperty(const SwTextNode& rNode, MultiSelect
{
const sw::mark::IMark* pMark = pIndex->GetMark();
const sw::mark::IBookmark* pBookmark = dynamic_cast<const sw::mark::IBookmark*>(pMark);
+
+ bool bHide = false;
if (pBookmark && pBookmark->IsHidden())
+ {
+ // bookmark is marked as hidden
+ bHide = true;
+
+ // bookmark is marked as hidden with conditions
+ if (!pBookmark->GetHideCondition().isEmpty())
+ {
+ SwDoc& rDoc = *const_cast<SwDoc*>(rNode.GetDoc());
+ SwCalc aCalc(rDoc);
+ rDoc.getIDocumentFieldsAccess().FieldsToCalc(aCalc, rNode.GetIndex(), USHRT_MAX);
+
+ SwSbxValue aValue = aCalc.Calculate(pBookmark->GetHideCondition());
+ if(!aValue.IsVoidValue())
+ {
+ bHide = aValue.GetBool();
+ }
+ }
+ }
+
+ if (bHide)
{
// intersect bookmark range with textnode range and add the intersection to rHiddenMulti
More information about the Libreoffice-commits
mailing list