summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMike Kaganski <mike.kaganski@collabora.com>2021-03-14 14:33:34 +0300
committerMiklos Vajna <vmiklos@collabora.com>2021-03-16 10:49:50 +0100
commit0460f3ee99fc09a336ade6aa88b3d9296e553e39 (patch)
treeb9600f0335edaa64b21037830b634764a13262a0
parent65941fd266d555c513f37e3ddec616cf769ffab3 (diff)
tdf#141012: do not try to expand the node if RequestingChildrenHdl failed
Just select the database node itself, so that it's still obvious which database is associated with this document. After selecting this node when initializing the tab, another call to SwDBTreeList::Select will be made, so make sure to handle empty table and column names. Change-Id: Ie1d1bd445e18d5900910c780a24102b4dde5c787 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112467 Tested-by: Jenkins Reviewed-by: Mike Kaganski <mike.kaganski@collabora.com> (cherry picked from commit 351edb44eb0548f7e56464de42c1758a1f5e4ab4) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112423 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com>
-rw-r--r--sw/source/uibase/dbui/dbtree.cxx13
1 files changed, 12 insertions, 1 deletions
diff --git a/sw/source/uibase/dbui/dbtree.cxx b/sw/source/uibase/dbui/dbtree.cxx
index eea90633e048..f2aafb77965d 100644
--- a/sw/source/uibase/dbui/dbtree.cxx
+++ b/sw/source/uibase/dbui/dbtree.cxx
@@ -333,14 +333,25 @@ void SwDBTreeList::Select(const OUString& rDBName, const OUString& rTableName, c
{
if (rDBName == m_xTreeView->get_text(*xParent))
{
+ if (rTableName.isEmpty() && rColumnName.isEmpty())
+ {
+ // Just select the database node, do not expand
+ m_xTreeView->scroll_to_row(*xParent);
+ m_xTreeView->select(*xParent);
+ return;
+ }
if (!m_xTreeView->iter_has_child(*xParent))
{
RequestingChildrenHdl(*xParent);
- m_xTreeView->expand_row(*xParent);
+ // If successful, it will be expanded in a call to scroll_to_row for its children
}
std::unique_ptr<weld::TreeIter> xChild(m_xTreeView->make_iterator(xParent.get()));
if (!m_xTreeView->iter_children(*xChild))
+ {
+ m_xTreeView->scroll_to_row(*xParent);
+ m_xTreeView->select(*xParent);
continue;
+ }
do
{
if (rTableName == m_xTreeView->get_text(*xChild))