diff options
author | Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr> | 2011-06-29 11:07:25 +0200 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr> | 2011-06-30 17:57:18 +0200 |
commit | 29a45a09ba8a21022e105f3d500a027f93a4fca0 (patch) | |
tree | 4092dc7c2663d6abd6f661e193a498cdb743b359 /sw/source/ui | |
parent | 523ff0444022c9f435c93140c7c89fa2c657bb50 (diff) |
n#676858: added new menu entry for headers/footers edit mode
Diffstat (limited to 'sw/source/ui')
-rw-r--r-- | sw/source/ui/shells/textsh1.cxx | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/sw/source/ui/shells/textsh1.cxx b/sw/source/ui/shells/textsh1.cxx index f1c8c6ff9e06..a7ff27894579 100644 --- a/sw/source/ui/shells/textsh1.cxx +++ b/sw/source/ui/shells/textsh1.cxx @@ -819,6 +819,9 @@ void SwTextShell::Execute(SfxRequest &rReq) } } break; + case FN_EDIT_HEADER_FOOTER: + rWrtSh.ToggleHeaderFooterEdit(); + break; case SID_ATTR_BRUSH_CHAR : case SID_ATTR_CHAR_SCALEWIDTH : case SID_ATTR_CHAR_ROTATED : @@ -1565,6 +1568,24 @@ void SwTextShell::GetState( SfxItemSet &rSet ) } } break; + case FN_EDIT_HEADER_FOOTER: + { + SfxBoolItem aBool( nWhich, rSh.IsHeaderFooterEdit() ); + rSet.Put( aBool ); + + bool bHasHeaderFooter = false; + for ( sal_uInt16 i = 0; !bHasHeaderFooter && i < rSh.GetPageDescCnt(); i++ ) + { + const SwPageDesc& rPageDesc = rSh.GetPageDesc( i ); + bHasHeaderFooter = rPageDesc.GetMaster().GetHeader().IsActive() || + rPageDesc.GetMaster().GetFooter().IsActive() || + rPageDesc.GetLeft().GetHeader().IsActive() || + rPageDesc.GetLeft().GetFooter().IsActive(); + } + if ( !bHasHeaderFooter ) + rSet.DisableItem( nWhich ); + } + break; case SID_TRANSLITERATE_HALFWIDTH: case SID_TRANSLITERATE_FULLWIDTH: case SID_TRANSLITERATE_HIRAGANA: @@ -1698,7 +1719,7 @@ void SwTextShell::ChangeHeaderOrFooter( { if( (bShowWarning && !bOn && GetActiveView() && GetActiveView() == &GetView() && (bHeader && aDesc.GetMaster().GetHeader().IsActive())) || - (!bHeader && aDesc.GetMaster().GetFooter().IsActive())) + (!bHeader && aDesc.GetMaster().GetFooter().IsActive()) ) { bShowWarning = sal_False; //Actions have to be closed while the dialog is showing @@ -1732,9 +1753,13 @@ void SwTextShell::ChangeHeaderOrFooter( rSh.ChgPageDesc( nFrom, aDesc ); if( !bCrsrSet && bOn ) + { + if ( !rSh.IsHeaderFooterEdit() ) + rSh.ToggleHeaderFooterEdit(); bCrsrSet = rSh.SetCrsrInHdFt( !rStyleName.Len() ? USHRT_MAX : nFrom, bHeader ); + } } } } |