diff options
author | Szymon Kłos <szymon.klos@collabora.com> | 2020-12-07 08:39:54 +0100 |
---|---|---|
committer | Szymon Kłos <szymon.klos@collabora.com> | 2020-12-09 14:08:50 +0100 |
commit | 2a0a670a7bae450bd9d783c7def3d3641647404d (patch) | |
tree | ad3f5db6d13399e0bd9f04498471c32b285786da /vcl/source/treelist | |
parent | e65f8ebcd743d0b97121cab222bba60b3f244944 (diff) |
jsdialog: dump all columns in treeview
Change-Id: Ia3fbf1c87b49e367c2ff077eee7734540e96b50b
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107333
Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com>
Reviewed-by: Szymon Kłos <szymon.klos@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/107463
Tested-by: Jenkins
Diffstat (limited to 'vcl/source/treelist')
-rw-r--r-- | vcl/source/treelist/svtabbx.cxx | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/vcl/source/treelist/svtabbx.cxx b/vcl/source/treelist/svtabbx.cxx index fdae20554120..816acb66a46c 100644 --- a/vcl/source/treelist/svtabbx.cxx +++ b/vcl/source/treelist/svtabbx.cxx @@ -49,10 +49,30 @@ static void lcl_DumpEntryAndSiblings(tools::JsonWriter& rJsonWriter, { auto aNode = rJsonWriter.startStruct(); + // simple listbox value const SvLBoxItem* pIt = pEntry->GetFirstItem(SvLBoxItemType::String); if (pIt) rJsonWriter.put("text", static_cast<const SvLBoxString*>(pIt)->GetText()); + // column based data + { + auto aColumns = rJsonWriter.startArray("columns"); + + for (size_t i = 0; i < pEntry->ItemCount(); i++) + { + SvLBoxItem& rItem = pEntry->GetItem(i); + if (rItem.GetType() == SvLBoxItemType::String) + { + const SvLBoxString* pStringItem = dynamic_cast<const SvLBoxString*>(&rItem); + if (pStringItem) + { + auto aColumn = rJsonWriter.startStruct(); + rJsonWriter.put("text", pStringItem->GetText()); + } + } + } + } + if (bCheckButtons) { SvButtonState eCheckState = pTabListBox->GetCheckButtonState(pEntry); @@ -547,6 +567,20 @@ sal_uLong SvHeaderTabListBox::Insert( SvTreeListEntry* pEntry, sal_uLong nRootPo return nPos; } +void SvHeaderTabListBox::DumpAsPropertyTree(tools::JsonWriter& rJsonWriter) +{ + SvTabListBox::DumpAsPropertyTree(rJsonWriter); + + auto aHeaders = rJsonWriter.startArray("headers"); + + HeaderBar* pHeaderBar = GetHeaderBar(); + for(sal_uInt16 i = 0; i < pHeaderBar->GetItemCount(); i++) + { + auto aNode = rJsonWriter.startStruct(); + rJsonWriter.put("text", pHeaderBar->GetItemText(pHeaderBar->GetItemId(i))); + } +} + IMPL_LINK_NOARG(SvHeaderTabListBox, ScrollHdl_Impl, SvTreeListBox*, void) { m_pImpl->m_pHeaderBar->SetOffset( -GetXOffset() ); |