[Libreoffice-commits] core.git: Branch 'feature/sidebar' - include/sfx2 officecfg/registry sfx2/source svx/source

Andre Fischer af at apache.org
Thu May 9 07:46:52 PDT 2013


 include/sfx2/sidebar/EnumContext.hxx                           |    6 
 officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu   |  102 +++++-----
 officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs |    8 
 sfx2/source/sidebar/EnumContext.cxx                            |    6 
 sfx2/source/sidebar/ResourceManager.cxx                        |   65 +++---
 svx/source/sidebar/paragraph/ParaPropertyPanel.cxx             |   10 
 svx/source/sidebar/possize/PosSizePropertyPanel.cxx            |   12 -
 svx/source/sidebar/text/TextPropertyPanel.cxx                  |   10 
 8 files changed, 122 insertions(+), 97 deletions(-)

New commits:
commit a6830c7f2bf80eeaa5e570d834d6e1a29085d211
Author: Andre Fischer <af at apache.org>
Date:   Tue Apr 23 11:33:28 2013 +0000

    Related: #i122051# Sidebar handles more Writer variants.
    
    (cherry picked from commit dc36f82362dc1fb159668937cde7cedbc3fad503)
    
    Conflicts:
    	sfx2/inc/sfx2/sidebar/EnumContext.hxx
    
    Change-Id: I230b6dd3a68d2a17d0433f7919e74f1fcfae8d01

