From 568fbc3e3546416cb5bce232d907232b21713471 Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 5 Apr 2022 19:09:14 +0200 Subject: [PATCH] Base: add method isEqual() to Base::Flags<> to simplify comparison --- src/App/ColorModel.cpp | 6 +----- src/Base/Bitmask.h | 7 +++++-- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/App/ColorModel.cpp b/src/App/ColorModel.cpp index 37daf807a6..fc6cb5c78c 100644 --- a/src/App/ColorModel.cpp +++ b/src/App/ColorModel.cpp @@ -187,11 +187,7 @@ bool ColorGradientProfile::isEqual(const ColorGradientProfile& cg) const return false; if (fMax != cg.fMax) return false; - if (visibility.testFlag(Visibility::Grayed) != - cg.visibility.testFlag(Visibility::Grayed)) - return false; - if (visibility.testFlag(Visibility::Invisible) != - cg.visibility.testFlag(Visibility::Invisible)) + if (!visibility.isEqual(cg.visibility)) return false; if (tColorModel != cg.tColorModel) return false; diff --git a/src/Base/Bitmask.h b/src/Base/Bitmask.h index 739b98e09f..b1aaa10b89 100644 --- a/src/Base/Bitmask.h +++ b/src/Base/Bitmask.h @@ -116,10 +116,13 @@ public: using u = typename std::underlying_type::type; return (i & f) == f && (static_cast(f) != 0 || i == f); } - constexpr inline void setFlag(Enum f, bool on = true) - { + constexpr inline void setFlag(Enum f, bool on = true) { on ? (i |= f) : (i &= ~f); } + constexpr bool isEqual(Flags f) const { + using u = typename std::underlying_type::type; + return static_cast(i) == static_cast(f.i); + } }; }