summaryrefslogtreecommitdiff
path: root/vcl/source/app/salvtables.cxx
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2021-03-22 15:46:53 +0000
committerCaolán McNamara <caolanm@redhat.com>2021-03-22 21:01:53 +0100
commit92220638362755f0e776e222fa4e8b79377e75eb (patch)
tree0a2559c0696bb3c0e95f7b0458eee7f116b75a09 /vcl/source/app/salvtables.cxx
parentc6d91d57169aca8141a14232d15e54ca8650b164 (diff)
tdf#141166 widget with id "tabcontrol" might not be a TabControl
it might be a VerticalTabControl or any other type Change-Id: I9f46f7e64a9be2487d400cc4a066575c0d45c19e Reviewed-on: https://gerrit.libreoffice.org/c/core/+/112920 Tested-by: Jenkins Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'vcl/source/app/salvtables.cxx')
-rw-r--r--vcl/source/app/salvtables.cxx18
1 files changed, 15 insertions, 3 deletions
diff --git a/vcl/source/app/salvtables.cxx b/vcl/source/app/salvtables.cxx
index 9d47a3ec14a2..95de139a53bc 100644
--- a/vcl/source/app/salvtables.cxx
+++ b/vcl/source/app/salvtables.cxx
@@ -7008,9 +7008,21 @@ std::unique_ptr<weld::SizeGroup> SalInstanceBuilder::create_size_group()
OString SalInstanceBuilder::get_current_page_help_id() const
{
- TabControl* pCtrl = m_xBuilder->get<TabControl>("tabcontrol");
- TabPage* pTabPage = pCtrl ? pCtrl->GetTabPage(pCtrl->GetCurPageId()) : nullptr;
- vcl::Window* pTabChild = pTabPage ? pTabPage->GetWindow(GetWindowType::FirstChild) : nullptr;
+ vcl::Window* pCtrl = m_xBuilder->get("tabcontrol");
+ if (!pCtrl)
+ return OString();
+ VclPtr<vcl::Window> xTabPage;
+ if (pCtrl->GetType() == WindowType::TABCONTROL)
+ {
+ TabControl* pTabCtrl = static_cast<TabControl*>(pCtrl);
+ xTabPage = pTabCtrl->GetTabPage(pTabCtrl->GetCurPageId());
+ }
+ else if (pCtrl->GetType() == WindowType::VERTICALTABCONTROL)
+ {
+ VerticalTabControl* pTabCtrl = static_cast<VerticalTabControl*>(pCtrl);
+ xTabPage = pTabCtrl->GetPage(pTabCtrl->GetCurPageId());
+ }
+ vcl::Window* pTabChild = xTabPage ? xTabPage->GetWindow(GetWindowType::FirstChild) : nullptr;
pTabChild = pTabChild ? pTabChild->GetWindow(GetWindowType::FirstChild) : nullptr;
if (pTabChild)
return pTabChild->GetHelpId();