diff --git a/include/sfx2/sidebar/EnumContext.hxx b/include/sfx2/sidebar/EnumContext.hxx
index 54b07e0..cad942e 100644
--- a/include/sfx2/sidebar/EnumContext.hxx
+++ b/include/sfx2/sidebar/EnumContext.hxx
@@ -33,7 +33,9 @@ public:
     enum Application
     {
         Application_Writer,
+        Application_WriterGlobal,
         Application_WriterWeb,
+        Application_WriterXML,
         Application_Calc,
         Application_Draw,
         Application_Impress,
@@ -42,8 +44,8 @@ public:
         // case that Draw and Impress use identical context configurations.
         Application_DrawImpress,
 
-        // Also for your convenience for either Writer or WriterWeb.
-        Application_WriterAndWeb,
+        // Also for your convenience for the different variants of Writer documents.
+        Application_WriterVariants,
 
         // Used only by deck or panel descriptors.  Matches any
         // application.
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
index 3187e52..b435c9a 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu
@@ -212,11 +212,11 @@
             DrawImpress,      OutlineText,        visible                    ;
             DrawImpress,      Table,              visible                    ;
             DrawImpress,      TextObject,         visible                    ;
-            WriterAndWeb,     Annotation,         visible                    ;
-            WriterAndWeb,     DrawText,           visible                    ;
-            WriterAndWeb,     Table,              visible                    ;
-            WriterAndWeb,     Text,               visible                    ;
-            WriterAndWeb,     default,            visible                    ;
+            WriterVariants,   Annotation,         visible                    ;
+            WriterVariants,   DrawText,           visible                    ;
+            WriterVariants,   Table,              visible                    ;
+            WriterVariants,   Text,               visible                    ;
+            WriterVariants,   default,            visible                    ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -316,11 +316,11 @@
         </prop>
         <prop oor:name="ContextList">
           <value oor:separator=";">
-            Calc,         Draw,       visible ;
-            DrawImpress,  3DObject,   visible ;
-            DrawImpress,  Draw,       visible ;
-            DrawImpress,  TextObject, hidden  ;
-            WriterAndWeb, Draw,       visible ;
+            Calc,           Draw,       visible ;
+            DrawImpress,    3DObject,   visible ;
+            DrawImpress,    Draw,       visible ;
+            DrawImpress,    TextObject, hidden  ;
+            WriterVariants, Draw,       visible ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -346,13 +346,13 @@
         </prop>
         <prop oor:name="ContextList">
           <value oor:separator=";">
-            Calc,         Draw,       visible ;
-            Calc,         Graphic,    visible ;
-            DrawImpress,  3DObject,   visible ;
-            DrawImpress,  Draw,       visible ;
-            DrawImpress,  Graphic,    visible ;
-            DrawImpress,  TextObject, hidden  ;
-            WriterAndWeb, Draw,       visible ;
+            Calc,           Draw,       visible ;
+            Calc,           Graphic,    visible ;
+            DrawImpress,    3DObject,   visible ;
+            DrawImpress,    Draw,       visible ;
+            DrawImpress,    Graphic,    visible ;
+            DrawImpress,    TextObject, hidden  ;
+            WriterVariants, Draw,       visible ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -404,26 +404,26 @@
         </prop>
         <prop oor:name="ContextList">
           <value oor:separator=";">
-            Calc,         Chart,       visible                       ;
-            Calc,         Draw,        hidden                        ;
-            Calc,         Form,        visible                       ;
-            Calc,         Graphic,     hidden                        ;
-            Calc,         Media,       visible                       ;
-            Calc,         MultiObject, visible                       ;
-            Calc,         OLE,         visible                       ;
-            DrawImpress,  3DObject,    visible                       ;
-            DrawImpress,  Draw,        hidden                        ;
-            DrawImpress,  Form,        visible                       ;
-            DrawImpress,  Graphic,     hidden                        ;
-            DrawImpress,  Media,       visible                       ;
-            DrawImpress,  MultiObject, visible                       ;
-            DrawImpress,  OLE,         visible                       ;
-            DrawImpress,  TextObject,  hidden                        ;
-            WriterAndWeb, Draw,        hidden                        ;
-            WriterAndWeb, Form,        visible                       ;
-            WriterAndWeb, Graphic,     visible, .uno:GraphicDialog   ;
-            WriterAndWeb, Media,       visible                       ;
-            WriterAndWeb, OLE,         visible, .uno:FrameDialog     ;
+            Calc,           Chart,       visible                       ;
+            Calc,           Draw,        hidden                        ;
+            Calc,           Form,        visible                       ;
+            Calc,           Graphic,     hidden                        ;
+            Calc,           Media,       visible                       ;
+            Calc,           MultiObject, visible                       ;
+            Calc,           OLE,         visible                       ;
+            DrawImpress,    3DObject,    visible                       ;
+            DrawImpress,    Draw,        hidden                        ;
+            DrawImpress,    Form,        visible                       ;
+            DrawImpress,    Graphic,     hidden                        ;
+            DrawImpress,    Media,       visible                       ;
+            DrawImpress,    MultiObject, visible                       ;
+            DrawImpress,    OLE,         visible                       ;
+            DrawImpress,    TextObject,  hidden                        ;
+            WriterVariants, Draw,        hidden                        ;
+            WriterVariants, Form,        visible                       ;
+            WriterVariants, Graphic,     visible, .uno:GraphicDialog   ;
+            WriterVariants, Media,       visible                       ;
+            WriterVariants, OLE,         visible, .uno:FrameDialog     ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -448,7 +448,7 @@
           <value oor:separator=";">
             Calc,         Graphic,     visible   ;
             DrawImpress,  Graphic,     visible   ;
-            WriterAndWeb, Graphic,     visible   ;
+            WriterVariants, Graphic,     visible   ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -774,18 +774,18 @@
         </prop>
         <prop oor:name="ContextList">
           <value oor:separator=";">
-            Calc,         DrawText,   visible ;
-            DrawImpress,  3DObject,   hidden  ;
-            DrawImpress,  Draw,       hidden  ;
-            DrawImpress,  DrawText,   visible ;
-            DrawImpress,  Graphic,    hidden  ;
-            DrawImpress,  Table,      visible ;
-            DrawImpress,  TextObject, visible ;
-            WriterAndWeb, Annotation, visible ;
-            WriterAndWeb, DrawText,   visible ;
-            WriterAndWeb, Table,      visible ;
-            WriterAndWeb, Text,       visible ;
-            WriterAndWeb, default,    visible ;
+            Calc,           DrawText,   visible ;
+            DrawImpress,    3DObject,   hidden  ;
+            DrawImpress,    Draw,       hidden  ;
+            DrawImpress,    DrawText,   visible ;
+            DrawImpress,    Graphic,    hidden  ;
+            DrawImpress,    Table,      visible ;
+            DrawImpress,    TextObject, visible ;
+            WriterVariants, Annotation, visible ;
+            WriterVariants, DrawText,   visible ;
+            WriterVariants, Table,      visible ;
+            WriterVariants, Text,       visible ;
+            WriterVariants, default,    visible ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
@@ -839,7 +839,7 @@
         </prop>
         <prop oor:name="ContextList">
           <value oor:separator=";">
-            WriterAndWeb, any, visible ;
+            WriterVariants, any, visible ;
           </value>
         </prop>
         <prop oor:name="ImplementationURL" oor:type="xs:string">
diff --git a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs
index a5b9ee3..49d6118 100644
--- a/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs
+++ b/officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs
@@ -65,6 +65,9 @@
           separated values (note that values are case sensitive):
           1  Application name. Valid values are
                  com.sun.star.text.TextDocument
+                 com.sun.star.text.GlobalDocument
+                 com.sun.star.text.WebDocument
+                 com.sun.star.xforms.XMLFormDocument
                  com.sun.star.sheet.SpreadsheetDocument
                  com.sun.star.presentation.PresentationDocument
                  com.sun.star.drawing.DrawingDocument
@@ -77,9 +80,10 @@
 
              Shortcuts for multiple applications:
                  DrawImpress
-                 WriterAndWeb
+                 WriterVariants
              These shortcuts exist for even more convenience and handle the frequent case of Draw
-	     and Impress as well as Writer and WriterWeb having otherwise identical context descriptions.
+	     and Impress as well as different variants of the Writer where they have otherwise 
+	     identical context descriptions.
              
              Special values:
                  any
diff --git a/sfx2/source/sidebar/EnumContext.cxx b/sfx2/source/sidebar/EnumContext.cxx
index d8d39fb..acc5340 100644
--- a/sfx2/source/sidebar/EnumContext.cxx
+++ b/sfx2/source/sidebar/EnumContext.cxx
@@ -89,8 +89,10 @@ sal_Int32 EnumContext::GetCombinedContext_DI (void) const
             return CombinedEnumContext(Application_DrawImpress, meContext);
 
         case Application_Writer:
+        case Application_WriterGlobal:
         case Application_WriterWeb:
-            return CombinedEnumContext(Application_WriterAndWeb, meContext);
+        case Application_WriterXML:
+            return CombinedEnumContext(Application_WriterVariants, meContext);
 
         default:
             return CombinedEnumContext(meApplication, meContext);
@@ -152,7 +154,9 @@ void EnumContext::ProvideApplicationContainers (void)
     {
         maApplicationVector.resize(static_cast<size_t>(EnumContext::__LastApplicationEnum)+1);
         AddEntry(A2S("com.sun.star.text.TextDocument"), EnumContext::Application_Writer);
+        AddEntry(A2S("com.sun.star.text.GlobalDocument"), EnumContext::Application_WriterGlobal);
         AddEntry(A2S("com.sun.star.text.WebDocument"), EnumContext::Application_WriterWeb);
+        AddEntry(A2S("com.sun.star.xforms.XMLFormDocument"), EnumContext::Application_WriterXML);
         AddEntry(A2S("com.sun.star.sheet.SpreadsheetDocument"), EnumContext::Application_Calc);
         AddEntry(A2S("com.sun.star.drawing.DrawingDocument"), EnumContext::Application_Draw);
         AddEntry(A2S("com.sun.star.presentation.PresentationDocument"), EnumContext::Application_Impress);
diff --git a/sfx2/source/sidebar/ResourceManager.cxx b/sfx2/source/sidebar/ResourceManager.cxx
index efb1fa1..c29ef9a 100644
--- a/sfx2/source/sidebar/ResourceManager.cxx
+++ b/sfx2/source/sidebar/ResourceManager.cxx
@@ -401,35 +401,41 @@ void ResourceManager::ReadContextList (
                     : sMenuCommandOverride)
                 : rsDefaultMenuCommand);
 
+        // Setup a list of application enums.  Note that the
+        // application name may result in more than one value (eg
+        // DrawImpress will result in two enums, one for Draw and one
+        // for Impress).
+        ::std::vector<EnumContext::Application> aApplications;
         EnumContext::Application eApplication (EnumContext::GetApplicationEnum(sApplicationName));
-        EnumContext::Application eApplication2 (EnumContext::Application_None);
         if (eApplication == EnumContext::Application_None
             && !sApplicationName.equals(EnumContext::GetApplicationName(EnumContext::Application_None)))
         {
             // Handle some special names: abbreviations that make
             // context descriptions more readable.
             if (sApplicationName.equalsAscii("Writer"))
-                eApplication = EnumContext::Application_Writer;
+                aApplications.push_back(EnumContext::Application_Writer);
             else if (sApplicationName.equalsAscii("Calc"))
-                eApplication = EnumContext::Application_Calc;
+                aApplications.push_back(EnumContext::Application_Calc);
             else if (sApplicationName.equalsAscii("Draw"))
-                eApplication = EnumContext::Application_Draw;
+                aApplications.push_back(EnumContext::Application_Draw);
             else if (sApplicationName.equalsAscii("Impress"))
-                eApplication = EnumContext::Application_Impress;
+                aApplications.push_back(EnumContext::Application_Impress);
             else if (sApplicationName.equalsAscii("DrawImpress"))
             {
                 // A special case among the special names:  it is
                 // common to use the same context descriptions for
                 // both Draw and Impress.  This special case helps to
                 // avoid duplication in the .xcu file.
-                eApplication = EnumContext::Application_Draw;
-                eApplication2 = EnumContext::Application_Impress;
+                aApplications.push_back(EnumContext::Application_Draw);
+                aApplications.push_back(EnumContext::Application_Impress);
             }
-            else if (sApplicationName.equalsAscii("WriterAndWeb"))
+            else if (sApplicationName.equalsAscii("WriterVariants"))
             {
-                // Another special case for Writer and WriterWeb.
-                eApplication = EnumContext::Application_Writer;
-                eApplication2 = EnumContext::Application_WriterWeb;
+                // Another special case for all Writer variants.
+                aApplications.push_back(EnumContext::Application_Writer);
+                aApplications.push_back(EnumContext::Application_WriterGlobal);
+                aApplications.push_back(EnumContext::Application_WriterWeb);
+                aApplications.push_back(EnumContext::Application_WriterXML);
             }
             else
             {
@@ -437,7 +443,13 @@ void ResourceManager::ReadContextList (
                 continue;
             }
         }
+        else
+        {
+            // No conversion of the application name necessary.
+            aApplications.push_back(eApplication);
+        }
 
+        // Setup the actual context enum.
         const EnumContext::Context eContext (EnumContext::GetContextEnum(sContextName));
         if (eContext == EnumContext::Context_Unknown)
         {
@@ -445,6 +457,8 @@ void ResourceManager::ReadContextList (
             continue;
         }
 
+        // Setup the flag that controls whether a deck/pane is
+        // initially visible/expanded.
         bool bIsInitiallyVisible;
         if (sInitialState.equalsAscii("visible"))
             bIsInitiallyVisible = true;
@@ -456,20 +470,21 @@ void ResourceManager::ReadContextList (
             continue;
         }
 
-        if (eApplication != EnumContext::Application_None)
-            rContextList.AddContextDescription(
-                Context(
-                    EnumContext::GetApplicationName(eApplication),
-                    EnumContext::GetContextName(eContext)),
-                bIsInitiallyVisible,
-                sMenuCommand);
-        if (eApplication2 != EnumContext::Application_None)
-            rContextList.AddContextDescription(
-                Context(
-                    EnumContext::GetApplicationName(eApplication2),
-                    EnumContext::GetContextName(eContext)),
-                bIsInitiallyVisible,
-                sMenuCommand);
+        // Add context descriptors.
+        for (::std::vector<EnumContext::Application>::const_iterator
+                 iApplication(aApplications.begin()),
+                 iEnd(aApplications.end());
+             iApplication!=iEnd;
+             ++iApplication)
+        {
+            if (*iApplication != EnumContext::Application_None)
+                rContextList.AddContextDescription(
+                    Context(
+                        EnumContext::GetApplicationName(*iApplication),
+                        EnumContext::GetContextName(eContext)),
+                    bIsInitiallyVisible,
+                    sMenuCommand);
+        }
     }
 }
 
diff --git a/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx b/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
index c6b8809..57833b3 100644
--- a/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
+++ b/svx/source/sidebar/paragraph/ParaPropertyPanel.cxx
@@ -193,8 +193,8 @@ void ParaPropertyPanel::HandleContextChange (
             maTbxProDemoteBackground->Show();
             break;
 
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Default):
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Text):
+        case CombinedEnumContext(Application_WriterVariants, Context_Default):
+        case CombinedEnumContext(Application_WriterVariants, Context_Text):
             maTBxVertAlign->Hide();
             maTBxVertAlignBackground->Hide();
             maTBxBackColor->Show();
