summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndre Fischer <af@apache.org>2013-04-23 11:33:28 +0000
committerMichael Meeks <michael.meeks@suse.com>2013-05-20 11:33:18 +0100
commit799e382d025e9176624bdfb92e72a9aa783a973c (patch)
treef3b3b1ee82670ff2688b0243b5b212594785e9df
parentb99b51a7a36132224cfc50a35d369247255e59c2 (diff)
Related: #i122051# Sidebar handles more Writer variants.
(cherry picked from commit dc36f82362dc1fb159668937cde7cedbc3fad503) Conflicts: sfx2/inc/sfx2/sidebar/EnumContext.hxx Change-Id: I230b6dd3a68d2a17d0433f7919e74f1fcfae8d01
-rw-r--r--include/sfx2/sidebar/EnumContext.hxx6
-rw-r--r--officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu102
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs8
-rw-r--r--sfx2/source/sidebar/EnumContext.cxx6
-rw-r--r--sfx2/source/sidebar/ResourceManager.cxx65
-rw-r--r--svx/source/sidebar/paragraph/ParaPropertyPanel.cxx10
-rw-r--r--svx/source/sidebar/possize/PosSizePropertyPanel.cxx12
-rw-r--r--svx/source/sidebar/text/TextPropertyPanel.cxx10
8 files changed, 122 insertions, 97 deletions
diff --git a/include/sfx2/sidebar/EnumContext.hxx b/include/sfx2/sidebar/EnumContext.hxx
index 54b07e016783..cad942eb4642 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 3187e52bf29b..b435c9a7bbd5 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 a5b9ee39626c..49d6118defca 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 d8d39fb75aac..acc5340059b0 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 efb1fa134820..c29ef9ad2f4b 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 c6b8809f2c7d..57833b396540 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 0eb31253251b..367e5c8a921f 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 044bfa983b0c..4ef01c371407 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();