From 5ece368fa0ef768de7f4d143d928a2f03cf7e2e9 Mon Sep 17 00:00:00 2001 From: Giuseppe D'Angelo Date: Mon, 3 May 2021 00:15:15 +0200 Subject: QFlags::testFlag: clarify the behavior in the docs The name made me fall in a trap: I thought that testFlag returned true if *any* of the bits in the argument were set in the QFlags object. In reality, it returns true if *all* the bits are set, and an argument equivalent to 0 is treated specially. Clarify this in the documentation. Change-Id: I9e8088c48038b4e6ba5830fdb7e473c6d7884b29 Reviewed-by: Edward Welbourne Reviewed-by: Thiago Macieira (cherry picked from commit 89f55f13fdae3aa52614b063ff6ceb8276340d44) Reviewed-by: Qt Cherry-pick Bot --- src/corelib/global/qglobal.cpp | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/corelib/global/qglobal.cpp b/src/corelib/global/qglobal.cpp index bcfc6ada2e..74acb1e06f 100644 --- a/src/corelib/global/qglobal.cpp +++ b/src/corelib/global/qglobal.cpp @@ -479,6 +479,14 @@ static_assert((std::is_same::value)); \since 4.2 Returns \c true if the flag \a flag is set, otherwise \c false. + + \note if \a flag contains multiple bits set to 1 (for instance, if + it's an enumerator equal to the bitwise-OR of other enumerators) + then this function will return \c true if and only if all the bits + are set in this flags object. On the other hand, if \a flag contains + no bits set to 1 (that is, its value as a integer is 0), then this + function will return \c true if and only if this flags object also + has no bits set to 1. */ /*! -- cgit v1.2.3