/***************************************************************************
- * Copyright (C) 2005-2015 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 *
virtual QVariant data(int column, int row) const;
+ /**
+ * Escapes a string as HTML, ready for Qt markup.
+ *
+ * Implementation depends on Qt version - Qt4 uses Qt::escape, while Qt5 uses .toHtmlEscaped().
+ *
+ * @param[in] string QString to escape
+ * @param[in] useNonbreakingSpaces
+ * @parblock
+ * If true, replace spaces with non-breaking spaces (i.e. ' '), otherwise only HTML escape.
+ * @endparblock
+ */
+ static QString escapeHTML(const QString &string, bool useNonbreakingSpaces = false);
+
inline bool isActive() const { return (bool)_network ? _network->isConnected() : false; }
inline const NetworkId &networkId() const { return _networkId; }
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; }
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<IrcUser *> &ircUsers);
void part(IrcUser *ircUser);
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); }
void clearBufferActivity(const BufferId &bufferId);
void updateBufferActivity(Message &msg);
void networkRemoved(const NetworkId &networkId);
+ void bufferActivityChanged(BufferId, Message::Types);
signals:
void requestSetLastSeenMsg(BufferId buffer, MsgId msg);