@@ -209,7 +209,7 @@ void ParaPropertyPanel::HandleContextChange (
             maTbxProDemoteBackground->Hide();
             break;
 
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Table):
+        case CombinedEnumContext(Application_WriterVariants, Context_Table):
             maTBxVertAlign->Show();
             maTBxVertAlignBackground->Show();
             maTBxBackColor->Show();
@@ -223,7 +223,7 @@ void ParaPropertyPanel::HandleContextChange (
             maTbxProDemoteBackground->Hide();
             break;
 
-        case CombinedEnumContext(Application_WriterAndWeb, Context_DrawText):
+        case CombinedEnumContext(Application_WriterVariants, Context_DrawText):
             maTBxVertAlign->Show();
             maTBxVertAlignBackground->Show();
             maTBxBackColor->Hide();
@@ -237,7 +237,7 @@ void ParaPropertyPanel::HandleContextChange (
             maTbxProDemoteBackground->Hide();
             break;
 
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Annotation):
+        case CombinedEnumContext(Application_WriterVariants, Context_Annotation):
             maTBxVertAlign->Hide();
             maTBxVertAlignBackground->Hide();
             maTBxBackColor->Hide();
diff --git a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
index 0eb3125..367e5c8 100644
--- a/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
+++ b/svx/source/sidebar/possize/PosSizePropertyPanel.cxx
@@ -299,15 +299,15 @@ void PosSizePropertyPanel::HandleContextChange(
     sal_Int32 nLayoutMode (0);
     switch (maContext.GetCombinedContext_DI())
     {
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Draw):
+        case CombinedEnumContext(Application_WriterVariants, Context_Draw):
             nLayoutMode = 0;
             break;
 
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Graphic):
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Media):
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Frame):
-        case CombinedEnumContext(Application_WriterAndWeb, Context_OLE):
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Form):
+        case CombinedEnumContext(Application_WriterVariants, Context_Graphic):
+        case CombinedEnumContext(Application_WriterVariants, Context_Media):
+        case CombinedEnumContext(Application_WriterVariants, Context_Frame):
+        case CombinedEnumContext(Application_WriterVariants, Context_OLE):
+        case CombinedEnumContext(Application_WriterVariants, Context_Form):
             nLayoutMode = 1;
             break;
 
