aboutsummaryrefslogtreecommitdiff
path: root/joinstate.h
diff options
context:
space:
mode:
Diffstat (limited to 'joinstate.h')
-rw-r--r--joinstate.h15
1 files changed, 11 insertions, 4 deletions
diff --git a/joinstate.h b/joinstate.h
index d6c374d2..42613895 100644
--- a/joinstate.h
+++ b/joinstate.h
@@ -18,17 +18,21 @@
#pragma once
+#include <QtCore/QFlags>
+
#include <array>
namespace QMatrixClient
{
enum class JoinState
{
- Join = 0,
- Invite,
- Leave
+ Join = 0x1,
+ Invite = 0x2,
+ Leave = 0x4
};
+ Q_DECLARE_FLAGS(JoinStates, JoinState)
+
// We cannot use REGISTER_ENUM outside of a Q_OBJECT and besides, we want
// to use strings that match respective JSON keys.
static const std::array<const char*, 3> JoinStateStrings
@@ -36,6 +40,9 @@ namespace QMatrixClient
inline const char* toCString(JoinState js)
{
- return JoinStateStrings[size_t(js)];
+ size_t state = size_t(js), index = 0;
+ while (state >>= 1) ++index;
+ return JoinStateStrings[index];
}
} // namespace QMatrixClient
+Q_DECLARE_OPERATORS_FOR_FLAGS(QMatrixClient::JoinStates)