Date: prev next · Thread: first prev next last
2011 Archives by date, by thread · List index


Hey all,

Stefan Knorr notified me of the following whiteboard item from the
design team [1], and I have created the following patch that should
implement the desired behavior. I haven't done any of the cleanup for
this because I'd like to dig a little deeper but there are definitely
src and hrc entries that can be removed, as well as simplying the
logic a little bit in the select handler in
cui/source/options/treeopt.cxx. Ideally I'd like to clean things up to
the point where I can remove the switch statement and glean the
default page to display from information in treeopt.[src|hrc].

[1] http://wiki.documentfoundation.org/Whiteboards/KillOptions#Filler_Pages
        


August Sodora
augsod@gmail.com
(201) 280-8138
From d00daca6dec8f9cbef08bc095e8d92394816caaa Mon Sep 17 00:00:00 2001
From: August Sodora <augsod@gmail.com>
Date: Fri, 16 Dec 2011 00:14:03 -0500
Subject: [PATCH 2/2] Automatically select an option page if a user clicks on
 a category

---
 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 66210b7..5fdb53a 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 ) )
-- 
1.7.5.4


Context


Privacy Policy | Impressum (Legal Info) | Copyright information: Unless otherwise specified, all text and images on this website are licensed under the Creative Commons Attribution-Share Alike 3.0 License. This does not include the source code of LibreOffice, which is licensed under the Mozilla Public License (MPLv2). "LibreOffice" and "The Document Foundation" are registered trademarks of their corresponding registered owners or are in actual use as trademarks in one or more countries. Their respective logos and icons are also subject to international copyright laws. Use thereof is explained in our trademark policy.