diff options
author | August Sodora <augsod@gmail.com> | 2011-12-16 00:14:03 -0500 |
---|---|---|
committer | August Sodora <augsod@gmail.com> | 2011-12-19 14:36:09 -0500 |
commit | 8e0792e9593115045f561d07576ff63700c782c0 (patch) | |
tree | 968b52c632fe7e1a4867e657ad0c65816a8f6d56 /cui | |
parent | 04417370fcd44554fce4b7c5a146b0d1613bdbae (diff) |
Automatically select an option page if a user clicks on a category
Diffstat (limited to 'cui')
-rw-r--r-- | cui/source/options/treeopt.cxx | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx index 66210b70b1bf..5fdb53aa432b 100644 --- a/cui/source/options/treeopt.cxx +++ b/cui/source/options/treeopt.cxx @@ -1028,6 +1028,62 @@ IMPL_LINK( OfaTreeOptionsDialog, SelectHdl_Impl, Timer*, EMPTYARG ) return 0; //#111938# lock the SelectHdl_Impl to prevent multiple executes FlagSet_Impl aFlag(bInSelectHdl_Impl); + + // If the user has selected a category, automatically switch to a suitable + // default sub-page instead. + if (!pParent) + { + OptionsGroupInfo* pGroupInfo = static_cast<OptionsGroupInfo*>(pEntry->GetUserData()); + + if(!pGroupInfo) + return 0; + + switch(pGroupInfo->m_nDialogId) + { + case SID_GENERAL_OPTIONS: + ActivatePage(RID_SFXPAGE_GENERAL); + break; + case SID_LANGUAGE_OPTIONS: + ActivatePage(OFA_TP_LANGUAGES); + break; + case SID_INET_DLG: + ActivatePage(RID_SVXPAGE_INET_PROXY); + break; + case SID_SW_EDITOPTIONS: + ActivatePage(RID_SW_TP_OPTLOAD_PAGE); + break; + case SID_SW_ONLINEOPTIONS: + ActivatePage(RID_SW_TP_HTML_CONTENT_OPT); + break; + case SID_SC_EDITOPTIONS: + ActivatePage(SID_SC_TP_LAYOUT); + break; + case SID_SD_EDITOPTIONS: + ActivatePage(SID_SI_TP_MISC); + break; + case SID_SD_GRAPHIC_OPTIONS: + ActivatePage(SID_SD_TP_MISC); + break; + case SID_SM_EDITOPTIONS: + ActivatePage(SID_SM_TP_PRINTOPTIONS); + break; + case SID_SCH_EDITOPTIONS: + ActivatePage(RID_OPTPAGE_CHART_DEFCOLORS); + break; + case SID_SB_STARBASEOPTIONS: + ActivatePage(SID_SB_CONNECTIONPOOLING); + break; + case SID_FILTER_DLG: + ActivatePage(RID_SFXPAGE_SAVE); + break; + default: + SAL_WARN("cui", "Unrecognized options category " << pGroupInfo->m_nDialogId); + break; + } + + return 0; + } + TabPage* pOldPage = NULL; TabPage* pNewPage = NULL; OptionsPageInfo* pOptPageInfo = ( pCurrentPageEntry && aTreeLB.GetParent( pCurrentPageEntry ) ) |