X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcommon%2Fircevent.h;h=90dc3846a8fc939d713f7135b9e47a1ec54c9f81;hb=8f92b3f08df9f4eb8fd243ccec6aa9d4b563ec23;hp=7988437a3efc982cda2fed2254f981804bd1d61b;hpb=cc6e7c08709c4e761e2fd9c2e322751015497003;p=quassel.git 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: