include/sfx2/tabdlg.hxx | 1 - include/vcl/tabpage.hxx | 2 ++ sfx2/source/dialog/tabdlg.cxx | 35 ++++++++++++++++++++++++++++------- vcl/source/window/tabpage.cxx | 8 ++++++++ 4 files changed, 38 insertions(+), 8 deletions(-)
New commits: commit 6fa98a08f2f4b57b660fc39542a9ceb20779d769 Author: Caolán McNamara <caol...@redhat.com> Date: Wed Apr 2 16:15:59 2014 +0100 Related: fdo#75307 use the unique auto help id to identify tabpages and dialogs that are loaded from the .ui format Change-Id: Id8abff6d89818ca7384d9691a05eacd378a5905c diff --git a/include/sfx2/tabdlg.hxx b/include/sfx2/tabdlg.hxx index 4bc1138..54baa7a 100644 --- a/include/sfx2/tabdlg.hxx +++ b/include/sfx2/tabdlg.hxx @@ -91,7 +91,6 @@ friend class SfxTabDialogController; SfxItemSet* pOutSet; TabDlg_Impl* pImpl; sal_uInt16* pRanges; - sal_uInt32 nResId; sal_uInt16 nAppPageId; bool bItemsReset; sal_Bool bFmt; // sal_True, sal_False or 2(some kind of hack) diff --git a/include/vcl/tabpage.hxx b/include/vcl/tabpage.hxx index a8ac279..88a1ead 100644 --- a/include/vcl/tabpage.hxx +++ b/include/vcl/tabpage.hxx @@ -53,6 +53,8 @@ public: virtual void ActivatePage(); virtual void DeactivatePage(); + OString GetConfigId() const; + //To-Do, consider inheriting from VclContainer virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize) SAL_OVERRIDE; virtual void SetPosPixel(const Point& rNewPos) SAL_OVERRIDE; diff --git a/sfx2/source/dialog/tabdlg.cxx b/sfx2/source/dialog/tabdlg.cxx index d12b5c4..853c806 100644 --- a/sfx2/source/dialog/tabdlg.cxx +++ b/sfx2/source/dialog/tabdlg.cxx @@ -405,7 +405,6 @@ SfxTabDialog::SfxTabDialog , pSet(pItemSet) , pOutSet(0) , pRanges(0) - , nResId(0) , nAppPageId(USHRT_MAX) , bItemsReset(false) , bFmt(bEditFmt) @@ -436,7 +435,6 @@ SfxTabDialog::SfxTabDialog , pSet(pItemSet) , pOutSet(0) , pRanges(0) - , nResId(0) , nAppPageId(USHRT_MAX) , bItemsReset(false) , bFmt(bEditFmt) @@ -464,7 +462,15 @@ SfxTabDialog::~SfxTabDialog() if ( !aPageData.isEmpty() ) { // save settings of all pages (user data) - SvtViewOptions aPageOpt( E_TABPAGE, OUString::number( pDataObject->nId ) ); + OUString sConfigId = OStringToOUString(pDataObject->pTabPage->GetConfigId(), + RTL_TEXTENCODING_UTF8); + if (sConfigId.isEmpty()) + { + SAL_WARN("sfx.config", "Tabpage needs to be converted to .ui format"); + sConfigId = OUString::number(pDataObject->nId); + } + + SvtViewOptions aPageOpt(E_TABPAGE, sConfigId); aPageOpt.SetUserItem( USERITEM_NAME, makeAny( OUString( aPageData ) ) ); } @@ -685,7 +691,7 @@ void SfxTabDialog::Start_Impl() sal_uInt16 nActPage = m_pTabCtrl->GetPageId( 0 ); // load old settings, when exists - SvtViewOptions aDlgOpt( E_TABDIALOG, OUString::number( nResId ) ); + SvtViewOptions aDlgOpt(E_TABDIALOG, OStringToOUString(GetHelpId(),RTL_TEXTENCODING_UTF8)); if ( aDlgOpt.Exists() ) { SetWindowState(OUStringToOString(aDlgOpt.GetWindowState().getStr(), RTL_TEXTENCODING_ASCII_US)); @@ -806,7 +812,15 @@ void SfxTabDialog::RemoveTabPage( sal_uInt16 nId ) if ( !aPageData.isEmpty() ) { // save settings of this page (user data) - SvtViewOptions aPageOpt( E_TABPAGE, OUString::number( pDataObject->nId ) ); + OUString sConfigId = OStringToOUString(pDataObject->pTabPage->GetConfigId(), + RTL_TEXTENCODING_UTF8); + if (sConfigId.isEmpty()) + { + SAL_WARN("sfx.config", "Tabpage needs to be converted to .ui format"); + sConfigId = OUString::number(pDataObject->nId); + } + + SvtViewOptions aPageOpt(E_TABPAGE, sConfigId); aPageOpt.SetUserItem( USERITEM_NAME, makeAny( OUString( aPageData ) ) ); } @@ -882,8 +896,9 @@ SfxTabPage* SfxTabDialog::GetTabPage( sal_uInt16 nPageId ) const void SfxTabDialog::SavePosAndId() { // save settings (screen position and current page) - SvtViewOptions aDlgOpt( E_TABDIALOG, OUString::number( nResId ) ); + SvtViewOptions aDlgOpt(E_TABDIALOG, OStringToOUString(GetHelpId(),RTL_TEXTENCODING_UTF8)); aDlgOpt.SetWindowState(OStringToOUString(GetWindowState(WINDOWSTATE_MASK_POS),RTL_TEXTENCODING_ASCII_US)); + // to-do replace with name of page when all pages are converted to .ui aDlgOpt.SetPageID( m_pTabCtrl->GetCurPageId() ); } @@ -1252,7 +1267,13 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) DBG_ASSERT( NULL == pDataObject->pTabPage, "create TabPage more than once" ); pDataObject->pTabPage = pTabPage; - SvtViewOptions aPageOpt( E_TABPAGE, OUString::number( pDataObject->nId ) ); + OUString sConfigId = OStringToOUString(pTabPage->GetConfigId(), RTL_TEXTENCODING_UTF8); + if (sConfigId.isEmpty()) + { + SAL_WARN("sfx.config", "Tabpage needs to be converted to .ui format"); + sConfigId = OUString::number(pDataObject->nId); + } + SvtViewOptions aPageOpt(E_TABPAGE, sConfigId); OUString sUserData; Any aUserItem = aPageOpt.GetUserItem( USERITEM_NAME ); OUString aTemp; diff --git a/vcl/source/window/tabpage.cxx b/vcl/source/window/tabpage.cxx index a733824..5e5526d 100644 --- a/vcl/source/window/tabpage.cxx +++ b/vcl/source/window/tabpage.cxx @@ -181,6 +181,14 @@ void TabPage::DeactivatePage() { } +OString TabPage::GetConfigId() const +{ + OString sId(GetHelpId()); + if (sId.isEmpty() && isLayoutEnabled(this)) + sId = GetWindow(WINDOW_FIRSTCHILD)->GetHelpId(); + return sId; +} + Size TabPage::GetOptimalSize() const { if (isLayoutEnabled(this))
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits