diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-09-08 11:30:35 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-09-08 11:30:35 +0200 |
commit | 4e5ec21c5191dc6c90c51ae786ac692e804c1fb7 (patch) | |
tree | de3e5f2e21bfa39b28d905cf3bf3ab646d815a3e | |
parent | 64a6083df40c5ffe43333f557a96846ea4fa10f6 (diff) |
workaround lack of constexpr
when dealing with switch statements and o3tl::typed_flags
Change-Id: Ia72a3ff643ea1c41f9b328e980ba51f3cdfdf582
-rw-r--r-- | sw/source/core/doc/DocumentRedlineManager.cxx | 28 |
1 files changed, 9 insertions, 19 deletions
diff --git a/sw/source/core/doc/DocumentRedlineManager.cxx b/sw/source/core/doc/DocumentRedlineManager.cxx index 10ba31738d62..38a4c77e08bd 100644 --- a/sw/source/core/doc/DocumentRedlineManager.cxx +++ b/sw/source/core/doc/DocumentRedlineManager.cxx @@ -603,22 +603,17 @@ void DocumentRedlineManager::SetRedlineFlags( RedlineFlags eMode ) // and then hide/display everything void (SwRangeRedline::*pFnc)(sal_uInt16, size_t) = nullptr; - switch( RedlineFlags::ShowMask & eMode ) - { - case RedlineFlags::ShowInsert | RedlineFlags::ShowDelete : + RedlineFlags eShowMode = RedlineFlags::ShowMask & eMode; + if (eShowMode == (RedlineFlags::ShowInsert | RedlineFlags::ShowDelete)) pFnc = &SwRangeRedline::Show; - break; - case RedlineFlags::ShowInsert: + else if (eShowMode == RedlineFlags::ShowInsert) pFnc = &SwRangeRedline::Hide; - break; - case RedlineFlags::ShowDelete: + else if (eShowMode == RedlineFlags::ShowDelete) pFnc = &SwRangeRedline::ShowOriginal; - break; - - default: + else + { pFnc = &SwRangeRedline::Hide; eMode |= RedlineFlags::ShowInsert; - break; } CheckAnchoredFlyConsistency(m_rDoc); @@ -1781,16 +1776,11 @@ void DocumentRedlineManager::CompressRedlines() CHECK_REDLINE( *this ) void (SwRangeRedline::*pFnc)(sal_uInt16, size_t) = nullptr; - switch( RedlineFlags::ShowMask & meRedlineFlags ) - { - case RedlineFlags::ShowInsert | RedlineFlags::ShowDelete: + RedlineFlags eShow = RedlineFlags::ShowMask & meRedlineFlags; + if( eShow == (RedlineFlags::ShowInsert | RedlineFlags::ShowDelete)) pFnc = &SwRangeRedline::Show; - break; - case RedlineFlags::ShowInsert: + else if (eShow == RedlineFlags::ShowInsert) pFnc = &SwRangeRedline::Hide; - break; - default: break; - } // Try to merge identical ones for( size_t n = 1; n < mpRedlineTable->size(); ++n ) |