diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-04-23 10:50:29 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-04-23 21:44:24 +0200 |
commit | db9f6c44cac246250e89ca4e9aa127dee912d7f5 (patch) | |
tree | c1b9c65bfe4e6f5ebf3b288b8a28ea6886f5c3b9 /sfx2 | |
parent | c5ab53e3a143b7090e0bf024dff6dd9fb50c2a67 (diff) |
set SfxTabPage parent dialog explicitly
Change-Id: If7813f9f5e35694312b055cc92868638bc3773d5
Reviewed-on: https://gerrit.libreoffice.org/53326
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
Diffstat (limited to 'sfx2')
-rw-r--r-- | sfx2/source/dialog/tabdlg.cxx | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx index ff5c508efdf9..f31e12784316 100644 --- a/sfx2/source/dialog/tabdlg.cxx +++ b/sfx2/source/dialog/tabdlg.cxx @@ -52,6 +52,7 @@ struct TabPageImpl { bool mbStandard; sfx::ItemConnectionArray maItemConn; + VclPtr<SfxTabDialog> mxDialog; css::uno::Reference< css::frame::XFrame > mxFrame; TabPageImpl() : mbStandard( false ) {} @@ -307,13 +308,20 @@ void SfxTabPage::AddItemConnection( sfx::ItemConnectionBase* pConnection ) pImpl->maItemConn.AddConnection( pConnection ); } +void SfxTabPage::SetTabDialog(SfxTabDialog* pDialog) +{ + pImpl->mxDialog = pDialog; +} + SfxTabDialog* SfxTabPage::GetTabDialog() const { - return dynamic_cast<SfxTabDialog*>(GetParentDialog()); + return pImpl->mxDialog; } OString SfxTabPage::GetConfigId() const { + if (m_xContainer) + return m_xContainer->get_help_id(); OString sId(GetHelpId()); if (sId.isEmpty() && isLayoutEnabled(this)) sId = GetWindow(GetWindowType::FirstChild)->GetHelpId(); @@ -1127,12 +1135,12 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl, void ) if ( !pTabPage ) { if ( m_pSet ) - pTabPage = (pDataObject->fnCreatePage)( static_cast<vcl::Window*>(pTabCtrl), m_pSet ); + pTabPage = (pDataObject->fnCreatePage)(static_cast<vcl::Window*>(pTabCtrl), m_pSet); else - pTabPage = (pDataObject->fnCreatePage) - ( pTabCtrl, CreateInputItemSet( nId ) ); + pTabPage = (pDataObject->fnCreatePage)(pTabCtrl, CreateInputItemSet(nId)); DBG_ASSERT( nullptr == pDataObject->pTabPage, "create TabPage more than once" ); pDataObject->pTabPage = pTabPage; + pTabPage->SetTabDialog(this); OUString sConfigId = OStringToOUString(pTabPage->GetConfigId(), RTL_TEXTENCODING_UTF8); if (sConfigId.isEmpty()) |