diff options
author | Philippe Jung <phil.jung@free.fr> | 2016-01-18 13:25:41 +0100 |
---|---|---|
committer | Katarina Behrens <Katarina.Behrens@cib.de> | 2016-01-18 15:10:31 +0000 |
commit | 87084436d39662636e92dd03a5161293efb80948 (patch) | |
tree | e5f9429ae2734bc029528d0ebd17c2ca72501637 /sd/source | |
parent | ff163f16d6fd12b5b93d8fd87cf7aac449e014f5 (diff) |
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 <ci@libreoffice.org>
Reviewed-by: Katarina Behrens <Katarina.Behrens@cib.de>
Diffstat (limited to 'sd/source')
-rw-r--r-- | sd/source/ui/app/optsitem.cxx | 13 | ||||
-rw-r--r-- | sd/source/ui/inc/optsitem.hxx | 4 | ||||
-rw-r--r-- | sd/source/ui/view/ViewShellBase.cxx | 20 |
3 files changed, 29 insertions, 8 deletions
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<sal_Bool const *>(pValues[ 25 ].getValue()) ); + + if( pValues[26].hasValue() ) { + SetTabBarVisible( *static_cast<sal_Bool const *>(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 <com/sun/star/frame/XFrame.hpp> #include <com/sun/star/awt/XWindow.hpp> @@ -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<ViewShellManager> 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) { |