-*/
-
-// FIXME make all ID types quint32 as soon as they all have been replaced
-typedef uint UserId; //!< Identifies a core user.
-typedef uint MsgId; //!< Identifies a message.
-typedef uint BufferId; //!< Identifies a buffer.
-// These must be signed!
-typedef qint32 NetworkId; //!< Identifies an IRC Network.
-typedef qint32 IdentityId; //!< Identifies an identity.
+
+struct MsgId : public SignedId {
+ inline MsgId(int _id = 0) : SignedId(_id) {};
+ //inline operator QVariant() const { return QVariant::fromValue<MsgId>(*this); }
+};
+
+struct BufferId : public SignedId {
+ inline BufferId(int _id = 0) : SignedId(_id) {};
+ //inline operator QVariant() const { return QVariant::fromValue<BufferId>(*this); }
+};
+
+struct NetworkId : public SignedId {
+ inline NetworkId(int _id = 0) : SignedId(_id) {};
+ //inline operator QVariant() const { return QVariant::fromValue<NetworkId>(*this); }
+};
+
+struct IdentityId : public SignedId {
+ inline IdentityId(int _id = 0) : SignedId(_id) {};
+ //inline operator QVariant() const { return QVariant::fromValue<IdentityId>(*this); }
+};
+
+Q_DECLARE_METATYPE(UserId);
+Q_DECLARE_METATYPE(MsgId);
+Q_DECLARE_METATYPE(BufferId);
+Q_DECLARE_METATYPE(NetworkId);
+Q_DECLARE_METATYPE(IdentityId);