diff options
author | Andre Fischer <af@apache.org> | 2013-04-23 11:33:28 +0000 |
---|---|---|
committer | Michael Meeks <michael.meeks@suse.com> | 2013-05-20 11:33:18 +0100 |
commit | 799e382d025e9176624bdfb92e72a9aa783a973c (patch) | |
tree | f3b3b1ee82670ff2688b0243b5b212594785e9df | |
parent | b99b51a7a36132224cfc50a35d369247255e59c2 (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.hxx | 6 | ||||
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu | 102 | ||||
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/UI/Sidebar.xcs | 8 | ||||
-rw-r--r-- | sfx2/source/sidebar/EnumContext.cxx | 6 | ||||
-rw-r--r-- | sfx2/source/sidebar/ResourceManager.cxx | 65 | ||||
-rw-r--r-- | svx/source/sidebar/paragraph/ParaPropertyPanel.cxx | 10 | ||||
-rw-r--r-- | svx/source/sidebar/possize/PosSizePropertyPanel.cxx | 12 | ||||
-rw-r--r-- | svx/source/sidebar/text/TextPropertyPanel.cxx | 10 |
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(); |