summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2016-09-08 11:30:35 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2016-09-08 11:30:35 +0200
commit4e5ec21c5191dc6c90c51ae786ac692e804c1fb7 (patch)
treede3e5f2e21bfa39b28d905cf3bf3ab646d815a3e
parent64a6083df40c5ffe43333f557a96846ea4fa10f6 (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.cxx28
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 )