diff options
author | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2021-07-16 20:03:06 +0200 |
---|---|---|
committer | Alexey Rusakov <Kitsune-Ral@users.sf.net> | 2021-07-18 20:09:43 +0200 |
commit | c05b5c2b79f9ab301fee587ee781b9c8e18b8a2f (patch) | |
tree | 95de5d26893652593fdf0a583378c31795a0d432 /lib/quotient_common.cpp | |
parent | 110190d48a80a471e6d10d048602390b35e7ed07 (diff) | |
download | libquotient-c05b5c2b79f9ab301fee587ee781b9c8e18b8a2f.tar.gz libquotient-c05b5c2b79f9ab301fee587ee781b9c8e18b8a2f.zip |
MembershipType -> Membership, also used for JoinState
Instead of being defined independently, JoinState now uses values from
the Membership enumeration (former MemberEventContent::MembershipType)
that was moved to quotient_common.h for that purpose. Both enumerations
gained a Q_FLAG_NS decoration and operator<< overrides that strip
"Quotient::" prefix when dumping member/join state values to the log -
obviating toCString(JoinState) along the way. Quotient::MembershipType
alias is deprecated from now.
Diffstat (limited to 'lib/quotient_common.cpp')
-rw-r--r-- | lib/quotient_common.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/lib/quotient_common.cpp b/lib/quotient_common.cpp new file mode 100644 index 00000000..805070d1 --- /dev/null +++ b/lib/quotient_common.cpp @@ -0,0 +1,45 @@ +#include "quotient_common.h" + +#include <QtCore/QDebug> + +using namespace Quotient; + +template <typename Enum> +inline QDebug suppressScopeAndDump(QDebug dbg, Enum e) +{ + // Suppress "Quotient::" prefix + QDebugStateSaver _dss(dbg); + dbg.setVerbosity(QDebug::MinimumVerbosity); + return qt_QMetaEnum_debugOperator(dbg, std::underlying_type_t<Enum>(e), + qt_getEnumMetaObject(e), + qt_getEnumName(e)); +} + +template <typename Enum> +inline QDebug suppressScopeAndDump(QDebug dbg, const QFlags<Enum>& f) +{ + // Suppress "Quotient::" prefix + QDebugStateSaver _dss(dbg); + dbg.setVerbosity(QDebug::MinimumVerbosity); + return qt_QMetaEnum_flagDebugOperator_helper(dbg, f); +} + +QDebug operator<<(QDebug dbg, Membership m) +{ + return suppressScopeAndDump(dbg, m); +} + +QDebug operator<<(QDebug dbg, MembershipMask mm) +{ + return suppressScopeAndDump(dbg, mm) << ")"; +} + +QDebug operator<<(QDebug dbg, JoinState js) +{ + return suppressScopeAndDump(dbg, js); +} + +QDebug operator<<(QDebug dbg, JoinStates jss) +{ + return suppressScopeAndDump(dbg, jss) << ")"; +} |