summaryrefslogtreecommitdiff
path: root/cui
diff options
context:
space:
mode:
authorAugust Sodora <augsod@gmail.com>2011-12-16 00:14:03 -0500
committerAugust Sodora <augsod@gmail.com>2011-12-19 14:36:09 -0500
commit8e0792e9593115045f561d07576ff63700c782c0 (patch)
tree968b52c632fe7e1a4867e657ad0c65816a8f6d56 /cui
parent04417370fcd44554fce4b7c5a146b0d1613bdbae (diff)
Automatically select an option page if a user clicks on a category
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 ) )