aboutsummaryrefslogtreecommitdiff
path: root/lib/quotient_common.cpp
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-07-16 20:03:06 +0200
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-07-18 20:09:43 +0200
commitc05b5c2b79f9ab301fee587ee781b9c8e18b8a2f (patch)
tree95de5d26893652593fdf0a583378c31795a0d432 /lib/quotient_common.cpp
parent110190d48a80a471e6d10d048602390b35e7ed07 (diff)
downloadlibquotient-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.cpp45
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) << ")";
+}