summaryrefslogtreecommitdiff
path: root/sw/source/uibase/dbui
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-05-21 16:46:23 +0100
committerCaolán McNamara <caolanm@redhat.com>2021-05-21 20:53:24 +0200
commit89cc421a6b246df36415fc3fbbec00435ffc5a85 (patch)
tree364bc093264a23461ca66e73f3188c5ecfe71dd9 /sw/source/uibase/dbui
parent318c48205cf598ee6c2312e5b4d0ae7fc1ee6c36 (diff)
tdf#142294 drop placeholder on-demand node on directly populating node
Initially there's a <placeholder> entry to indicate the load-on-demand state. It needs to be there for the expander indicator to be drawn/shown when there are no "real" entries yet. Typically the user clicks on the expander, the expansion remove the <placeholder> entry and calls the provided expander-callback which has the change to populate the node. Here RequestingChildrenHdl is the expander-callback (set via connect_expanding) and populates the node like it should. But then there are two places where it is called directly outside the expander-callback so it merrily appends entries into the node, but because it's called outside the expander-callback the <placeholder> entry was never removed which is then a problem because of the resulting inconsistency. Change-Id: Ie7d034e3f41832591438127c82eba85deb610952 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/115949 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sw/source/uibase/dbui')
-rw-r--r--sw/source/uibase/dbui/dbtree.cxx2
1 files changed, 2 insertions, 0 deletions
diff --git a/sw/source/uibase/dbui/dbtree.cxx b/sw/source/uibase/dbui/dbtree.cxx
index 469a69968d74..8b3692f8da31 100644
--- a/sw/source/uibase/dbui/dbtree.cxx
+++ b/sw/source/uibase/dbui/dbtree.cxx
@@ -342,6 +342,7 @@ void SwDBTreeList::Select(std::u16string_view rDBName, std::u16string_view rTabl
}
if (!m_xTreeView->iter_has_child(*xParent))
{
+ m_xTreeView->set_children_on_demand(*xParent, false); // tdf#142294 drop placeholder on-demand node
RequestingChildrenHdl(*xParent);
// If successful, it will be expanded in a call to scroll_to_row for its children
}
@@ -363,6 +364,7 @@ void SwDBTreeList::Select(std::u16string_view rDBName, std::u16string_view rTabl
{
if (!m_xTreeView->iter_has_child(*xParent))
{
+ m_xTreeView->set_children_on_demand(*xParent, false); // tdf#142294 drop placeholder on-demand node
RequestingChildrenHdl(*xParent);
m_xTreeView->expand_row(*xParent);
}