summaryrefslogtreecommitdiff
path: root/sw/source/uibase/utlui
diff options
context:
space:
mode:
authorJim Raykowski <raykowj@gmail.com>2021-09-21 23:08:16 -0800
committerJim Raykowski <raykowj@gmail.com>2021-09-25 23:16:03 +0200
commita78190da867864485b5d0a91238616bd4090b5b5 (patch)
tree135491770b47008160ccfd21dded35689393a915 /sw/source/uibase/utlui
parent7c4f9a1280e5524eee81fe65bf5d76e83e68275e (diff)
tdf#143268 Fix slow response after Navigator fills table members
when document has many tables Change-Id: Iccf34700a3f09420f3dc3519b04351c53d1d59b5 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/122416 Tested-by: Jenkins Reviewed-by: Jim Raykowski <raykowj@gmail.com>
Diffstat (limited to 'sw/source/uibase/utlui')
-rw-r--r--sw/source/uibase/utlui/content.cxx14
1 files changed, 12 insertions, 2 deletions
diff --git a/sw/source/uibase/utlui/content.cxx b/sw/source/uibase/utlui/content.cxx
index 583ccd958ce7..d7e6015fb9e9 100644
--- a/sw/source/uibase/utlui/content.cxx
+++ b/sw/source/uibase/utlui/content.cxx
@@ -97,6 +97,8 @@
#include <fldmgr.hxx>
#include <docufld.hxx>
+#include <frameformats.hxx>
+
#define CTYPE_CNT 0
#define CTYPE_CTT 1
@@ -658,9 +660,17 @@ void SwContentType::FillMemberList(bool* pbLevelOrVisibilityChanged)
OSL_ENSURE(m_nMemberCount == nCount, "MemberCount differs");
Point aNullPt;
m_nMemberCount = nCount;
- for(size_t i = 0; i < m_nMemberCount; ++i)
+ const SwFrameFormats* pFrameFormats = m_pWrtShell->GetDoc()->GetTableFrameFormats();
+ SwAutoFormatGetDocNode aGetHt(&m_pWrtShell->GetNodes());
+ for(size_t n = 0, i = 0; i < m_nMemberCount + n; ++i)
{
- const SwFrameFormat& rTableFormat = m_pWrtShell->GetTableFrameFormat(i, true);
+ const SwTableFormat& rTableFormat =
+ *static_cast<SwTableFormat*>(pFrameFormats->GetFormat(i));
+ if (rTableFormat.GetInfo(aGetHt)) // skip deleted tables
+ {
+ n++;
+ continue;
+ }
const OUString& sTableName( rTableFormat.GetName() );
SwContent* pCnt = new SwContent(this, sTableName,