From c4767868f1ee024efdd672cb21de9e3258c56694 Mon Sep 17 00:00:00 2001 From: Caolán McNamara Date: Fri, 21 May 2021 16:46:23 +0100 Subject: tdf#142294 drop placeholder on-demand node on directly populating node Initially there's a 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 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 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/+/115952 Tested-by: Jenkins Reviewed-by: Adolfo Jayme Barrientos --- sw/source/uibase/dbui/dbtree.cxx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/sw/source/uibase/dbui/dbtree.cxx b/sw/source/uibase/dbui/dbtree.cxx index 96088dd2611c..75e654388832 100644 --- a/sw/source/uibase/dbui/dbtree.cxx +++ b/sw/source/uibase/dbui/dbtree.cxx @@ -341,6 +341,7 @@ void SwDBTreeList::Select(const OUString& rDBName, const OUString& rTableName, c } 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 } @@ -362,6 +363,7 @@ void SwDBTreeList::Select(const OUString& rDBName, const OUString& rTableName, c { 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); } -- cgit