sw/inc/undobj.hxx | 23 +++++++++++++---------- sw/source/core/undo/undel.cxx | 6 +++--- sw/source/core/undo/undobj.cxx | 22 +++++++++++----------- sw/source/core/undo/unmove.cxx | 4 ++-- 4 files changed, 29 insertions(+), 26 deletions(-)
New commits: commit b5a1f7cbf9c83f7b1cc6ea103047147ce3d63fee Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Tue Nov 29 13:08:34 2016 +0200 convert DelContentType to o3tl::typed_flags Change-Id: I2c94b28e4c95c22c05ba7aed8e413cc7f6b70874 Reviewed-on: https://gerrit.libreoffice.org/31358 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sw/inc/undobj.hxx b/sw/inc/undobj.hxx index ef154ca..fedc567 100644 --- a/sw/inc/undobj.hxx +++ b/sw/inc/undobj.hxx @@ -26,6 +26,7 @@ #include <tools/solar.h> #include <SwRewriter.hxx> #include <swundo.hxx> +#include <o3tl/typed_flags_set.hxx> class SwHistory; class SwIndex; @@ -125,21 +126,23 @@ public: static bool HasHiddenRedlines( const SwRedlineSaveDatas& rSData ); }; -typedef sal_uInt16 DelContentType; -namespace nsDelContentType +enum class DelContentType : sal_uInt16 { - const DelContentType DELCNT_FTN = 0x01; - const DelContentType DELCNT_FLY = 0x02; - const DelContentType DELCNT_TOC = 0x04; - const DelContentType DELCNT_BKM = 0x08; - const DelContentType DELCNT_ALL = 0x0F; - const DelContentType DELCNT_CHKNOCNTNT = 0x80; + Ftn = 0x01, + Fly = 0x02, + Toc = 0x04, + Bkm = 0x08, + AllMask = 0x0F, + CheckNoCntnt = 0x80, +}; +namespace o3tl { + template<> struct typed_flags<DelContentType> : is_typed_flags<DelContentType, 0x8f> {}; } /// will DelContentIndex destroy a frame anchored at character at rAnchorPos? bool IsDestroyFrameAnchoredAtChar(SwPosition const & rAnchorPos, SwPosition const & rStart, SwPosition const & rEnd, const SwDoc* doc, - DelContentType const nDelContentType = nsDelContentType::DELCNT_ALL); + DelContentType const nDelContentType = DelContentType::AllMask); // This class has to be inherited into an Undo-object if it saves content // for Redo/Undo... @@ -171,7 +174,7 @@ protected: // Before moving stuff into UndoNodes-Array care has to be taken that // the content-bearing attributes are removed from the nodes-array. void DelContentIndex( const SwPosition& pMark, const SwPosition& pPoint, - DelContentType nDelContentType = nsDelContentType::DELCNT_ALL ); + DelContentType nDelContentType = DelContentType::AllMask ); public: SwUndoSaveContent(); diff --git a/sw/source/core/undo/undel.cxx b/sw/source/core/undo/undel.cxx index 073ed50..2b91ad4 100644 --- a/sw/source/core/undo/undel.cxx +++ b/sw/source/core/undo/undel.cxx @@ -147,7 +147,7 @@ SwUndoDelete::SwUndoDelete( { OSL_ENSURE( rPam.HasMark(), "PaM ohne Mark" ); DelContentIndex( *rPam.GetMark(), *rPam.GetPoint(), - DelContentType(nsDelContentType::DELCNT_ALL | nsDelContentType::DELCNT_CHKNOCNTNT) ); + DelContentType(DelContentType::AllMask | DelContentType::CheckNoCntnt) ); ::sw::UndoGuard const undoGuard(pDoc->GetIDocumentUndoRedo()); DelBookmarks(pStt->nNode, pEnd->nNode); @@ -990,7 +990,7 @@ void SwUndoDelete::RedoImpl(::sw::UndoRedoContext & rContext) { OSL_ENSURE( rPam.HasMark(), "PaM without Mark" ); DelContentIndex( *rPam.GetMark(), *rPam.GetPoint(), - DelContentType(nsDelContentType::DELCNT_ALL | nsDelContentType::DELCNT_CHKNOCNTNT) ); + DelContentType(DelContentType::AllMask | DelContentType::CheckNoCntnt) ); DelBookmarks(rPam.GetMark()->nNode, rPam.GetPoint()->nNode); } @@ -1006,7 +1006,7 @@ void SwUndoDelete::RedoImpl(::sw::UndoRedoContext & rContext) { OSL_ENSURE( rPam.HasMark(), "PaM without Mark" ); DelContentIndex( *rPam.GetMark(), *rPam.GetPoint(), - DelContentType(nsDelContentType::DELCNT_ALL | nsDelContentType::DELCNT_CHKNOCNTNT) ); + DelContentType(DelContentType::AllMask | DelContentType::CheckNoCntnt) ); DelBookmarks( rPam.GetMark()->nNode, rPam.GetPoint()->nNode ); } diff --git a/sw/source/core/undo/undobj.cxx b/sw/source/core/undo/undobj.cxx index e630254..5d0dfb2 100644 --- a/sw/source/core/undo/undobj.cxx +++ b/sw/source/core/undo/undobj.cxx @@ -471,7 +471,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, ::sw::UndoGuard const undoGuard(pDoc->GetIDocumentUndoRedo()); // 1. Footnotes - if( nsDelContentType::DELCNT_FTN & nDelContentType ) + if( DelContentType::Ftn & nDelContentType ) { SwFootnoteIdxs& rFootnoteArr = pDoc->GetFootnoteIdxs(); if( !rFootnoteArr.empty() ) @@ -487,7 +487,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, <= pEnd->nNode.GetIndex() ) { const sal_Int32 nFootnoteSttIdx = pSrch->GetStart(); - if( (nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType ) + if( (DelContentType::CheckNoCntnt & nDelContentType ) ? (&pEnd->nNode.GetNode() == pFootnoteNd ) : (( &pStt->nNode.GetNode() == pFootnoteNd && pStt->nContent.GetIndex() > nFootnoteSttIdx) || @@ -517,7 +517,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, GetTextNode())->GetIndex() >= pStt->nNode.GetIndex() ) { const sal_Int32 nFootnoteSttIdx = pSrch->GetStart(); - if( !(nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType) && ( + if( !(DelContentType::CheckNoCntnt & nDelContentType) && ( ( &pStt->nNode.GetNode() == pFootnoteNd && pStt->nContent.GetIndex() > nFootnoteSttIdx ) || ( &pEnd->nNode.GetNode() == pFootnoteNd && @@ -541,7 +541,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, } // 2. Flys - if( nsDelContentType::DELCNT_FLY & nDelContentType ) + if( DelContentType::Fly & nDelContentType ) { sal_uInt16 nChainInsPos = pHistory ? pHistory->Count() : 0; const SwFrameFormats& rSpzArr = *pDoc->GetSpzFrameFormats(); @@ -561,7 +561,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, { case FLY_AS_CHAR: if( nullptr != (pAPos = pAnchor->GetContentAnchor() ) && - (( nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType ) + (( DelContentType::CheckNoCntnt & nDelContentType ) ? ( pStt->nNode <= pAPos->nNode && pAPos->nNode < pEnd->nNode ) : ( *pStt <= *pAPos && *pAPos < *pEnd )) ) @@ -584,7 +584,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, if( pAPos ) { bool bTmp; - if( nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType ) + if( DelContentType::CheckNoCntnt & nDelContentType ) bTmp = pStt->nNode <= pAPos->nNode && pAPos->nNode < pEnd->nNode; else { @@ -602,7 +602,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, pHistory = new SwHistory; // Moving the anchor? - if( !( nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType ) && + if( !( DelContentType::CheckNoCntnt & nDelContentType ) && ( rPoint.nNode.GetIndex() == pAPos->nNode.GetIndex() ) ) { // Do not try to move the anchor to a table! @@ -638,7 +638,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, pHistory->Add( *static_cast<SwFlyFrameFormat *>(pFormat), nChainInsPos ); n = n >= rSpzArr.size() ? rSpzArr.size() : n+1; } - else if( !( nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType ) ) + else if( !( DelContentType::CheckNoCntnt & nDelContentType ) ) { if( *pStt <= *pAPos && *pAPos < *pEnd ) { @@ -677,7 +677,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, } // 3. Bookmarks - if( nsDelContentType::DELCNT_BKM & nDelContentType ) + if( DelContentType::Bkm & nDelContentType ) { IDocumentMarkAccess* const pMarkAccess = pDoc->getIDocumentMarkAccess(); if( pMarkAccess->getAllMarksCount() ) @@ -690,7 +690,7 @@ void SwUndoSaveContent::DelContentIndex( const SwPosition& rMark, bool bSaveOtherPos = false; const ::sw::mark::IMark* pBkmk = (pMarkAccess->getAllMarksBegin() + n)->get(); - if( nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType ) + if( DelContentType::CheckNoCntnt & nDelContentType ) { if ( pStt->nNode <= pBkmk->GetMarkPos().nNode && pBkmk->GetMarkPos().nNode < pEnd->nNode ) @@ -1155,7 +1155,7 @@ bool IsDestroyFrameAnchoredAtChar(SwPosition const & rAnchorPos, // - anchored in start of the selection with "CheckNoContent" // - anchored in start of sel. and the selection start at pos 0 return inSelection - && ( (nsDelContentType::DELCNT_CHKNOCNTNT & nDelContentType) + && ( (DelContentType::CheckNoCntnt & nDelContentType) || (rStart.nNode < rAnchorPos.nNode) || !rStart.nContent.GetIndex() ); diff --git a/sw/source/core/undo/unmove.cxx b/sw/source/core/undo/unmove.cxx index c833359..a2c0ffb 100644 --- a/sw/source/core/undo/unmove.cxx +++ b/sw/source/core/undo/unmove.cxx @@ -129,7 +129,7 @@ SwUndoMove::SwUndoMove( SwDoc* pDoc, const SwNodeRange& rRg, if( nullptr != ( pCNd = aMkPos.nNode.GetNode().GetContentNode() )) aMkPos.nContent.Assign( pCNd, 0 ); - DelContentIndex( aMkPos, aPtPos, nsDelContentType::DELCNT_FTN ); + DelContentIndex( aMkPos, aPtPos, DelContentType::Ftn ); if( pHistory && !pHistory->Count() ) DELETEZ( pHistory ); @@ -338,7 +338,7 @@ void SwUndoMove::DelFootnote( const SwPaM& rRange ) { // delete all footnotes since they are undesired there DelContentIndex( *rRange.GetMark(), *rRange.GetPoint(), - nsDelContentType::DELCNT_FTN ); + DelContentType::Ftn ); if( pHistory && !pHistory->Count() ) { _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits