summaryrefslogtreecommitdiff
path: root/sfx2
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-04-23 10:50:29 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-04-23 21:44:24 +0200
commitdb9f6c44cac246250e89ca4e9aa127dee912d7f5 (patch)
treec1b9c65bfe4e6f5ebf3b288b8a28ea6886f5c3b9 /sfx2
parentc5ab53e3a143b7090e0bf024dff6dd9fb50c2a67 (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.cxx16
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())