summaryrefslogtreecommitdiff
path: root/vcl/source/treelist
diff options
context:
space:
mode:
authorSzymon Kłos <szymon.klos@collabora.com>2020-12-07 08:39:54 +0100
committerSzymon Kłos <szymon.klos@collabora.com>2020-12-09 14:08:50 +0100
commit2a0a670a7bae450bd9d783c7def3d3641647404d (patch)
treead3f5db6d13399e0bd9f04498471c32b285786da /vcl/source/treelist
parente65f8ebcd743d0b97121cab222bba60b3f244944 (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.cxx34
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() );