diff options
author | Susobhan Ghosh <susobhang70@gmail.com> | 2016-06-14 10:28:01 +0200 |
---|---|---|
committer | Yousuf Philips <philipz85@hotmail.com> | 2016-06-18 09:20:35 +0000 |
commit | 9579fa7bddc11deeb00474cad2203ac613c1c3f8 (patch) | |
tree | 8f733b4a58e8d0902c44fc5f71b7dec36a628a4a | |
parent | 8389616baa8c03f878be5dfeb0a9f2db546bb66f (diff) |
Rename Slide Background Panel to Slide in Impress.
Reorder Properties Deck
Reviewed-on: https://gerrit.libreoffice.org/26159
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Function to change sidebar panel title, via UNO API
Change-Id: I49677f7642b962879107aed7289ba9066fb5ce0f
Reviewed-on: https://gerrit.libreoffice.org/26243
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Reviewed-on: https://gerrit.libreoffice.org/26357
Reviewed-by: Yousuf Philips <philipz85@hotmail.com>
-rw-r--r-- | officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu | 38 | ||||
-rw-r--r-- | sd/source/ui/sidebar/SlideBackground.cxx | 67 | ||||
-rw-r--r-- | sd/source/ui/sidebar/SlideBackground.hxx | 9 |
3 files changed, 94 insertions, 20 deletions
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu index 80bfad72f216..b907f65b6e45 100644 --- a/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu +++ b/officecfg/registry/data/org/openoffice/Office/UI/Sidebar.xcu @@ -559,62 +559,62 @@ </prop> </node> - <node oor:name="SdLayoutsPanel" oor:op="replace"> + <node oor:name="SlideBackgroundPanel" oor:op="replace"> <prop oor:name="Title" oor:type="xs:string"> - <value xml:lang="en-US">Layouts</value> + <value xml:lang="en-US">Slide</value> </prop> <prop oor:name="TitleBarIsOptional" oor:type="xs:boolean"> <value>false</value> </prop> <prop oor:name="Id" oor:type="xs:string"> - <value>SdLayoutsPanel</value> + <value>SlideBackgroundPanel</value> </prop> <prop oor:name="DeckId" oor:type="xs:string"> <value>PropertyDeck</value> </prop> <prop oor:name="ContextList"> <value oor:separator=";"> - Impress, DrawPage, visible ; - Impress, default, visible ; - Impress, HandoutPage, visible ; - Impress, NotesPage, visible ; - Impress, SlidesorterPage, visible ; + DrawImpress, DrawPage, visible, .uno:PageSetup ; + DrawImpress, default, visible, .uno:PageSetup ; + DrawImpress, HandoutPage, visible, .uno:PageSetup ; + DrawImpress, NotesPage, visible, .uno:PageSetup ; + DrawImpress, SlidesorterPage, visible, .uno:PageSetup ; </value> </prop> <prop oor:name="ImplementationURL" oor:type="xs:string"> - <value>private:resource/toolpanel/SdPanelFactory/Layouts</value> + <value>private:resource/toolpanel/SdPanelFactory/SlideBackgroundPanel</value> </prop> <prop oor:name="OrderIndex" oor:type="xs:int"> <value>100</value> </prop> </node> - <node oor:name="SlideBackgroundPanel" oor:op="replace"> + <node oor:name="SdLayoutsPanel" oor:op="replace"> <prop oor:name="Title" oor:type="xs:string"> - <value xml:lang="en-US">Slide Background</value> + <value xml:lang="en-US">Layouts</value> </prop> <prop oor:name="TitleBarIsOptional" oor:type="xs:boolean"> <value>false</value> </prop> <prop oor:name="Id" oor:type="xs:string"> - <value>SlideBackgroundPanel</value> + <value>SdLayoutsPanel</value> </prop> <prop oor:name="DeckId" oor:type="xs:string"> <value>PropertyDeck</value> </prop> <prop oor:name="ContextList"> <value oor:separator=";"> - Impress, DrawPage, visible, .uno:PageSetup ; - Impress, default, visible, .uno:PageSetup ; - Impress, HandoutPage, visible, .uno:PageSetup ; - Impress, NotesPage, visible, .uno:PageSetup ; - Impress, SlidesorterPage, visible, .uno:PageSetup ; + Impress, DrawPage, visible ; + Impress, default, visible ; + Impress, HandoutPage, visible ; + Impress, NotesPage, visible ; + Impress, SlidesorterPage, visible ; </value> </prop> <prop oor:name="ImplementationURL" oor:type="xs:string"> - <value>private:resource/toolpanel/SdPanelFactory/SlideBackgroundPanel</value> + <value>private:resource/toolpanel/SdPanelFactory/Layouts</value> </prop> <prop oor:name="OrderIndex" oor:type="xs:int"> - <value>100</value> + <value>200</value> </prop> </node> <node oor:name="SdUsedMasterPagesPanel" oor:op="replace"> diff --git a/sd/source/ui/sidebar/SlideBackground.cxx b/sd/source/ui/sidebar/SlideBackground.cxx index 087e1723a2ca..dfe65a2bdfb8 100644 --- a/sd/source/ui/sidebar/SlideBackground.cxx +++ b/sd/source/ui/sidebar/SlideBackground.cxx @@ -18,6 +18,8 @@ */ #include <com/sun/star/animations/XAnimationNode.hpp> +#include <com/sun/star/ui/XDeck.hpp> +#include <com/sun/star/ui/XPanel.hpp> #include "SlideBackground.hxx" #include "TransitionPreset.hxx" #include "sdresid.hxx" @@ -61,6 +63,7 @@ #include <svx/dlgutil.hxx> #include <algorithm> #include "EventMultiplexer.hxx" +#include "glob.hrc" using namespace ::com::sun::star; @@ -138,6 +141,9 @@ SlideBackground::SlideBackground( mpGradientItem(), mpHatchItem(), mpBitmapItem(), + mxFrame(rxFrame), + maContext(), + mbTitle(false), mpBindings(pBindings) { get(mpPaperSizeBox,"paperformat"); @@ -199,6 +205,14 @@ void SlideBackground::Initialize() Update(); } +void SlideBackground::HandleContextChange( + const ::sfx2::sidebar::EnumContext& rContext) +{ + if (maContext == rContext) + return; + maContext = rContext; +} + void SlideBackground::Update() { const drawing::FillStyle eXFS = (drawing::FillStyle)mpFillStyle->GetSelectEntryPos(); @@ -298,6 +312,35 @@ void SlideBackground::Update() } } +void SlideBackground::SetPanelTitle( const OUString& rTitle ) +{ + Reference<frame::XController2> xController( mxFrame->getController(), uno::UNO_QUERY); + if ( !xController.is() ) + return; + + Reference<ui::XSidebarProvider> xSidebarProvider( xController->getSidebar(), uno::UNO_QUERY ); + if ( !xSidebarProvider.is() ) + return; + + Reference<ui::XDecks> xDecks ( xSidebarProvider->getDecks(), uno::UNO_QUERY); + if ( !xDecks.is() ) + return; + + Reference<ui::XDeck> xDeck ( xDecks->getByName("PropertyDeck"), uno::UNO_QUERY); + if ( !xDeck.is() ) + return; + + Reference<ui::XPanels> xPanels ( xDeck->getPanels(), uno::UNO_QUERY); + if ( !xPanels.is() ) + return; + + Reference<ui::XPanel> xPanel ( xPanels->getByName("SlideBackgroundPanel"), uno::UNO_QUERY); + if ( !xPanels.is() ) + return; + + xPanel->setTitle( rTitle ); +} + void SlideBackground::addListener() { Link<tools::EventMultiplexerEvent&,void> aLink( LINK(this, SlideBackground, EventMultiplexerListener) ); @@ -305,7 +348,8 @@ void SlideBackground::addListener() aLink, tools::EventMultiplexerEvent::EID_CURRENT_PAGE | tools::EventMultiplexerEvent::EID_MAIN_VIEW_ADDED | - tools::EventMultiplexerEvent::EID_SHAPE_CHANGED ); + tools::EventMultiplexerEvent::EID_SHAPE_CHANGED | + tools::EventMultiplexerEvent::EID_VIEW_ADDED); } void SlideBackground::removeListener() @@ -353,6 +397,27 @@ IMPL_LINK_TYPED(SlideBackground, EventMultiplexerListener, GetBindings()->Invalidate( SidArray ); } break; + case tools::EventMultiplexerEvent::EID_VIEW_ADDED: + { + if(!mbTitle) + { + sfx2::sidebar::EnumContext rDrawContext(sfx2::sidebar::EnumContext::Application_Draw, + sfx2::sidebar::EnumContext::Context_DrawPage); + sfx2::sidebar::EnumContext rImpressContext(sfx2::sidebar::EnumContext::Application_Impress, + sfx2::sidebar::EnumContext::Context_DrawPage); + if(maContext == rDrawContext) + { + SetPanelTitle(SD_RESSTR(STR_PAGE_NAME)); + mbTitle = true; + } + else if(maContext == rImpressContext) + { + SetPanelTitle(SD_RESSTR(STR_SLIDE_NAME)); + mbTitle = true; + } + } + } + break; default: break; } diff --git a/sd/source/ui/sidebar/SlideBackground.hxx b/sd/source/ui/sidebar/SlideBackground.hxx index 0bffcdda23eb..1c0a23cb2346 100644 --- a/sd/source/ui/sidebar/SlideBackground.hxx +++ b/sd/source/ui/sidebar/SlideBackground.hxx @@ -42,11 +42,13 @@ #include <svx/xbtmpit.hxx> #include <svx/xflhtit.hxx> #include "EventMultiplexer.hxx" +#include <sfx2/sidebar/IContextChangeReceiver.hxx> namespace sd { namespace sidebar { class SlideBackground : public PanelLayout, + public ::sfx2::sidebar::IContextChangeReceiver, public ::sfx2::sidebar::ControllerItem::ItemUpdateReceiverInterface { public: @@ -65,6 +67,8 @@ public: const SfxItemState eState, const SfxPoolItem* pState, const bool bIsEnabled) override; + virtual void HandleContextChange( + const ::sfx2::sidebar::EnumContext& rContext) override; private: @@ -98,6 +102,9 @@ private: std::unique_ptr< XFillHatchItem > mpHatchItem; std::unique_ptr< XFillBitmapItem > mpBitmapItem; + css::uno::Reference<css::frame::XFrame> mxFrame; + ::sfx2::sidebar::EnumContext maContext; + bool mbTitle; SfxBindings* mpBindings; SfxMapUnit meUnit; @@ -113,6 +120,8 @@ private: void Initialize(); void Update(); + void SetPanelTitle(const OUString& rTitle); + Color GetColorSetOrDefault(); XGradient GetGradientSetOrDefault(); const OUString GetHatchingSetOrDefault(); |