summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilippe Jung <phil.jung@free.fr>2016-01-18 13:25:41 +0100
committerDavid Tardon <dtardon@redhat.com>2016-01-19 10:53:58 +0000
commitbef97e1e067b4e0ef48c0ea8966c8107a0d2b6d4 (patch)
tree36269d8cf07aaa2ccedb29afead53119ca31c39d
parent120349fc4f9259fefd38e9b2fc0fc50bae035f56 (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> (cherry picked from commit 87084436d39662636e92dd03a5161293efb80948) Reviewed-on: https://gerrit.libreoffice.org/21584 Reviewed-by: Samuel Mehrbrodt <Samuel.Mehrbrodt@cib.de> Reviewed-by: David Tardon <dtardon@redhat.com> Tested-by: David Tardon <dtardon@redhat.com>
-rw-r--r--officecfg/registry/schema/org/openoffice/Office/Impress.xcs10
-rw-r--r--sd/source/ui/app/optsitem.cxx13
-rw-r--r--sd/source/ui/inc/optsitem.hxx4
-rw-r--r--sd/source/ui/view/ViewShellBase.cxx20
-rw-r--r--sd/uiconfig/simpress/toolbar/standardbar.xml5
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 @@
</info>
<value>150</value>
</prop>
+ <prop oor:name="TabBarVisible" oor:type="xs:boolean" oor:nillable="false">
+ <!-- OldPath: -->
+ <!-- OldLocation: -->
+ <!-- UIHints: is the TabBar visible on top of the slide panel -->
+ <info>
+ <desc>Indicates whether the tab bar should be visible on top of the slide panel.</desc>
+ <label>Tab bar is visible</label>
+ </info>
+ <value>false</value>
+ </prop>
<group oor:name="TextObject">
<info>
<desc>Contains text editing related configuration items.</desc>
diff --git a/sd/source/ui/app/optsitem.cxx b/sd/source/ui/app/optsitem.cxx
index 628453b1e74c..ca0d104f0171 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 0d9ec215e6a1..aa1904ec25f8 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 30d881cdea5a..90e88207e954 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>
@@ -368,8 +370,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
@@ -637,9 +641,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:
@@ -1306,9 +1315,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 64a42e8a567f..1a0c99b59cb4 100644
--- a/sd/uiconfig/simpress/toolbar/standardbar.xml
+++ b/sd/uiconfig/simpress/toolbar/standardbar.xml
@@ -41,9 +41,6 @@
<toolbar:toolbaritem xlink:href=".uno:Undo"/>
<toolbar:toolbaritem xlink:href=".uno:Redo"/>
<toolbar:toolbarseparator/>
- <toolbar:toolbaritem xlink:href=".uno:DisplayMode"/>
- <toolbar:toolbaritem xlink:href=".uno:ToggleTabBarVisibility" toolbar:visible="false"/>
- <toolbar:toolbarseparator/>
<toolbar:toolbaritem xlink:href=".uno:SearchDialog"/>
<toolbar:toolbaritem xlink:href=".uno:SpellDialog"/>
<toolbar:toolbaritem xlink:href=".uno:SpellOnline" toolbar:visible="false"/>
@@ -64,6 +61,8 @@
<toolbar:toolbaritem xlink:href=".uno:HelplinesMove" toolbar:visible="false"/>
<toolbar:toolbaritem xlink:href=".uno:AnimationEffects"/>
<toolbar:toolbarseparator/>
+ <toolbar:toolbaritem xlink:href=".uno:DisplayMode"/>
+ <toolbar:toolbaritem xlink:href=".uno:ToggleTabBarVisibility"/>
<toolbar:toolbaritem xlink:href=".uno:PageSetup"/>
<toolbar:toolbaritem xlink:href=".uno:SlideMasterPage"/>
<toolbar:toolbarseparator/>