Kaydet (Commit) 4e4c8a71 authored tarafından heiko tietze's avatar heiko tietze Kaydeden (comit) Mike Kaganski

tdf#118621 - Optionally disable floating header/footer menu

UNO command UseHeaderFooterMenu introduced

Change-Id: I4be009e08bc66dc675c7c903552c6376e22639f1
Reviewed-on: https://gerrit.libreoffice.org/61706
Tested-by: Jenkins
Reviewed-by: 's avatarMike Kaganski <mike.kaganski@collabora.com>
üst 95b91baf
......@@ -271,6 +271,13 @@ published service ViewSettings
@since LibreOffice 6.1
*/
[optional, property] boolean ShowInlineTooltips;
/** If this property is `TRUE`, the advanced menu for header/footer is shown
@since LibreOffice 6.2
*/
[optional, property] boolean UseHeaderFooterMenu;
};
}; }; }; };
......
......@@ -353,6 +353,17 @@
<value>1</value>
</prop>
</node>
<node oor:name=".uno:UseHeaderFooterMenu" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Use header/footer menu</value>
</prop>
<prop oor:name="TooltipLabel" oor:type="xs:string">
<value xml:lang="en-US">Use the advanced popup menu to create header/footer on the fly</value>
</prop>
<prop oor:name="Properties" oor:type="xs:int">
<value>1</value>
</prop>
</node>
<node oor:name=".uno:GotoPage" oor:op="replace">
<prop oor:name="Label" oor:type="xs:string">
<value xml:lang="en-US">Go t~o Page...</value>
......
......@@ -1063,6 +1063,14 @@
</info>
<value>true</value>
</prop>
<prop oor:name="UseHeaderFooterMenu" oor:type="xs:boolean" oor:nillable="false">
<!-- UIHints: Tools - Options - Text document - Contents - [Section] Display -->
<info>
<desc>Enables the writer to use the advanced menu on headers/footers.</desc>
<label>Use advanced header/footer menu</label>
</info>
<value>true</value>
</prop>
</group>
<group oor:name="NonprintingCharacter">
<info>
......
......@@ -181,6 +181,7 @@
#define FN_SCROLL_NEXT (FN_VIEW + 58) /* uno:ScrollToNext */
#define FN_VIEW_HIDE_WHITESPACE (FN_VIEW + 59) /* Hide header, footer, and pagebreak */
#define FN_SHOW_INLINETOOLTIPS (FN_VIEW + 60) /* Show tooltips for tracked changes */
#define FN_USE_HEADERFOOTERMENU (FN_VIEW + 61) /* Show advanced header/footer menu */
// Region: Insert
#define FN_INSERT_BOOKMARK (FN_INSERT + 2 ) /* Bookmark */
......
......@@ -35,6 +35,7 @@ class SwDocShell;
namespace svtools{ class ColorConfig;}
enum class ViewOptFlags1 {
UseHeaderFooterMenu = 0x00000001,
Tab = 0x00000002,
Blank = 0x00000004,
HardBlank = 0x00000008,
......@@ -62,7 +63,7 @@ enum class ViewOptFlags1 {
Pageback = 0x40000000
};
namespace o3tl {
template<> struct typed_flags<ViewOptFlags1> : is_typed_flags<ViewOptFlags1, 0x77dfcdfe> {};
template<> struct typed_flags<ViewOptFlags1> : is_typed_flags<ViewOptFlags1, 0x77dfcdff> {};
}
enum class ViewOptCoreFlags2 {
......@@ -267,6 +268,12 @@ public:
void SetShowInlineTooltips( bool b )
{ b ? (m_nCoreOptions |= ViewOptFlags1::ShowInlineTooltips ) : ( m_nCoreOptions &= ~ViewOptFlags1::ShowInlineTooltips); }
//show/hide interactive header/footer on top/bootom of pages
bool IsUseHeaderFooterMenu() const
{ return bool(m_nCoreOptions & ViewOptFlags1::UseHeaderFooterMenu ); }
void SetUseHeaderFooterMenu( bool b )
{ b ? (m_nCoreOptions |= ViewOptFlags1::UseHeaderFooterMenu ) : ( m_nCoreOptions &= ~ViewOptFlags1::UseHeaderFooterMenu); }
bool IsShowHiddenChar(bool bHard = false) const
{ return !m_bReadonly && (m_nCoreOptions & ViewOptFlags1::CharHidden) &&
((m_nCoreOptions & ViewOptFlags1::ViewMetachars)||bHard); }
......
......@@ -559,7 +559,7 @@ public:
/// Acts both for headers / footers, depending on the bShow(Header|Footer)Separator flags
bool IsHeaderFooterEdit() const { return mbHeaderFooterEdit; }
bool IsShowHeaderFooterSeparator( FrameControlType eControl ) { return (eControl == Header)? mbShowHeaderSeparator: mbShowFooterSeparator; }
virtual void SetShowHeaderFooterSeparator( FrameControlType eControl, bool bShow ) { if ( eControl == Header ) mbShowHeaderSeparator = bShow; else mbShowFooterSeparator = bShow; }
virtual void SetShowHeaderFooterSeparator( FrameControlType eControl, bool bShow );
bool IsSelectAll() { return mbSelectAll; }
void setOutputToWindow(bool bOutputToWindow);
......
......@@ -915,5 +915,13 @@ interface BaseTextEditView
MenuConfig , AccelConfig , ToolBoxConfig ;
]
FN_USE_HEADERFOOTERMENU
[
ExecMethod = ExecViewOptions ;
StateMethod = StateViewOptions ;
Export = FALSE;
MenuConfig , AccelConfig , ToolBoxConfig ;
]
}
......@@ -7684,3 +7684,20 @@ SfxBoolItem ShowInlineTooltips FN_SHOW_INLINETOOLTIPS
ToolBoxConfig = TRUE,
GroupId = SfxGroupId::View;
]
SfxBoolItem UseHeaderFooterMenu FN_USE_HEADERFOOTERMENU
()
[
AutoUpdate = FALSE,
FastCall = FALSE,
ReadOnlyDoc = TRUE,
Toggle = TRUE,
Container = FALSE,
RecordAbsolute = FALSE,
RecordPerSet;
AccelConfig = TRUE,
MenuConfig = TRUE,
ToolBoxConfig = TRUE,
GroupId = SfxGroupId::View;
]
......@@ -100,6 +100,18 @@ static bool bInSizeNotify = false;
using namespace ::com::sun::star;
void SwViewShell::SetShowHeaderFooterSeparator( FrameControlType eControl, bool bShow ) {
//tdf#118621 - Optionally disable floating header/footer menu
if ( bShow )
bShow = GetViewOptions()->IsUseHeaderFooterMenu();
if ( eControl == Header )
mbShowHeaderSeparator = bShow;
else
mbShowFooterSeparator = bShow;
}
void SwViewShell::ToggleHeaderFooterEdit()
{
mbHeaderFooterEdit = !mbHeaderFooterEdit;
......
......@@ -325,7 +325,10 @@ void SwView::StateViewOptions(SfxItemSet &rSet)
break;
case FN_SHOW_INLINETOOLTIPS:
aBool.SetValue( pOpt->IsShowInlineTooltips() );
break;
case FN_USE_HEADERFOOTERMENU:
aBool.SetValue( pOpt->IsUseHeaderFooterMenu() );
break;
}
if( nWhich )
......@@ -548,6 +551,13 @@ void SwView::ExecViewOptions(SfxRequest &rReq)
pOpt->SetShowInlineTooltips( bFlag );
break;
case FN_USE_HEADERFOOTERMENU:
if( STATE_TOGGLE == eState )
bFlag = !pOpt->IsUseHeaderFooterMenu();
pOpt->SetUseHeaderFooterMenu( bFlag );
break;
default:
OSL_FAIL("wrong request method");
return;
......
......@@ -90,7 +90,8 @@ enum SwViewSettingsPropertyHandles
HANDLE_VIEWSET_VERT_RULER_METRIC,
HANDLE_VIEWSET_SCROLLBAR_TIPS,
HANDLE_VIEWSET_INLINECHANGES_TIPS,
HANDLE_VIEWSET_HIDE_WHITESPACE
HANDLE_VIEWSET_HIDE_WHITESPACE,
HANDLE_VIEWSET_USE_HEADERFOOTERMENU,
};
enum SwPrintSettingsPropertyHandles
......@@ -126,6 +127,7 @@ static ChainablePropertySetInfo * lcl_createViewSettingsInfo()
{ OUString( "IsVertRulerRightAligned"),HANDLE_VIEWSET_VRULER_RIGHT , cppu::UnoType<bool>::get(), PROPERTY_NONE},
{ OUString( "ShowContentTips" ), HANDLE_VIEWSET_SHOW_CONTENT_TIPS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
{ OUString( "ShowInlineTooltips" ), HANDLE_VIEWSET_INLINECHANGES_TIPS , cppu::UnoType<bool>::get(), PROPERTY_NONE},
{ OUString( "UseHeaderFooterMenu" ), HANDLE_VIEWSET_USE_HEADERFOOTERMENU , cppu::UnoType<bool>::get(), PROPERTY_NONE},
{ OUString( "RasterResolutionX"), HANDLE_VIEWSET_RASTER_RESOLUTION_X, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
{ OUString( "RasterResolutionY"), HANDLE_VIEWSET_RASTER_RESOLUTION_Y, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
{ OUString( "RasterSubdivisionX"), HANDLE_VIEWSET_RASTER_SUBDIVISION_X, cppu::UnoType<sal_Int32>::get(), PROPERTY_NONE},
......@@ -594,6 +596,7 @@ void SwXViewSettings::_setSingleValue( const comphelper::PropertyInfo & rInfo, c
case HANDLE_VIEWSET_IS_SNAP_TO_RASTER : mpViewOption->SetSnap(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_SCROLLBAR_TIPS : mpViewOption->SetShowScrollBarTips(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_INLINECHANGES_TIPS : mpViewOption->SetShowInlineTooltips(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_USE_HEADERFOOTERMENU : mpViewOption->SetUseHeaderFooterMenu(*o3tl::doAccess<bool>(rValue)); break;
case HANDLE_VIEWSET_RASTER_RESOLUTION_X :
{
sal_Int32 nTmp = 0;
......
......@@ -336,6 +336,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:InsertPageHeader"/>
<menu:menuitem menu:id=".uno:InsertPageFooter"/>
<menu:menuitem menu:id=".uno:UseHeaderFooterMenu"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
......@@ -336,6 +336,7 @@
<menu:menupopup>
<menu:menuitem menu:id=".uno:InsertPageHeader"/>
<menu:menuitem menu:id=".uno:InsertPageFooter"/>
<menu:menuitem menu:id=".uno:UseHeaderFooterMenu"/>
</menu:menupopup>
</menu:menu>
<menu:menuseparator/>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment