sw/source/uibase/utlui/content.cxx |   28 ++++++++--------------------
 1 file changed, 8 insertions(+), 20 deletions(-)

New commits:
commit 9a3d2258420c4c1cc322b4f1317317dcd7c0b1a1
Author:     Jim Raykowski <rayk...@gmail.com>
AuthorDate: Wed Sep 29 17:12:54 2021 -0800
Commit:     Jim Raykowski <rayk...@gmail.com>
CommitDate: Fri Oct 1 03:21:26 2021 +0200

    Writer Navigator: Make fields always show in the content tree
    
    Currently, a field that is not visible, for example, when in folded
    outline content or a hidden section, is not shown under the Fields
    category. This patch changes the behavior to always show the field.
    
    Change-Id: Iea85a2c69df68bb0d37e8d94662d3ca9c81b0e41
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122842
    Tested-by: Jenkins
    Reviewed-by: Jim Raykowski <rayk...@gmail.com>

diff --git a/sw/source/uibase/utlui/content.cxx 
b/sw/source/uibase/utlui/content.cxx
index 954ac752c22f..6e944bb11669 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -403,17 +403,11 @@ void SwContentType::Init(bool* pbInvalidateWindow)
                 pFieldType->GatherFields(vFields);
                 for (SwFormatField* pFormatField: vFields)
                 {
-                    if (SwTextField* pTextField = pFormatField->GetTextField())
-                    {
-                        const SwTextNode& rTextNode = 
pTextField->GetTextNode();
-                        const SwContentFrame* pCFrame =
-                                
rTextNode.getLayoutFrame(rTextNode.GetDoc().getIDocumentLayoutAccess().GetCurrentLayout());
-                        if (pCFrame)
-                            m_nMemberCount++;
-                    }
+                    if (pFormatField->GetTextField())
+                        m_nMemberCount++;
                 }
             }
-    }
+        }
         break;
         case ContentTypeId::BOOKMARK:
         {
@@ -786,17 +780,9 @@ void SwContentType::FillMemberList(bool* 
pbLevelOrVisibilityChanged)
                     if (SwTextField* pTextField = pFormatField->GetTextField())
                     {
                         const SwTextNode& rTextNode = 
pTextField->GetTextNode();
-                        const SwContentFrame* pCFrame =
-                                rTextNode.getLayoutFrame(rTextNode.GetDoc().
-                                                         
getIDocumentLayoutAccess().
-                                                         GetCurrentLayout());
-                        if (pCFrame)
-                        {
-                            std::unique_ptr<SetGetExpField>
-                                    pNew(new 
SetGetExpField(SwNodeIndex(rTextNode),
-                                                            pTextField));
-                            aSrtLst.insert(std::move(pNew));
-                        }
+                        std::unique_ptr<SetGetExpField>
+                                pNew(new 
SetGetExpField(SwNodeIndex(rTextNode), pTextField));
+                        aSrtLst.insert(std::move(pNew));
                     }
                 }
             }
@@ -852,6 +838,8 @@ void SwContentType::FillMemberList(bool* 
pbLevelOrVisibilityChanged)
                 }
                 std::unique_ptr<SwTextFieldContent> pCnt(new 
SwTextFieldContent(this, sText,
                                                                                
 &rFormatField, i));
+                if 
(!pTextField->GetTextNode().getLayoutFrame(m_pWrtShell->GetLayout()))
+                    pCnt->SetInvisible();
                 m_pMember->insert(std::move(pCnt));
             }
             m_nMemberCount = m_pMember->size();

Reply via email to