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: Mike Kaganski <mike.kaganski@collabora.com>
This commit is contained in:
committed by
Mike Kaganski
parent
95b91bafa5
commit
4e4c8a7175
@@ -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 */
|
||||
|
||||
+8
-1
@@ -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); }
|
||||
|
||||
+1
-1
@@ -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/>
|
||||
|
||||
Reference in New Issue
Block a user