[Libreoffice-commits] core.git: sw/source
Jim Raykowski (via logerrit)
logerrit at kemper.freedesktop.org
Fri Sep 24 04:59:06 UTC 2021
sw/source/uibase/wrtsh/wrtsh1.cxx | 34 ++++++++++++++++++++++++++--------
1 file changed, 26 insertions(+), 8 deletions(-)
New commits:
commit 2be1605cdab5e3662ea0180fb607f3968cc8716c
Author: Jim Raykowski <raykowj at gmail.com>
AuthorDate: Thu Sep 23 18:42:10 2021 -0800
Commit: Jim Raykowski <raykowj at gmail.com>
CommitDate: Fri Sep 24 06:58:32 2021 +0200
Fix outline folding when table or section node is the next node
after an outline node
Change-Id: I117b3f6253d5b64b3fc1b28f4b8a3e595c44abef
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122547
Tested-by: Jenkins
Reviewed-by: Jim Raykowski <raykowj at gmail.com>
diff --git a/sw/source/uibase/wrtsh/wrtsh1.cxx b/sw/source/uibase/wrtsh/wrtsh1.cxx
index d0ca5fa4b4a8..3d9e09e5d065 100644
--- a/sw/source/uibase/wrtsh/wrtsh1.cxx
+++ b/sw/source/uibase/wrtsh/wrtsh1.cxx
@@ -2032,6 +2032,7 @@ void SwWrtShell::InsertPostIt(SwFieldMgr& rFieldMgr, const SfxRequest& rReq)
pFormat->Broadcast( SwFormatFieldHint( nullptr, SwFormatFieldHintWhich::FOCUS, &GetView() ) );
}
}
+
bool SwWrtShell::IsOutlineContentVisible(const size_t nPos)
{
const SwOutlineNodes& rOutlineNodes = GetDoc()->GetNodes().GetOutLineNds();
@@ -2047,20 +2048,37 @@ bool SwWrtShell::IsOutlineContentVisible(const size_t nPos)
if (&aIdx.GetNode() == &aIdx.GetNodes().GetEndOfContent()) // end of regular content
return false;
- if (aIdx.GetNode().IsTextNode())
+ if (aIdx.GetNode().IsTextNode() || aIdx.GetNode().IsTableNode() ||
+ aIdx.GetNode().IsSectionNode())
{
- // sublevels treated as outline content
- // If next node (aIdx) doesn't have a layout frame
- // then this outline node does not have visible outline content.
- // sublevels NOT treated as outline content
- // If the next node (aIdx) is the next outline node
- // then return the outline content visible attribute value.
+ // * sublevels treated as outline content
+ // If next node (aIdx) doesn't have a layout frame
+ // then this outline node does not have visible outline content.
+ // * sublevels NOT treated as outline content
+ // If the next node (aIdx) is the next outline node
+ // then return the outline content visible attribute value.
if (!GetViewOptions()->IsTreatSubOutlineLevelsAsContent() &&
nPos + 1 < rOutlineNodes.size() &&
rOutlineNodes[nPos + 1] == &aIdx.GetNode())
return GetAttrOutlineContentVisible(nPos);
- return aIdx.GetNode().GetTextNode()->getLayoutFrame(nullptr);
+ if (aIdx.GetNode().IsTextNode())
+ return aIdx.GetNode().GetTextNode()->getLayoutFrame(nullptr);
+ if (aIdx.GetNode().IsTableNode())
+ {
+ SwTable& rTable = aIdx.GetNode().GetTableNode()->GetTable();
+ return rTable.HasLayout();
+ }
+ if (aIdx.GetNode().IsSectionNode())
+ {
+ const SwSectionFormat* pFormat =
+ aIdx.GetNode().GetSectionNode()->GetSection().GetFormat();
+ if (!pFormat)
+ return false;
+ SwPtrMsgPoolItem aAskItem(RES_CONTENT_VISIBLE, nullptr);
+ pFormat->GetInfo(aAskItem);
+ return aAskItem.pObject;
+ }
}
return true;
More information about the Libreoffice-commits
mailing list