X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.h;h=a97372e897efa55fd4fe2186cfe9d11d4d71d235;hp=cc230d02f49ae56dff2126e269427f7be6ec9fa8;hb=1a45f16a9734820fba42fe1db3f38dd1eee49df6;hpb=b60e07cf184dc374b135489c4d5ec7db1e5f3651 diff --git a/src/client/networkmodel.h b/src/client/networkmodel.h index cc230d02..a97372e8 100644 --- a/src/client/networkmodel.h +++ b/src/client/networkmodel.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -41,7 +41,9 @@ class NetworkItem : public PropertyMapItem Q_PROPERTY(int nickCount READ nickCount) public : - NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = 0); + NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = 0); + + virtual QStringList propertyOrder() const; virtual QVariant data(int column, int row) const; @@ -106,7 +108,9 @@ class BufferItem : public PropertyMapItem Q_PROPERTY(int nickCount READ nickCount) public : - BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent = 0); + BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent = 0); + + virtual QStringList propertyOrder() const; inline const BufferInfo &bufferInfo() const { return _bufferInfo; } virtual QVariant data(int column, int role) const; @@ -131,6 +135,8 @@ public : void setActivityLevel(BufferInfo::ActivityLevel level); void clearActivityLevel(); void updateActivityLevel(const Message &msg); + void setActivity(Message::Types msg, bool highlight); + bool addActivity(Message::Types msg, bool highlight); inline const MsgId &firstUnreadMsgId() const { return _firstUnreadMsgId; } @@ -213,6 +219,14 @@ public: void attachIrcChannel(IrcChannel *ircChannel); + /** + * Gets the list of channel modes for a given nick. + * + * @param[in] nick IrcUser nickname to check + * @returns Channel modes as a string if any, otherwise empty string + */ + QString nickChannelModes(const QString &nick) const; + public slots: void join(const QList &ircUsers); void part(IrcUser *ircUser); @@ -242,7 +256,9 @@ class UserCategoryItem : public PropertyMapItem Q_PROPERTY(QString categoryName READ categoryName) public : - UserCategoryItem(int category, AbstractTreeItem *parent); + UserCategoryItem(int category, AbstractTreeItem *parent); + + virtual QStringList propertyOrder() const; QString categoryName() const; inline int categoryId() const { return _category; } @@ -270,7 +286,9 @@ class IrcUserItem : public PropertyMapItem Q_PROPERTY(QString nickName READ nickName) public : - IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent); + IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent); + + virtual QStringList propertyOrder() const; inline QString nickName() const { return _ircUser ? _ircUser->nick() : QString(); } inline bool isActive() const { return _ircUser ? !_ircUser->isAway() : false; } @@ -279,6 +297,13 @@ public : virtual QVariant data(int column, int role) const; virtual QString toolTip(int column) const; + /** + * Gets the list of channel modes for this nick if parented to channel. + * + * @returns Channel modes as a string if any, otherwise empty string + */ + QString channelModes() const; + private slots: inline void ircUserQuited() { parent()->removeChild(this); } @@ -368,6 +393,8 @@ public slots: void clearBufferActivity(const BufferId &bufferId); void updateBufferActivity(Message &msg); void networkRemoved(const NetworkId &networkId); + void bufferActivityChanged(BufferId, Message::Types); + void highlightCountChanged(BufferId, int); signals: void requestSetLastSeenMsg(BufferId buffer, MsgId msg);