diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-12 13:38:31 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-13 08:48:23 +0200 |
commit | 890d6790715c4c3f3565b476d538643f04dc6936 (patch) | |
tree | 068639197df4994b2025cba2284686829a2aea1d /sw | |
parent | 5b6b0bb47aae0dfafb09f4ccf794a921e3717055 (diff) |
convert TableChgWidthHeightType to o3tl::typed_flags
Change-Id: I9009f3302f4d117744d80f8816ddd177bae6639d
Reviewed-on: https://gerrit.libreoffice.org/36460
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sw')
-rw-r--r-- | sw/inc/doc.hxx | 2 | ||||
-rw-r--r-- | sw/inc/fesh.hxx | 2 | ||||
-rw-r--r-- | sw/inc/swtable.hxx | 4 | ||||
-rw-r--r-- | sw/inc/tblenum.hxx | 41 | ||||
-rw-r--r-- | sw/source/core/doc/tblrwcl.cxx | 58 | ||||
-rw-r--r-- | sw/source/core/docnode/ndtbl.cxx | 25 | ||||
-rw-r--r-- | sw/source/core/frmedt/fetab.cxx | 42 | ||||
-rw-r--r-- | sw/source/core/inc/UndoTable.hxx | 5 | ||||
-rw-r--r-- | sw/source/core/undo/untbl.cxx | 29 | ||||
-rw-r--r-- | sw/source/uibase/docvw/edtwin.cxx | 54 |
10 files changed, 136 insertions, 126 deletions
diff --git a/sw/inc/doc.hxx b/sw/inc/doc.hxx index 6fc96f312452..a285846cd63a 100644 --- a/sw/inc/doc.hxx +++ b/sw/inc/doc.hxx @@ -1251,7 +1251,7 @@ public: void AppendUndoForInsertFromDB( const SwPaM& rPam, bool bIsTable ); - bool SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType, + bool SetColRowWidthHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType, SwTwips nAbsDiff, SwTwips nRelDiff ); SwTableBoxFormat* MakeTableBoxFormat(); SwTableLineFormat* MakeTableLineFormat(); diff --git a/sw/inc/fesh.hxx b/sw/inc/fesh.hxx index 7b3b50a7a30d..9b8a6d4304e3 100644 --- a/sw/inc/fesh.hxx +++ b/sw/inc/fesh.hxx @@ -729,7 +729,7 @@ public: bool GetTableAutoFormat( SwTableAutoFormat& rGet ); - bool SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff ); + bool SetColRowWidthHeight( TableChgWidthHeightType eType, sal_uInt16 nDiff ); bool GetAutoSum( OUString& rFormula ) const; diff --git a/sw/inc/swtable.hxx b/sw/inc/swtable.hxx index c1e9a50fe82e..e2508ec117ac 100644 --- a/sw/inc/swtable.hxx +++ b/sw/inc/swtable.hxx @@ -344,9 +344,9 @@ public: TableChgMode GetTableChgMode() const { return m_eTableChgMode; } void SetTableChgMode( TableChgMode eMode ) { m_eTableChgMode = eMode; } - bool SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, + bool SetColWidth( SwTableBox& rAktBox, TableChgWidthHeightType eType, SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ); - bool SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, + bool SetRowHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType, SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ); void RegisterToFormat( SwFormat& rFormat ); #ifdef DBG_UTIL diff --git a/sw/inc/tblenum.hxx b/sw/inc/tblenum.hxx index 5e61189c69b2..b5590a6ebc01 100644 --- a/sw/inc/tblenum.hxx +++ b/sw/inc/tblenum.hxx @@ -19,26 +19,33 @@ #ifndef INCLUDED_SW_INC_TBLENUM_HXX #define INCLUDED_SW_INC_TBLENUM_HXX -// For changing table columns/rows widths/heights. -typedef sal_uInt16 TableChgWidthHeightType; +#include <o3tl/typed_flags_set.hxx> -namespace nsTableChgWidthHeightType +// For changing table columns/rows widths/heights. +enum class TableChgWidthHeightType : sal_uInt16 { - const TableChgWidthHeightType WH_COL_LEFT = 0; - const TableChgWidthHeightType WH_COL_RIGHT = 1; - const TableChgWidthHeightType WH_ROW_TOP = 2; - const TableChgWidthHeightType WH_ROW_BOTTOM = 3; - const TableChgWidthHeightType WH_CELL_LEFT = 4; - const TableChgWidthHeightType WH_CELL_RIGHT = 5; - const TableChgWidthHeightType WH_CELL_TOP = 6; - const TableChgWidthHeightType WH_CELL_BOTTOM = 7; + ColLeft = 0, + ColRight = 1, + RowTop = 2, + RowBottom = 3, + CellLeft = 4, + CellRight = 5, + CellTop = 6, + CellBottom = 7, + InvalidPos = 0x0f, - // The following can "or"ed into. - const TableChgWidthHeightType WH_FLAG_INSDEL = 0x4000; // Insert/Del-mode: the Bigger-Flag - // tells what happens: - // bBigger -> box gets removed. - // !bBigger-> box gets inserted. - const TableChgWidthHeightType WH_FLAG_BIGGER = 0x8000; // Box becomes larger -> else smaller. + // The following can be "or"ed in. + InsertDeleteMode = 0x4000, // Insert/Del-mode: the Bigger-Flag + // tells what happens: + // bBigger -> box gets removed. + // !bBigger-> box gets inserted. + BiggerMode = 0x8000, // Box becomes larger -> else smaller. +}; +namespace o3tl { + template<> struct typed_flags<TableChgWidthHeightType> : is_typed_flags<TableChgWidthHeightType, 0xc00f> {}; +} +constexpr TableChgWidthHeightType extractPosition(TableChgWidthHeightType e) { + return static_cast<TableChgWidthHeightType>(static_cast<int>(e) & 0xf); } enum TableChgMode diff --git a/sw/source/core/doc/tblrwcl.cxx b/sw/source/core/doc/tblrwcl.cxx index c0265f338602..8e01cc591e6c 100644 --- a/sw/source/core/doc/tblrwcl.cxx +++ b/sw/source/core/doc/tblrwcl.cxx @@ -107,16 +107,16 @@ struct CR_SetBoxWidth sal_uInt16 nTableWidth, nRemainWidth, nBoxWidth; bool bBigger, bLeft, bSplittBox, bAnyBoxFnd; - CR_SetBoxWidth( sal_uInt16 eType, SwTwips nDif, SwTwips nSid, SwTwips nTableW, + CR_SetBoxWidth( TableChgWidthHeightType eType, SwTwips nDif, SwTwips nSid, SwTwips nTableW, SwTwips nMax, SwTableNode* pTNd ) : pTableNd( pTNd ), pUndo( nullptr ), nDiff( nDif ), nSide( nSid ), nMaxSize( nMax ), nLowerDiff( 0 ), nTableWidth( (sal_uInt16)nTableW ), nRemainWidth( 0 ), nBoxWidth( 0 ), bSplittBox( false ), bAnyBoxFnd( false ) { - bLeft = nsTableChgWidthHeightType::WH_COL_LEFT == ( eType & 0xff ) || - nsTableChgWidthHeightType::WH_CELL_LEFT == ( eType & 0xff ); - bBigger = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_BIGGER ); + bLeft = TableChgWidthHeightType::ColLeft == extractPosition( eType ) || + TableChgWidthHeightType::CellLeft == extractPosition( eType ); + bBigger = bool(eType & TableChgWidthHeightType::BiggerMode ); nMode = pTableNd->GetTable().GetTableChgMode(); } CR_SetBoxWidth( const CR_SetBoxWidth& rCpy ) @@ -201,13 +201,14 @@ struct CR_SetLineHeight sal_uInt16 nLines; bool bBigger, bTop; - CR_SetLineHeight( sal_uInt16 eType, SwTableNode* pTNd ) + CR_SetLineHeight( TableChgWidthHeightType eType, SwTableNode* pTNd ) : pTableNd( pTNd ), pUndo( nullptr ), nMaxSpace( 0 ), nMaxHeight( 0 ), nLines( 0 ) { - bTop = nsTableChgWidthHeightType::WH_ROW_TOP == ( eType & 0xff ) || nsTableChgWidthHeightType::WH_CELL_TOP == ( eType & 0xff ); - bBigger = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_BIGGER ); - if( eType & nsTableChgWidthHeightType::WH_FLAG_INSDEL ) + bTop = TableChgWidthHeightType::RowTop == extractPosition( eType ) || + TableChgWidthHeightType::CellTop == extractPosition( eType ); + bBigger = bool(eType & TableChgWidthHeightType::BiggerMode ); + if( eType & TableChgWidthHeightType::InsertDeleteMode ) bBigger = !bBigger; nMode = pTableNd->GetTable().GetTableChgMode(); } @@ -3381,7 +3382,7 @@ static FndBox_* lcl_SaveInsDelData( CR_SetBoxWidth& rParam, SwUndo** ppUndo, return pFndBox; } -bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, +bool SwTable::SetColWidth( SwTableBox& rAktBox, TableChgWidthHeightType eType, SwTwips nAbsDiff, SwTwips nRelDiff, SwUndo** ppUndo ) { SetHTMLTableLayout( nullptr ); // Delete HTML Layout @@ -3393,9 +3394,9 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, SwTableSortBoxes aTmpLst; // for Undo bool bBigger, bRet = false, - bLeft = nsTableChgWidthHeightType::WH_COL_LEFT == ( eType & 0xff ) || - nsTableChgWidthHeightType::WH_CELL_LEFT == ( eType & 0xff ), - bInsDel = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_INSDEL ); + bLeft = TableChgWidthHeightType::ColLeft == extractPosition( eType ) || + TableChgWidthHeightType::CellLeft == extractPosition( eType ), + bInsDel = bool(eType & TableChgWidthHeightType::InsertDeleteMode ); sal_uLong nBoxIdx = rAktBox.GetSttIdx(); // Get the current Box's edge @@ -3430,10 +3431,10 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, fnOtherBox = lcl_SetOtherBoxWidth; } - switch( eType & 0xff ) + switch( extractPosition(eType) ) { - case nsTableChgWidthHeightType::WH_COL_RIGHT: - case nsTableChgWidthHeightType::WH_COL_LEFT: + case TableChgWidthHeightType::ColRight: + case TableChgWidthHeightType::ColLeft: if( TBLVAR_CHGABS == m_eTableChgMode ) { if( bInsDel ) @@ -3520,7 +3521,7 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, if( aSz.GetWidth() + nRelDiff > USHRT_MAX ) { // Break down to USHRT_MAX / 2 - CR_SetBoxWidth aTmpPara( 0, aSz.GetWidth() / 2, + CR_SetBoxWidth aTmpPara( TableChgWidthHeightType::ColLeft, aSz.GetWidth() / 2, 0, aSz.GetWidth(), aSz.GetWidth(), aParam.pTableNd ); for( size_t nLn = 0; nLn < m_aLines.size(); ++nLn ) ::lcl_AjustLines( m_aLines[ nLn ], aTmpPara ); @@ -3732,8 +3733,8 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, } break; - case nsTableChgWidthHeightType::WH_CELL_RIGHT: - case nsTableChgWidthHeightType::WH_CELL_LEFT: + case TableChgWidthHeightType::CellRight: + case TableChgWidthHeightType::CellLeft: if( TBLVAR_CHGABS == m_eTableChgMode ) { // Then call itself recursively; only with another mode (proportional) @@ -3833,7 +3834,7 @@ bool SwTable::SetColWidth( SwTableBox& rAktBox, sal_uInt16 eType, } } break; - + default: break; } if( xFndBox ) @@ -4113,7 +4114,7 @@ static bool lcl_InsDelSelLine( SwTableLine* pLine, CR_SetLineHeight& rParam, return bRet; } -bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, +bool SwTable::SetRowHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType, SwTwips nAbsDiff, SwTwips nRelDiff,SwUndo** ppUndo ) { SwTableLine* pLine = rAktBox.GetUpper(); @@ -4126,9 +4127,9 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, SwTableSortBoxes aTmpLst; // for Undo bool bBigger, bRet = false, - bTop = nsTableChgWidthHeightType::WH_ROW_TOP == ( eType & 0xff ) || - nsTableChgWidthHeightType::WH_CELL_TOP == ( eType & 0xff ), - bInsDel = 0 != (eType & nsTableChgWidthHeightType::WH_FLAG_INSDEL ); + bTop = TableChgWidthHeightType::RowTop == extractPosition( eType ) || + TableChgWidthHeightType::CellTop == extractPosition( eType ), + bInsDel = bool(eType & TableChgWidthHeightType::InsertDeleteMode ); sal_uInt16 nBaseLinePos = GetTabLines().GetPos( pBaseLine ); sal_uLong nBoxIdx = rAktBox.GetSttIdx(); @@ -4145,10 +4146,10 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, SwTableLines* pLines = &m_aLines; // How do we get to the height? - switch( eType & 0xff ) + switch( extractPosition(eType) ) { - case nsTableChgWidthHeightType::WH_CELL_TOP: - case nsTableChgWidthHeightType::WH_CELL_BOTTOM: + case TableChgWidthHeightType::CellTop: + case TableChgWidthHeightType::CellBottom: if( pLine == pBaseLine ) break; // it doesn't work then! @@ -4158,8 +4159,8 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, pBaseLine = pLine; SAL_FALLTHROUGH; - case nsTableChgWidthHeightType::WH_ROW_TOP: - case nsTableChgWidthHeightType::WH_ROW_BOTTOM: + case TableChgWidthHeightType::RowTop: + case TableChgWidthHeightType::RowBottom: { if( bInsDel && !bBigger ) // By how much does it get higher? { @@ -4328,6 +4329,7 @@ bool SwTable::SetRowHeight( SwTableBox& rAktBox, sal_uInt16 eType, } } break; + default: break; } if( xFndBox ) diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx index 99b8a6acf53b..e3e14cefa74d 100644 --- a/sw/source/core/docnode/ndtbl.cxx +++ b/sw/source/core/docnode/ndtbl.cxx @@ -3980,13 +3980,13 @@ SwTableFormat* SwDoc::FindTableFormatByName( const OUString& rName, bool bAll ) return const_cast<SwTableFormat*>(static_cast<const SwTableFormat*>(pRet)); } -bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType, +bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, TableChgWidthHeightType eType, SwTwips nAbsDiff, SwTwips nRelDiff ) { SwTableNode* pTableNd = const_cast<SwTableNode*>(rAktBox.GetSttNd()->FindTableNode()); SwUndo* pUndo = nullptr; - if( nsTableChgWidthHeightType::WH_FLAG_INSDEL & eType && dynamic_cast<const SwDDETable*>( &pTableNd->GetTable()) != nullptr) + if( (TableChgWidthHeightType::InsertDeleteMode & eType) && dynamic_cast<const SwDDETable*>( &pTableNd->GetTable()) != nullptr) return false; SwTableFormulaUpdate aMsgHint( &pTableNd->GetTable() ); @@ -3995,26 +3995,27 @@ bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType, bool const bUndo(GetIDocumentUndoRedo().DoesUndo()); bool bRet = false; - switch( eType & 0xff ) + switch( extractPosition(eType) ) { - case nsTableChgWidthHeightType::WH_COL_LEFT: - case nsTableChgWidthHeightType::WH_COL_RIGHT: - case nsTableChgWidthHeightType::WH_CELL_LEFT: - case nsTableChgWidthHeightType::WH_CELL_RIGHT: + case TableChgWidthHeightType::ColLeft: + case TableChgWidthHeightType::ColRight: + case TableChgWidthHeightType::CellLeft: + case TableChgWidthHeightType::CellRight: { bRet = pTableNd->GetTable().SetColWidth( rAktBox, eType, nAbsDiff, nRelDiff, (bUndo) ? &pUndo : nullptr ); } break; - case nsTableChgWidthHeightType::WH_ROW_TOP: - case nsTableChgWidthHeightType::WH_ROW_BOTTOM: - case nsTableChgWidthHeightType::WH_CELL_TOP: - case nsTableChgWidthHeightType::WH_CELL_BOTTOM: + case TableChgWidthHeightType::RowTop: + case TableChgWidthHeightType::RowBottom: + case TableChgWidthHeightType::CellTop: + case TableChgWidthHeightType::CellBottom: bRet = pTableNd->GetTable().SetRowHeight( rAktBox, eType, nAbsDiff, nRelDiff, (bUndo) ? &pUndo : nullptr ); break; + default: break; } GetIDocumentUndoRedo().DoUndo(bUndo); // SetColWidth can turn it off @@ -4026,7 +4027,7 @@ bool SwDoc::SetColRowWidthHeight( SwTableBox& rAktBox, sal_uInt16 eType, if( bRet ) { getIDocumentState().SetModified(); - if( nsTableChgWidthHeightType::WH_FLAG_INSDEL & eType ) + if( TableChgWidthHeightType::InsertDeleteMode & eType ) getIDocumentFieldsAccess().SetFieldsDirty( true, nullptr, 0 ); } return bRet; diff --git a/sw/source/core/frmedt/fetab.cxx b/sw/source/core/frmedt/fetab.cxx index 5ac0941053e5..ca1318aed10f 100644 --- a/sw/source/core/frmedt/fetab.cxx +++ b/sw/source/core/frmedt/fetab.cxx @@ -2151,13 +2151,13 @@ static bool lcl_GoTableRow( SwCursorShell* pShell, bool bUp ) } // change a cell width/cell height/column width/row height -bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff ) +bool SwFEShell::SetColRowWidthHeight( TableChgWidthHeightType eType, sal_uInt16 nDiff ) { SwFrame *pFrame = GetCurrFrame(); if( !pFrame || !pFrame->IsInTab() ) return false; - if( nsTableChgWidthHeightType::WH_FLAG_INSDEL & eType && + if( (TableChgWidthHeightType::InsertDeleteMode & eType) && dynamic_cast< const SwDDETable* >(pFrame->ImplFindTabFrame()->GetTable()) != nullptr ) { ErrorHandler::HandleError( ERR_TBLDDECHG_ERROR, @@ -2180,7 +2180,7 @@ bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff ) SwRectFnSet aRectFnSet(pTab); long nPrtWidth = aRectFnSet.GetWidth(pTab->Prt()); if( TBLVAR_CHGABS == pTab->GetTable()->GetTableChgMode() && - ( eType & nsTableChgWidthHeightType::WH_COL_LEFT || eType & nsTableChgWidthHeightType::WH_COL_RIGHT ) && + ( eType & TableChgWidthHeightType::ColLeft || eType & TableChgWidthHeightType::ColRight ) && text::HoriOrientation::NONE == pTab->GetFormat()->GetHoriOrient().GetHoriOrient() && nPrtWidth != rTableFrameSz.GetWidth() ) { @@ -2189,27 +2189,24 @@ bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff ) pTab->GetFormat()->SetFormatAttr( aSz ); } - if( (eType & (nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL)) == - (nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL) ) + if( eType & (TableChgWidthHeightType::BiggerMode | TableChgWidthHeightType::InsertDeleteMode) ) { nDiff = sal_uInt16(aRectFnSet.GetWidth(pFrame->Frame())); // we must move the cursor outside the current cell before // deleting the cells. - TableChgWidthHeightType eTmp = - static_cast<TableChgWidthHeightType>( eType & 0xfff ); - switch( eTmp ) + switch( extractPosition(eType) ) { - case nsTableChgWidthHeightType::WH_ROW_TOP: + case TableChgWidthHeightType::RowTop: lcl_GoTableRow( this, true ); break; - case nsTableChgWidthHeightType::WH_ROW_BOTTOM: + case TableChgWidthHeightType::RowBottom: lcl_GoTableRow( this, false ); break; - case nsTableChgWidthHeightType::WH_COL_LEFT: + case TableChgWidthHeightType::ColLeft: GoPrevCell(); break; - case nsTableChgWidthHeightType::WH_COL_RIGHT: + case TableChgWidthHeightType::ColRight: GoNextCell(); break; default: @@ -2230,29 +2227,30 @@ bool SwFEShell::SetColRowWidthHeight( sal_uInt16 eType, sal_uInt16 nDiff ) pLastCols = nullptr; EndAllActionAndCall(); - if( bRet && (eType & (nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL)) == nsTableChgWidthHeightType::WH_FLAG_INSDEL ) + if( bRet && (eType & (TableChgWidthHeightType::BiggerMode | TableChgWidthHeightType::InsertDeleteMode)) == TableChgWidthHeightType::InsertDeleteMode ) { - switch(eType & ~(nsTableChgWidthHeightType::WH_FLAG_BIGGER | nsTableChgWidthHeightType::WH_FLAG_INSDEL)) + switch(extractPosition(eType)) { - case nsTableChgWidthHeightType::WH_CELL_LEFT: - case nsTableChgWidthHeightType::WH_COL_LEFT: + case TableChgWidthHeightType::CellLeft: + case TableChgWidthHeightType::ColLeft: GoPrevCell(); break; - case nsTableChgWidthHeightType::WH_CELL_RIGHT: - case nsTableChgWidthHeightType::WH_COL_RIGHT: + case TableChgWidthHeightType::CellRight: + case TableChgWidthHeightType::ColRight: GoNextCell(); break; - case nsTableChgWidthHeightType::WH_CELL_TOP: - case nsTableChgWidthHeightType::WH_ROW_TOP: + case TableChgWidthHeightType::CellTop: + case TableChgWidthHeightType::RowTop: lcl_GoTableRow( this, true ); break; - case nsTableChgWidthHeightType::WH_CELL_BOTTOM: - case nsTableChgWidthHeightType::WH_ROW_BOTTOM: + case TableChgWidthHeightType::CellBottom: + case TableChgWidthHeightType::RowBottom: lcl_GoTableRow( this, false ); break; + default: break; } } diff --git a/sw/source/core/inc/UndoTable.hxx b/sw/source/core/inc/UndoTable.hxx index e82812e14f8b..83dab4172198 100644 --- a/sw/source/core/inc/UndoTable.hxx +++ b/sw/source/core/inc/UndoTable.hxx @@ -178,7 +178,8 @@ class SwUndoTableNdsChg : public SwUndo std::unique_ptr<SwUndoSaveSections> m_pDelSects; long nMin, nMax; // for redo of delete column sal_uLong nSttNode, nCurrBox; - sal_uInt16 nCount, nRelDiff, nAbsDiff, nSetColType; + sal_uInt16 nCount, nRelDiff, nAbsDiff; + TableChgWidthHeightType nSetColType; bool bFlag; bool bSameHeight; // only used for SplitRow @@ -207,7 +208,7 @@ public: void SaveSection( SwStartNode* pSttNd ); void ReNewBoxes( const SwSelBoxes& rBoxes ); - void SetColWidthParam( sal_uLong nBoxIdx, sal_uInt16 nMode, sal_uInt16 nType, + void SetColWidthParam( sal_uLong nBoxIdx, sal_uInt16 nMode, TableChgWidthHeightType nType, SwTwips nAbsDif, SwTwips nRelDif ) { nCurrBox = nBoxIdx; diff --git a/sw/source/core/undo/untbl.cxx b/sw/source/core/undo/untbl.cxx index 03de7f8b5de7..b3f1a7a87a3c 100644 --- a/sw/source/core/undo/untbl.cxx +++ b/sw/source/core/undo/untbl.cxx @@ -1482,7 +1482,7 @@ SwUndoTableNdsChg::SwUndoTableNdsChg( SwUndoId nAction, nMin( nMn ), nMax( nMx ), nSttNode( rTableNd.GetIndex() ), nCurrBox( 0 ), nCount( nCnt ), nRelDiff( 0 ), nAbsDiff( 0 ), - nSetColType( USHRT_MAX ), + nSetColType( TableChgWidthHeightType::InvalidPos ), bFlag( bFlg ), bSameHeight( bSmHght ) { @@ -1500,7 +1500,7 @@ SwUndoTableNdsChg::SwUndoTableNdsChg( SwUndoId nAction, nMin( 0 ), nMax( 0 ), nSttNode( rTableNd.GetIndex() ), nCurrBox( 0 ), nCount( 0 ), nRelDiff( 0 ), nAbsDiff( 0 ), - nSetColType( USHRT_MAX ), + nSetColType( TableChgWidthHeightType::InvalidPos ), bFlag( false ), bSameHeight( false ) { @@ -1832,7 +1832,7 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext) switch( GetId() ) { case SwUndoId::TABLE_INSCOL: - if( USHRT_MAX == nSetColType ) + if( TableChgWidthHeightType::InvalidPos == extractPosition(nSetColType) ) rDoc.InsertCol( aSelBoxes, nCount, bFlag ); else { @@ -1843,7 +1843,7 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext) break; case SwUndoId::TABLE_INSROW: - if( USHRT_MAX == nSetColType ) + if( TableChgWidthHeightType::InvalidPos == extractPosition(nSetColType) ) rDoc.InsertRow( aSelBoxes, nCount, bFlag ); else { @@ -1862,7 +1862,7 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext) case SwUndoId::TABLE_DELBOX: case SwUndoId::ROW_DELETE: case SwUndoId::COL_DELETE: - if( USHRT_MAX == nSetColType ) + if( TableChgWidthHeightType::InvalidPos == extractPosition(nSetColType) ) { SwTableFormulaUpdate aMsgHint( &pTableNd->GetTable() ); aMsgHint.m_eFlags = TBL_BOXPTR; @@ -1888,22 +1888,23 @@ void SwUndoTableNdsChg::RedoImpl(::sw::UndoRedoContext & rContext) rDoc.GetIDocumentUndoRedo().DoUndo( true ); SwUndo* pUndo = nullptr; - switch( nSetColType & 0xff ) + switch( extractPosition(nSetColType) ) { - case nsTableChgWidthHeightType::WH_COL_LEFT: - case nsTableChgWidthHeightType::WH_COL_RIGHT: - case nsTableChgWidthHeightType::WH_CELL_LEFT: - case nsTableChgWidthHeightType::WH_CELL_RIGHT: + case TableChgWidthHeightType::ColLeft: + case TableChgWidthHeightType::ColRight: + case TableChgWidthHeightType::CellLeft: + case TableChgWidthHeightType::CellRight: rTable.SetColWidth( *pBox, nSetColType, nAbsDiff, nRelDiff, &pUndo ); break; - case nsTableChgWidthHeightType::WH_ROW_TOP: - case nsTableChgWidthHeightType::WH_ROW_BOTTOM: - case nsTableChgWidthHeightType::WH_CELL_TOP: - case nsTableChgWidthHeightType::WH_CELL_BOTTOM: + case TableChgWidthHeightType::RowTop: + case TableChgWidthHeightType::RowBottom: + case TableChgWidthHeightType::CellTop: + case TableChgWidthHeightType::CellBottom: rTable.SetRowHeight( *pBox, nSetColType, nAbsDiff, nRelDiff, &pUndo ); break; + default: break; } if( pUndo ) diff --git a/sw/source/uibase/docvw/edtwin.cxx b/sw/source/uibase/docvw/edtwin.cxx index a26e2a00c665..f5606bbcdf8b 100644 --- a/sw/source/uibase/docvw/edtwin.cxx +++ b/sw/source/uibase/docvw/edtwin.cxx @@ -1555,7 +1555,7 @@ void SwEditWin::KeyInput(const KeyEvent &rKEvt) SwModuleOptions* pModOpt = SW_MOD()->GetModuleConfig(); - TableChgWidthHeightType eTableChgMode = nsTableChgWidthHeightType::WH_COL_LEFT; // initialization just for warning-free code + TableChgWidthHeightType eTableChgMode = TableChgWidthHeightType::ColLeft; // initialization just for warning-free code sal_uInt16 nTableChgSize = 0; bool bStopKeyInputTimer = true; OUString sFormulaEntry; @@ -1773,16 +1773,16 @@ KEYINPUT_CHECKTABLE: eFlyState = SwKeyState::Fly_Change; nDir = MOVE_LEFT_BIG; } - eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | + eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | ( bMod1 - ? nsTableChgWidthHeightType::WH_CELL_LEFT - : nsTableChgWidthHeightType::WH_COL_LEFT ); + ? TableChgWidthHeightType::CellLeft + : TableChgWidthHeightType::ColLeft ); nTableChgSize = pModOpt->GetTableVInsert(); } goto KEYINPUT_CHECKTABLE_INSDEL; case KEY_RIGHT | KEY_MOD1: { - eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | nsTableChgWidthHeightType::WH_CELL_RIGHT; + eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | TableChgWidthHeightType::CellRight; nTableChgSize = pModOpt->GetTableVInsert(); } goto KEYINPUT_CHECKTABLE_INSDEL; @@ -1795,10 +1795,10 @@ KEYINPUT_CHECKTABLE: eFlyState = SwKeyState::Fly_Change; nDir = MOVE_UP_BIG; } - eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | + eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | ( bMod1 - ? nsTableChgWidthHeightType::WH_CELL_TOP - : nsTableChgWidthHeightType::WH_ROW_TOP ); + ? TableChgWidthHeightType::CellTop + : TableChgWidthHeightType::RowTop ); nTableChgSize = pModOpt->GetTableHInsert(); } goto KEYINPUT_CHECKTABLE_INSDEL; @@ -1811,10 +1811,10 @@ KEYINPUT_CHECKTABLE: eFlyState = SwKeyState::Fly_Change; nDir = MOVE_DOWN_BIG; } - eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | + eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | ( bMod1 - ? nsTableChgWidthHeightType::WH_CELL_BOTTOM - : nsTableChgWidthHeightType::WH_ROW_BOTTOM ); + ? TableChgWidthHeightType::CellBottom + : TableChgWidthHeightType::RowBottom ); nTableChgSize = pModOpt->GetTableHInsert(); } goto KEYINPUT_CHECKTABLE_INSDEL; @@ -1840,7 +1840,7 @@ KEYINPUT_CHECKTABLE_INSDEL: else { if( !m_bTableIsInsMode ) - eTableChgMode = eTableChgMode | nsTableChgWidthHeightType::WH_FLAG_BIGGER; + eTableChgMode = eTableChgMode | TableChgWidthHeightType::BiggerMode; eKeyState = SwKeyState::TableColCellInsDel; } break; @@ -2039,7 +2039,7 @@ KEYINPUT_CHECKTABLE_INSDEL: { eFlyState = SwKeyState::Fly_Change; nDir = MOVE_RIGHT_BIG; - eTableChgMode = nsTableChgWidthHeightType::WH_FLAG_INSDEL | nsTableChgWidthHeightType::WH_COL_RIGHT; + eTableChgMode = TableChgWidthHeightType::InsertDeleteMode | TableChgWidthHeightType::ColRight; nTableChgSize = pModOpt->GetTableVInsert(); goto KEYINPUT_CHECKTABLE_INSDEL; } @@ -2638,20 +2638,20 @@ KEYINPUT_CHECKTABLE_INSDEL: } break; - case SwKeyState::ColLeftBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_LEFT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break; - case SwKeyState::ColRightBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_RIGHT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break; - case SwKeyState::ColLeftSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_LEFT, pModOpt->GetTableHMove() ); break; - case SwKeyState::ColRightSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_COL_RIGHT, pModOpt->GetTableHMove() ); break; - case SwKeyState::ColBottomBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_ROW_BOTTOM|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableVMove() ); break; - case SwKeyState::ColBottomSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_ROW_BOTTOM, pModOpt->GetTableVMove() ); break; - case SwKeyState::CellLeftBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_LEFT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break; - case SwKeyState::CellRightBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_RIGHT|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableHMove() ); break; - case SwKeyState::CellLeftSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_LEFT, pModOpt->GetTableHMove() ); break; - case SwKeyState::CellRightSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_RIGHT, pModOpt->GetTableHMove() ); break; - case SwKeyState::CellTopBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_TOP|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableVMove() ); break; - case SwKeyState::CellBottomBig: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_BOTTOM|nsTableChgWidthHeightType::WH_FLAG_BIGGER, pModOpt->GetTableVMove() ); break; - case SwKeyState::CellTopSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_TOP, pModOpt->GetTableVMove() ); break; - case SwKeyState::CellBottomSmall: rSh.SetColRowWidthHeight( nsTableChgWidthHeightType::WH_CELL_BOTTOM, pModOpt->GetTableVMove() ); break; + case SwKeyState::ColLeftBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColLeft|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break; + case SwKeyState::ColRightBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColRight|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break; + case SwKeyState::ColLeftSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColLeft, pModOpt->GetTableHMove() ); break; + case SwKeyState::ColRightSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::ColRight, pModOpt->GetTableHMove() ); break; + case SwKeyState::ColBottomBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::RowBottom|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableVMove() ); break; + case SwKeyState::ColBottomSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::RowBottom, pModOpt->GetTableVMove() ); break; + case SwKeyState::CellLeftBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellLeft|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break; + case SwKeyState::CellRightBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellRight|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableHMove() ); break; + case SwKeyState::CellLeftSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellLeft, pModOpt->GetTableHMove() ); break; + case SwKeyState::CellRightSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellRight, pModOpt->GetTableHMove() ); break; + case SwKeyState::CellTopBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellTop|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableVMove() ); break; + case SwKeyState::CellBottomBig: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellBottom|TableChgWidthHeightType::BiggerMode, pModOpt->GetTableVMove() ); break; + case SwKeyState::CellTopSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellTop, pModOpt->GetTableVMove() ); break; + case SwKeyState::CellBottomSmall: rSh.SetColRowWidthHeight( TableChgWidthHeightType::CellBottom, pModOpt->GetTableVMove() ); break; case SwKeyState::TableColCellInsDel: rSh.SetColRowWidthHeight( eTableChgMode, nTableChgSize ); |