aboutsummaryrefslogtreecommitdiff
path: root/lib/eventitem.h
diff options
context:
space:
mode:
authorAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-11-26 13:44:39 +0100
committerAlexey Rusakov <Kitsune-Ral@users.sf.net>2021-11-26 13:44:39 +0100
commitf6155d62740a88b020273ba623c816f7b9805772 (patch)
tree87824e5db591955638655b2e12bd9a5484efcb0a /lib/eventitem.h
parent91c1d93d3389ac924f1013dc7b37dfe70a17e57e (diff)
downloadlibquotient-f6155d62740a88b020273ba623c816f7b9805772.tar.gz
libquotient-f6155d62740a88b020273ba623c816f7b9805772.zip
Drop Q_GADGET from most uncopyable classes; other minor cleanup
Q_GADGET is generally used to enable two things outside of QObject: Q_PROPERTY/Q_INVOKABLE and Q_ENUM/Q_FLAG. While the latter can be used in its own right in QML, the former requires Q_GADGET instances to be passed to QML by value, which is not really possible with uncopyable/unassignable classes. Bottom line is that Q_PROPERTY in anything derived from Quotient::Event is not viable, making Q_GADGET macro useless unless there's a Q_ENUM/Q_FLAG (as is the case with RoomMessageEvent, e.g.).
Diffstat (limited to 'lib/eventitem.h')
-rw-r--r--lib/eventitem.h5
1 files changed, 1 insertions, 4 deletions
diff --git a/lib/eventitem.h b/lib/eventitem.h
index a70a3c3e..0ab1a01d 100644
--- a/lib/eventitem.h
+++ b/lib/eventitem.h
@@ -9,7 +9,6 @@
#include <utility>
namespace Quotient {
-class StateEventBase;
namespace EventStatus {
Q_NAMESPACE
@@ -31,8 +30,7 @@ namespace EventStatus {
Replaced = 0x10, //< The event has been replaced
Hidden = 0x100, //< The event should not be shown in the timeline
};
- Q_DECLARE_FLAGS(Status, Code)
- Q_FLAG_NS(Status)
+ Q_ENUM_NS(Code)
} // namespace EventStatus
class EventItemBase {
@@ -106,7 +104,6 @@ inline const CallEventBase* EventItemBase::viewAs<CallEventBase>() const
}
class PendingEventItem : public EventItemBase {
- Q_GADGET
public:
using EventItemBase::EventItemBase;