[Libreoffice-commits] core.git: sw/inc sw/source

Noel Grandin noel.grandin at collabora.co.uk
Thu Apr 13 06:48:48 UTC 2017


 sw/inc/doc.hxx                    |    2 -
 sw/inc/fesh.hxx                   |    2 -
 sw/inc/swtable.hxx                |    4 +-
 sw/inc/tblenum.hxx                |   41 +++++++++++++++-----------
 sw/source/core/doc/tblrwcl.cxx    |   58 +++++++++++++++++++-------------------
 sw/source/core/docnode/ndtbl.cxx  |   25 ++++++++--------
 sw/source/core/frmedt/fetab.cxx   |   42 +++++++++++++--------------
 sw/source/core/inc/UndoTable.hxx  |    5 +--
 sw/source/core/undo/untbl.cxx     |   29 +++++++++----------
 sw/source/uibase/docvw/edtwin.cxx |   54 +++++++++++++++++------------------
 10 files changed, 136 insertions(+), 126 deletions(-)

New commits:
commit 890d6790715c4c3f3565b476d538643f04dc6936
Author: Noel Grandin <noel.grandin at collabora.co.uk>
Date:   Wed Apr 12 13:38:31 2017 +0200

    convert TableChgWidthHeightType to o3tl::typed_flags
    
    Change-Id: I9009f3302f4d117744d80f8816ddd177bae6639d
    Reviewed-on: https://gerrit.libreoffice.org/36460
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>

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 );


More information about the Libreoffice-commits mailing list