summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
Diffstat (limited to 'cui')
-rw-r--r--cui/source/options/treeopt.cxx56
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 ) )