diff --git a/svx/source/sidebar/text/TextPropertyPanel.cxx b/svx/source/sidebar/text/TextPropertyPanel.cxx
index 044bfa9..4ef01c3 100644
--- a/svx/source/sidebar/text/TextPropertyPanel.cxx
+++ b/svx/source/sidebar/text/TextPropertyPanel.cxx
@@ -278,7 +278,7 @@ void TextPropertyPanel::HandleContextChange (
     }
 
     maContext = aContext;
-    switch (maContext.GetCombinedContext_DI())
+    switch (maContext.GetCombinedContext_DI()) //
     {
         case CombinedEnumContext(Application_Calc, Context_Cell):
         case CombinedEnumContext(Application_Calc, Context_Pivot):
@@ -297,8 +297,8 @@ void TextPropertyPanel::HandleContextChange (
             break;
         }
 
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Text):
-        case CombinedEnumContext(Application_WriterAndWeb, Context_Table):
+        case CombinedEnumContext(Application_WriterVariants, Context_Text):
+        case CombinedEnumContext(Application_WriterVariants, Context_Table):
         {
             mpToolBoxScriptSw->Show();
             mpToolBoxScript->Hide();
@@ -314,8 +314,8 @@ void TextPropertyPanel::HandleContextChange (
             break;
         }
 
-        case CombinedEnumContext(Application_Writer, Context_DrawText):
-        case CombinedEnumContext(Application_Writer, Context_Annotation):
+        case CombinedEnumContext(Application_WriterVariants, Context_DrawText):
+        case CombinedEnumContext(Application_WriterVariants, Context_Annotation):
         {
             mpToolBoxScriptSw->Show();
             mpToolBoxScript->Hide();


More information about the Libreoffice-commits mailing list