Kaydet (Commit) 6fa98a08 authored tarafından Caolán McNamara's avatar Caolán McNamara

Related: fdo#75307 use the unique auto help id to identify tabpages

and dialogs that are loaded from the .ui format

Change-Id: Id8abff6d89818ca7384d9691a05eacd378a5905c
üst 31e4419a
...@@ -91,7 +91,6 @@ friend class SfxTabDialogController; ...@@ -91,7 +91,6 @@ friend class SfxTabDialogController;
SfxItemSet* pOutSet; SfxItemSet* pOutSet;
TabDlg_Impl* pImpl; TabDlg_Impl* pImpl;
sal_uInt16* pRanges; sal_uInt16* pRanges;
sal_uInt32 nResId;
sal_uInt16 nAppPageId; sal_uInt16 nAppPageId;
bool bItemsReset; bool bItemsReset;
sal_Bool bFmt; // sal_True, sal_False or 2(some kind of hack) sal_Bool bFmt; // sal_True, sal_False or 2(some kind of hack)
......
...@@ -53,6 +53,8 @@ public: ...@@ -53,6 +53,8 @@ public:
virtual void ActivatePage(); virtual void ActivatePage();
virtual void DeactivatePage(); virtual void DeactivatePage();
OString GetConfigId() const;
//To-Do, consider inheriting from VclContainer //To-Do, consider inheriting from VclContainer
virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize) SAL_OVERRIDE; virtual void SetPosSizePixel(const Point& rNewPos, const Size& rNewSize) SAL_OVERRIDE;
virtual void SetPosPixel(const Point& rNewPos) SAL_OVERRIDE; virtual void SetPosPixel(const Point& rNewPos) SAL_OVERRIDE;
......
...@@ -405,7 +405,6 @@ SfxTabDialog::SfxTabDialog ...@@ -405,7 +405,6 @@ SfxTabDialog::SfxTabDialog
, pSet(pItemSet) , pSet(pItemSet)
, pOutSet(0) , pOutSet(0)
, pRanges(0) , pRanges(0)
, nResId(0)
, nAppPageId(USHRT_MAX) , nAppPageId(USHRT_MAX)
, bItemsReset(false) , bItemsReset(false)
, bFmt(bEditFmt) , bFmt(bEditFmt)
...@@ -436,7 +435,6 @@ SfxTabDialog::SfxTabDialog ...@@ -436,7 +435,6 @@ SfxTabDialog::SfxTabDialog
, pSet(pItemSet) , pSet(pItemSet)
, pOutSet(0) , pOutSet(0)
, pRanges(0) , pRanges(0)
, nResId(0)
, nAppPageId(USHRT_MAX) , nAppPageId(USHRT_MAX)
, bItemsReset(false) , bItemsReset(false)
, bFmt(bEditFmt) , bFmt(bEditFmt)
...@@ -464,7 +462,15 @@ SfxTabDialog::~SfxTabDialog() ...@@ -464,7 +462,15 @@ SfxTabDialog::~SfxTabDialog()
if ( !aPageData.isEmpty() ) if ( !aPageData.isEmpty() )
{ {
// save settings of all pages (user data) // 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 ) ) ); aPageOpt.SetUserItem( USERITEM_NAME, makeAny( OUString( aPageData ) ) );
} }
...@@ -685,7 +691,7 @@ void SfxTabDialog::Start_Impl() ...@@ -685,7 +691,7 @@ void SfxTabDialog::Start_Impl()
sal_uInt16 nActPage = m_pTabCtrl->GetPageId( 0 ); sal_uInt16 nActPage = m_pTabCtrl->GetPageId( 0 );
// load old settings, when exists // load old settings, when exists
SvtViewOptions aDlgOpt( E_TABDIALOG, OUString::number( nResId ) ); SvtViewOptions aDlgOpt(E_TABDIALOG, OStringToOUString(GetHelpId(),RTL_TEXTENCODING_UTF8));
if ( aDlgOpt.Exists() ) if ( aDlgOpt.Exists() )
{ {
SetWindowState(OUStringToOString(aDlgOpt.GetWindowState().getStr(), RTL_TEXTENCODING_ASCII_US)); SetWindowState(OUStringToOString(aDlgOpt.GetWindowState().getStr(), RTL_TEXTENCODING_ASCII_US));
...@@ -806,7 +812,15 @@ void SfxTabDialog::RemoveTabPage( sal_uInt16 nId ) ...@@ -806,7 +812,15 @@ void SfxTabDialog::RemoveTabPage( sal_uInt16 nId )
if ( !aPageData.isEmpty() ) if ( !aPageData.isEmpty() )
{ {
// save settings of this page (user data) // 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 ) ) ); aPageOpt.SetUserItem( USERITEM_NAME, makeAny( OUString( aPageData ) ) );
} }
...@@ -882,8 +896,9 @@ SfxTabPage* SfxTabDialog::GetTabPage( sal_uInt16 nPageId ) const ...@@ -882,8 +896,9 @@ SfxTabPage* SfxTabDialog::GetTabPage( sal_uInt16 nPageId ) const
void SfxTabDialog::SavePosAndId() void SfxTabDialog::SavePosAndId()
{ {
// save settings (screen position and current page) // 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)); 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() ); aDlgOpt.SetPageID( m_pTabCtrl->GetCurPageId() );
} }
...@@ -1252,7 +1267,13 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl ) ...@@ -1252,7 +1267,13 @@ IMPL_LINK( SfxTabDialog, ActivatePageHdl, TabControl *, pTabCtrl )
DBG_ASSERT( NULL == pDataObject->pTabPage, "create TabPage more than once" ); DBG_ASSERT( NULL == pDataObject->pTabPage, "create TabPage more than once" );
pDataObject->pTabPage = pTabPage; 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; OUString sUserData;
Any aUserItem = aPageOpt.GetUserItem( USERITEM_NAME ); Any aUserItem = aPageOpt.GetUserItem( USERITEM_NAME );
OUString aTemp; OUString aTemp;
......
...@@ -181,6 +181,14 @@ void TabPage::DeactivatePage() ...@@ -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 Size TabPage::GetOptimalSize() const
{ {
if (isLayoutEnabled(this)) if (isLayoutEnabled(this))
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment