vcl/inc/verticaltabctrl.hxx | 4 +++ vcl/source/control/ivctrl.cxx | 44 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 48 insertions(+)
New commits: commit 407297d9c592479d9fc90033876cad96206f9259 Author: Szymon Kłos <szymon.k...@collabora.com> AuthorDate: Thu Aug 17 10:21:57 2023 +0200 Commit: Szymon Kłos <szymon.k...@collabora.com> CommitDate: Mon Aug 28 10:19:03 2023 +0200 jsdialog: dump vertical tab control Change-Id: I673199dfd7e95bfdb748791db094e7a1c3e74dba Reviewed-on: https://gerrit.libreoffice.org/c/core/+/155759 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com> Reviewed-by: Attila Szűcs <attila.sz...@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/156158 Tested-by: Jenkins Reviewed-by: Szymon Kłos <szymon.k...@collabora.com> diff --git a/vcl/inc/verticaltabctrl.hxx b/vcl/inc/verticaltabctrl.hxx index df05cfdf72b5..c5942799b381 100644 --- a/vcl/inc/verticaltabctrl.hxx +++ b/vcl/inc/verticaltabctrl.hxx @@ -22,6 +22,8 @@ #include <memory> #include <string_view> +#include <tools/json_writer.hxx> + #include <vcl/toolkit/ivctrl.hxx> #include <vcl/layout.hxx> @@ -78,6 +80,8 @@ public: vcl::Window* GetPageParent() { return m_xBox.get(); } + virtual void DumpAsPropertyTree(tools::JsonWriter& rJsonWriter) override; + virtual FactoryFunction GetUITestFactory() const override; }; diff --git a/vcl/source/control/ivctrl.cxx b/vcl/source/control/ivctrl.cxx index 8a7e111f1581..a2f502ff81dc 100644 --- a/vcl/source/control/ivctrl.cxx +++ b/vcl/source/control/ivctrl.cxx @@ -627,6 +627,50 @@ void VerticalTabControl::SetPageText(std::u16string_view rPageId, const OUString pData->pEntry->SetText(rText); } +void VerticalTabControl::DumpAsPropertyTree(tools::JsonWriter& rJsonWriter) +{ + rJsonWriter.put("id", get_id()); + rJsonWriter.put("type", "tabcontrol"); + rJsonWriter.put("vertical", true); + rJsonWriter.put("selected", GetCurPageId()); + + { + auto childrenNode = rJsonWriter.startArray("children"); + for (int i = 0; i < GetPageCount(); i++) + { + VclPtr<vcl::Window> pChild = GetPage(GetPageId(i)); + + if (pChild) + { + if (!pChild->GetChildCount()) + continue; + + auto aChildNode = rJsonWriter.startStruct(); + pChild->DumpAsPropertyTree(rJsonWriter); + } + } + } + { + auto tabsNode = rJsonWriter.startArray("tabs"); + for(int i = 0; i < GetPageCount(); i++) + { + VclPtr<vcl::Window> pChild = GetPage(GetPageId(i)); + + if (pChild) + { + if (!pChild->GetChildCount()) + continue; + + auto aTabNode = rJsonWriter.startStruct(); + auto sId = GetPageId(i); + rJsonWriter.put("text", GetPageText(sId)); + rJsonWriter.put("id", sId); + rJsonWriter.put("name", GetPageText(sId)); + } + } + } +} + FactoryFunction VerticalTabControl::GetUITestFactory() const { return VerticalTabControlUIObject::create;