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();