From 87084436d39662636e92dd03a5161293efb80948 Mon Sep 17 00:00:00 2001 From: Philippe Jung Date: Mon, 18 Jan 2016 13:25:41 +0100 Subject: tdf#97119 Make TabBarVisible configuration persistant Now the TabBarVisible status persist between LO quit/relaunch. It is also taking into accoutn when opening a (existing/new) presentation. Fixes the incorrect toolbar button status Moves the two buttons on Standard bar, in the PageSetup/SlideMasterPage group. ShowTabBar button is also enabled but not selected by default. Change-Id: Idd9ab15efebc2bf43bc827afaa1eb1457b39deec Reviewed-on: https://gerrit.libreoffice.org/21541 Tested-by: Jenkins Reviewed-by: Katarina Behrens --- .../schema/org/openoffice/Office/Impress.xcs | 10 ++++++++++ sd/source/ui/app/optsitem.cxx | 13 ++++++++++++- sd/source/ui/inc/optsitem.hxx | 4 ++++ sd/source/ui/view/ViewShellBase.cxx | 20 +++++++++++++------- sd/uiconfig/simpress/toolbar/standardbar.xml | 5 ++--- 5 files changed, 41 insertions(+), 11 deletions(-) diff --git a/officecfg/registry/schema/org/openoffice/Office/Impress.xcs b/officecfg/registry/schema/org/openoffice/Office/Impress.xcs index 276476a48c9c..2ba88b4775a4 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Impress.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Impress.xcs @@ -559,6 +559,16 @@ 150 + + + + + + Indicates whether the tab bar should be visible on top of the slide panel. + + + false + Contains text editing related configuration items. diff --git a/sd/source/ui/app/optsitem.cxx b/sd/source/ui/app/optsitem.cxx index 73b9ddd12967..d18cb77eca31 100644 --- a/sd/source/ui/app/optsitem.cxx +++ b/sd/source/ui/app/optsitem.cxx @@ -428,6 +428,7 @@ SdOptionsMisc::SdOptionsMisc( sal_uInt16 nConfigId, bool bUseConfig ) : bEnablePresenterScreen( true), bSolidDragging( true ), bSummationOfParagraphs( false ), + bTabBarVisible( true ), bShowUndoDeleteWarning( true ), bSlideshowRespectZOrder( true ), bShowComments( true ), @@ -460,6 +461,7 @@ bool SdOptionsMisc::operator==( const SdOptionsMisc& rOpt ) const IsEnableSdremote() == rOpt.IsEnableSdremote() && IsEnablePresenterScreen() == rOpt.IsEnablePresenterScreen()&& IsSummationOfParagraphs() == rOpt.IsSummationOfParagraphs() && + IsTabBarVisible() == rOpt.IsTabBarVisible() && IsSolidDragging() == rOpt.IsSolidDragging() && IsShowUndoDeleteWarning() == rOpt.IsShowUndoDeleteWarning() && IsSlideshowRespectZOrder() == rOpt.IsSlideshowRespectZOrder() && @@ -513,7 +515,8 @@ void SdOptionsMisc::GetPropNameArray( const char**& ppNames, sal_uLong& rCount ) "PenColor", "PenWidth", "Start/EnableSdremote", - "Start/EnablePresenterScreen" + "Start/EnablePresenterScreen", + "TabBarVisible" }; rCount = ( ( GetConfigId() == SDCFG_IMPRESS ) ? SAL_N_ELEMENTS(aPropNames) : 14 ); @@ -574,6 +577,10 @@ bool SdOptionsMisc::ReadData( const Any* pValues ) if( pValues[25].hasValue() ) SetEnablePresenterScreen( *static_cast(pValues[ 25 ].getValue()) ); + + if( pValues[26].hasValue() ) { + SetTabBarVisible( *static_cast(pValues[ 26 ].getValue()) ); + } } return true; @@ -615,6 +622,7 @@ bool SdOptionsMisc::WriteData( Any* pValues ) const pValues[ 23 ] <<= GetPresentationPenWidth(); pValues[ 24 ] <<= IsEnableSdremote(); pValues[ 25 ] <<= IsEnablePresenterScreen(); + pValues[ 26 ] <<= IsTabBarVisible(); } return true; @@ -642,6 +650,7 @@ SdOptionsMiscItem::SdOptionsMiscItem( sal_uInt16 _nWhich, SdOptions* pOpts, ::sd maOptionsMisc.SetEnableSdremote( pOpts->IsEnableSdremote() ); maOptionsMisc.SetEnablePresenterScreen( pOpts->IsEnablePresenterScreen() ); maOptionsMisc.SetSummationOfParagraphs( pOpts->IsSummationOfParagraphs() ); + maOptionsMisc.SetTabBarVisible( pOpts->IsTabBarVisible() ); maOptionsMisc.SetShowUndoDeleteWarning( pOpts->IsShowUndoDeleteWarning() ); maOptionsMisc.SetPrinterIndependentLayout( pOpts->GetPrinterIndependentLayout() ); maOptionsMisc.SetDefaultObjectSizeWidth( pOpts->GetDefaultObjectSizeWidth() ); @@ -718,6 +727,8 @@ void SdOptionsMiscItem::SetOptions( SdOptions* pOpts ) const pOpts->SetEnableSdremote( maOptionsMisc.IsEnableSdremote() ); pOpts->SetEnablePresenterScreen( maOptionsMisc.IsEnablePresenterScreen() ); pOpts->SetSummationOfParagraphs( maOptionsMisc.IsSummationOfParagraphs() ); + pOpts->SetTabBarVisible( maOptionsMisc.IsTabBarVisible() ); + pOpts->SetSolidDragging( maOptionsMisc.IsSolidDragging() ); pOpts->SetShowUndoDeleteWarning( maOptionsMisc.IsShowUndoDeleteWarning() ); pOpts->SetPrinterIndependentLayout( maOptionsMisc.GetPrinterIndependentLayout() ); diff --git a/sd/source/ui/inc/optsitem.hxx b/sd/source/ui/inc/optsitem.hxx index a2183d9b8690..e01e9556464e 100644 --- a/sd/source/ui/inc/optsitem.hxx +++ b/sd/source/ui/inc/optsitem.hxx @@ -207,6 +207,7 @@ private: bool bEnablePresenterScreen : 1; // Misc/Start/EnablePresenterDisplay bool bSolidDragging : 1; // Misc/ModifyWithAttributes bool bSummationOfParagraphs : 1; // misc/SummationOfParagraphs + bool bTabBarVisible : 1; // Misc/TabBarVisible bool bShowUndoDeleteWarning : 1; // Misc/ShowUndoDeleteWarning // #i75315# bool bSlideshowRespectZOrder : 1; // Misc/SlideshowRespectZOrder @@ -216,6 +217,7 @@ private: bool bPreviewChangedEffects; bool bPreviewTransitions; + sal_Int32 mnDisplay; sal_Int32 mnPenColor; @@ -256,6 +258,7 @@ public: bool IsEnablePresenterScreen() const { Init(); return bEnablePresenterScreen; } bool IsSolidDragging() const { Init(); return bSolidDragging; } bool IsSummationOfParagraphs() const { Init(); return bSummationOfParagraphs; }; + bool IsTabBarVisible() const { Init(); return bTabBarVisible; }; /** Return the currently selected printer independent layout mode. @return @@ -294,6 +297,7 @@ public: void SetEnableSdremote( bool bOn = true ) { if( bEnableSdremote != bOn ) { OptionsChanged(); bEnableSdremote = bOn; } } void SetEnablePresenterScreen( bool bOn = true ) { if( bEnablePresenterScreen != bOn ) { OptionsChanged(); bEnablePresenterScreen = bOn; } } void SetSummationOfParagraphs( bool bOn = true ){ if ( bOn != bSummationOfParagraphs ) { OptionsChanged(); bSummationOfParagraphs = bOn; } } + void SetTabBarVisible( bool bOn = true ){ if ( bOn != bTabBarVisible ) { OptionsChanged(); bTabBarVisible = bOn; } } /** Set the printer independent layout mode. @param nOn The default value is to switch printer independent layout on, diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx index c1fa2940bbde..5cb79efdfdeb 100644 --- a/sd/source/ui/view/ViewShellBase.cxx +++ b/sd/source/ui/view/ViewShellBase.cxx @@ -59,6 +59,8 @@ #include "Window.hxx" #include "framework/ConfigurationController.hxx" #include "DocumentRenderer.hxx" +#include "sdattr.hxx" +#include "optsitem.hxx" #include #include @@ -367,8 +369,10 @@ void ViewShellBase::LateInit (const OUString& rsDefaultView) if (pFrameView != nullptr) pFrameView->SetViewShellTypeOnLoad(pViewShell->GetShellType()); } - // Hide the TabBar - mpImpl->SetUserWantsTabBar(false); + // Show/Hide the TabBar + SdOptions* pOptions = SD_MOD()->GetSdOptions(GetDocument()->GetDocumentType()); + bool bIsTabBarVisible = pOptions->IsTabBarVisible(); + mpImpl->SetUserWantsTabBar( bIsTabBarVisible ); } std::shared_ptr ViewShellBase::GetViewShellManager() const @@ -636,9 +640,14 @@ void ViewShellBase::Execute (SfxRequest& rRequest) break; case SID_TOGGLE_TABBAR_VISIBILITY: - mpImpl->SetUserWantsTabBar(!mpImpl->GetUserWantsTabBar()); + { + SdOptions* pOptions = SD_MOD()->GetSdOptions(GetDocument()->GetDocumentType()); + bool bIsTabBarVisible = pOptions->IsTabBarVisible(); + pOptions->SetTabBarVisible( !bIsTabBarVisible ); + mpImpl->SetUserWantsTabBar( !bIsTabBarVisible ); rRequest.Done(); - break; + } + break; // draw case SID_DRAWINGMODE: @@ -1305,9 +1314,6 @@ void ViewShellBase::Implementation::GetSlotState (SfxItemSet& rSet) { } - // Determine the state for the resource. - bState = xConfiguration->hasResource(xResourceId); - // Take the master page mode into account. switch (nItemId) { diff --git a/sd/uiconfig/simpress/toolbar/standardbar.xml b/sd/uiconfig/simpress/toolbar/standardbar.xml index ffc55617f6e5..dd42e6851f91 100644 --- a/sd/uiconfig/simpress/toolbar/standardbar.xml +++ b/sd/uiconfig/simpress/toolbar/standardbar.xml @@ -41,9 +41,6 @@ - - - @@ -65,6 +62,8 @@ + + -- cgit v1.2.3