diff options
author | Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr> | 2011-10-05 17:33:05 +0200 |
---|---|---|
committer | Cédric Bosdonnat <cedric.bosdonnat.ooo@free.fr> | 2011-10-05 17:34:04 +0200 |
commit | 86456335a32a630547e774f23dc34fe567660497 (patch) | |
tree | 7dccb7f61fc5387489a68dc455aece927fc61ff7 /sw/source/ui | |
parent | 3daddf9e013db9220c1c49861e1e18c9e3c16314 (diff) |
Page Break: implement the break before page case
Diffstat (limited to 'sw/source/ui')
-rw-r--r-- | sw/source/ui/docvw/PageBreakWin.cxx | 24 | ||||
-rw-r--r-- | sw/source/ui/shells/tabsh.cxx | 3 |
2 files changed, 22 insertions, 5 deletions
diff --git a/sw/source/ui/docvw/PageBreakWin.cxx b/sw/source/ui/docvw/PageBreakWin.cxx index 2b70887ad087..170ccce84e72 100644 --- a/sw/source/ui/docvw/PageBreakWin.cxx +++ b/sw/source/ui/docvw/PageBreakWin.cxx @@ -244,10 +244,25 @@ void SwPageBreakWin::Select( ) { case FN_PAGEBREAK_EDIT: { - // TODO Handle the break on a table case - SfxUInt16Item aItem( GetEditWin()->GetView().GetPool( ).GetWhich( SID_PARA_DLG ), TP_PARA_EXT ); - GetEditWin()->GetView().GetViewFrame()->GetDispatcher()->Execute( - SID_PARA_DLG, SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD, &aItem, NULL ); + const SwLayoutFrm* pBodyFrm = static_cast< const SwLayoutFrm* >( GetPageFrame()->Lower() ); + while ( pBodyFrm && !pBodyFrm->IsBodyFrm() ) + pBodyFrm = static_cast< const SwLayoutFrm* >( pBodyFrm->GetNext() ); + + if ( pBodyFrm ) + { + if ( pBodyFrm->Lower()->IsTabFrm() ) + { + SfxUInt16Item aItem( GetEditWin()->GetView().GetPool( ).GetWhich( FN_FORMAT_TABLE_DLG ), TP_TABLE_TEXTFLOW ); + GetEditWin()->GetView().GetViewFrame()->GetDispatcher()->Execute( + FN_FORMAT_TABLE_DLG, SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD, &aItem, NULL ); + } + else + { + SfxUInt16Item aItem( GetEditWin()->GetView().GetPool( ).GetWhich( SID_PARA_DLG ), TP_PARA_EXT ); + GetEditWin()->GetView().GetViewFrame()->GetDispatcher()->Execute( + SID_PARA_DLG, SFX_CALLMODE_SYNCHRON|SFX_CALLMODE_RECORD, &aItem, NULL ); + } + } } break; case FN_PAGEBREAK_DELETE: @@ -258,7 +273,6 @@ void SwPageBreakWin::Select( ) if ( pBodyFrm ) { - // TODO Handle the break before a table case SwCntntFrm *pCnt = const_cast< SwCntntFrm* >( pBodyFrm->ContainsCntnt() ); sal_uInt16 nWhich = pCnt->GetAttrSet()->GetPool()->GetWhich( SID_ATTR_PARA_PAGEBREAK ); SwCntntNode* pNd = pCnt->GetNode(); diff --git a/sw/source/ui/shells/tabsh.cxx b/sw/source/ui/shells/tabsh.cxx index bfc441a22d5e..44500b80fdac 100644 --- a/sw/source/ui/shells/tabsh.cxx +++ b/sw/source/ui/shells/tabsh.cxx @@ -596,6 +596,9 @@ void SwTableShell::Execute(SfxRequest &rReq) pDlg = pFact->CreateSwTableTabDlg( GetView().GetWindow(), GetPool(), &aCoreSet, &rSh, DLG_FORMAT_TABLE ); OSL_ENSURE(pDlg, "Dialogdiet fail!"); + + if( pItem ) + pDlg->SetCurPageId( ((SfxUInt16Item *)pItem)->GetValue() ); } aCoreSet.Put(SfxUInt16Item(SID_HTML_MODE, ::GetHtmlMode(GetView().GetDocShell()))); rSh.GetTblAttr(aCoreSet); |