Kaydet (Commit) 8634bafd authored tarafından Caolán McNamara's avatar Caolán McNamara

allow collapsing rows

Change-Id: I6b137e4fbb860a1d40acc961dae413bcdb27575a
Reviewed-on: https://gerrit.libreoffice.org/63941
Tested-by: Jenkins
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 4be36ad1
...@@ -1574,7 +1574,10 @@ IMPL_LINK_NOARG(SbTreeListBox, OpenCurrentHdl, weld::TreeView&, void) ...@@ -1574,7 +1574,10 @@ IMPL_LINK_NOARG(SbTreeListBox, OpenCurrentHdl, weld::TreeView&, void)
break; break;
default: default:
m_xControl->expand_row(*m_xIter); if (!m_xControl->get_row_expanded(*m_xIter))
m_xControl->expand_row(*m_xIter);
else
m_xControl->collapse_row(*m_xIter);
break; break;
} }
} }
......
...@@ -1279,7 +1279,10 @@ IMPL_LINK_NOARG(CuiConfigGroupListBox, OpenCurrentHdl, weld::TreeView&, void) ...@@ -1279,7 +1279,10 @@ IMPL_LINK_NOARG(CuiConfigGroupListBox, OpenCurrentHdl, weld::TreeView&, void)
bool bValidIter = m_xTreeView->get_cursor(xIter.get()); bool bValidIter = m_xTreeView->get_cursor(xIter.get());
if (!bValidIter) if (!bValidIter)
return; return;
m_xTreeView->expand_row(*xIter); if (!m_xTreeView->get_row_expanded(*xIter))
m_xTreeView->expand_row(*xIter);
else
m_xTreeView->collapse_row(*xIter);
} }
CuiConfigGroupListBox::~CuiConfigGroupListBox() CuiConfigGroupListBox::~CuiConfigGroupListBox()
......
...@@ -488,6 +488,7 @@ public: ...@@ -488,6 +488,7 @@ public:
virtual void unselect(const TreeIter& rIter) = 0; virtual void unselect(const TreeIter& rIter) = 0;
virtual bool get_row_expanded(const TreeIter& rIter) const = 0; virtual bool get_row_expanded(const TreeIter& rIter) const = 0;
virtual void expand_row(TreeIter& rIter) = 0; virtual void expand_row(TreeIter& rIter) = 0;
virtual void collapse_row(TreeIter& rIter) = 0;
virtual OUString get_text(const TreeIter& rIter) const = 0; virtual OUString get_text(const TreeIter& rIter) const = 0;
virtual OUString get_id(const TreeIter& rIter) const = 0; virtual OUString get_id(const TreeIter& rIter) const = 0;
virtual void scroll_to_row(const TreeIter& rIter) = 0; virtual void scroll_to_row(const TreeIter& rIter) = 0;
......
...@@ -2153,6 +2153,13 @@ public: ...@@ -2153,6 +2153,13 @@ public:
m_xTreeView->Expand(rVclIter.iter); m_xTreeView->Expand(rVclIter.iter);
} }
virtual void collapse_row(weld::TreeIter& rIter) override
{
SalInstanceTreeIter& rVclIter = static_cast<SalInstanceTreeIter&>(rIter);
if (m_xTreeView->IsExpanded(rVclIter.iter))
m_xTreeView->Collapse(rVclIter.iter);
}
virtual OUString get_text(const weld::TreeIter& rIter) const override virtual OUString get_text(const weld::TreeIter& rIter) const override
{ {
const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter); const SalInstanceTreeIter& rVclIter = static_cast<const SalInstanceTreeIter&>(rIter);
......
...@@ -4641,6 +4641,16 @@ public: ...@@ -4641,6 +4641,16 @@ public:
gtk_tree_path_free(path); gtk_tree_path_free(path);
} }
virtual void collapse_row(weld::TreeIter& rIter) override
{
GtkInstanceTreeIter& rGtkIter = static_cast<GtkInstanceTreeIter&>(rIter);
GtkTreeModel *pModel = GTK_TREE_MODEL(m_pTreeStore);
GtkTreePath* path = gtk_tree_model_get_path(pModel, &rGtkIter.iter);
if (gtk_tree_view_row_expanded(m_pTreeView, path))
gtk_tree_view_collapse_row(m_pTreeView, path);
gtk_tree_path_free(path);
}
virtual OUString get_text(const weld::TreeIter& rIter) const override virtual OUString get_text(const weld::TreeIter& rIter) const override
{ {
const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter); const GtkInstanceTreeIter& rGtkIter = static_cast<const GtkInstanceTreeIter&>(rIter);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment