X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fircevent.h;h=90dc3846a8fc939d713f7135b9e47a1ec54c9f81;hp=7988437a3efc982cda2fed2254f981804bd1d61b;hb=edc55b1f86cf613a332eeeb5d85537a54120dfa5;hpb=3128dab675247b8505937b0bc22b4e2ad2dd61ff diff --git a/src/common/ircevent.h b/src/common/ircevent.h index 7988437a..90dc3846 100644 --- a/src/common/ircevent.h +++ b/src/common/ircevent.h @@ -24,14 +24,17 @@ #include +#include "irctag.h" #include "networkevent.h" #include "util.h" class COMMON_EXPORT IrcEvent : public NetworkEvent { public: - explicit IrcEvent(EventManager::EventType type, Network* network, QString prefix, QStringList params = QStringList()) + explicit IrcEvent( + EventManager::EventType type, Network* network, QHash tags, QString prefix, QStringList params = {}) : NetworkEvent(type, network) + , _tags(std::move(tags)) , _prefix(std::move(prefix)) , _params(std::move(params)) {} @@ -39,6 +42,9 @@ public: inline QString prefix() const { return _prefix; } inline void setPrefix(const QString& prefix) { _prefix = prefix; } + inline QHash tags() const { return _tags; } + inline void setTags(const QHash& tags) { _tags = tags; } + inline QString nick() const { return nickFromMask(prefix()); } inline QStringList params() const { return _params; } @@ -58,6 +64,7 @@ protected: } private: + QHash _tags; QString _prefix; QStringList _params; }; @@ -65,8 +72,13 @@ private: class COMMON_EXPORT IrcEventNumeric : public IrcEvent { public: - explicit IrcEventNumeric(uint number, Network* network, const QString& prefix, QString target, const QStringList& params = QStringList()) - : IrcEvent(EventManager::IrcEventNumeric, network, prefix, params) + explicit IrcEventNumeric(uint number, + Network* network, + QHash tags, + QString prefix, + QString target, + QStringList params = {}) + : IrcEvent(EventManager::IrcEventNumeric, network, std::move(tags), std::move(prefix), std::move(params)) , _number(number) , _target(std::move(target)) {} @@ -85,7 +97,9 @@ protected: { dbg << ", num = " << number(); NetworkEvent::debugInfo(dbg); - dbg << ", target = " << qPrintable(target()) << ", prefix = " << qPrintable(prefix()) << ", params = " << params(); + dbg << ", target = " << qPrintable(target()) + << ", prefix = " << qPrintable(prefix()) + << ", params = " << params(); } private: @@ -98,13 +112,14 @@ private: class COMMON_EXPORT IrcEventRawMessage : public IrcEvent { public: - explicit inline IrcEventRawMessage(EventManager::EventType type, - Network* network, - QByteArray rawMessage, - const QString& prefix, - const QString& target, - const QDateTime& timestamp = QDateTime()) - : IrcEvent(type, network, prefix, QStringList() << target) + explicit IrcEventRawMessage(EventManager::EventType type, + Network* network, + QHash tags, + QByteArray rawMessage, + QString prefix, + QString target, + const QDateTime& timestamp = QDateTime()) + : IrcEvent(type, network, std::move(tags), std::move(prefix), QStringList() << target) , _rawMessage(std::move(rawMessage)) { setTimestamp(timestamp); @@ -124,7 +139,9 @@ protected: inline void debugInfo(QDebug& dbg) const override { NetworkEvent::debugInfo(dbg); - dbg << ", target = " << qPrintable(target()) << ", prefix = " << qPrintable(prefix()) << ", msg = " << rawMessage(); + dbg << ", target = " << qPrintable(target()) + << ", prefix = " << qPrintable(prefix()) + << ", msg = " << rawMessage(); } private: