modernize: Pass arguments by value and move in constructors
[quassel.git] / src / client / networkmodel.h
index cc06938..370e6de 100644 (file)
@@ -18,8 +18,9 @@
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef NETWORKMODEL_H
-#define NETWORKMODEL_H
+#pragma once
+
+#include "client-export.h"
 
 #include "bufferinfo.h"
 #include "clientsettings.h"
@@ -41,9 +42,11 @@ class NetworkItem : public PropertyMapItem
     Q_PROPERTY(int nickCount READ nickCount)
 
 public :
-        NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = 0);
+    NetworkItem(const NetworkId &netid, AbstractTreeItem *parent = nullptr);
+
+    QStringList propertyOrder() const override;
 
-    virtual QVariant data(int column, int row) const;
+    QVariant data(int column, int row) const override;
 
     /**
      * Escapes a string as HTML, ready for Qt markup.
@@ -65,7 +68,7 @@ public :
     inline QString currentServer() const { return (bool)_network ? _network->currentServer() : QString(); }
     inline int nickCount() const { return (bool)_network ? _network->ircUsers().count() : 0; }
 
-    virtual QString toolTip(int column) const;
+    QString toolTip(int column) const override;
 
     BufferItem *findBufferItem(BufferId bufferId);
     inline BufferItem *findBufferItem(const BufferInfo &bufferInfo) { return findBufferItem(bufferInfo.bufferId()); }
@@ -106,11 +109,13 @@ class BufferItem : public PropertyMapItem
     Q_PROPERTY(int nickCount READ nickCount)
 
 public :
-        BufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent = 0);
+    BufferItem(BufferInfo bufferInfo, AbstractTreeItem *parent = nullptr);
+
+    QStringList propertyOrder() const override;
 
     inline const BufferInfo &bufferInfo() const { return _bufferInfo; }
-    virtual QVariant data(int column, int role) const;
-    virtual bool setData(int column, const QVariant &value, int role);
+    QVariant data(int column, int role) const override;
+    bool setData(int column, const QVariant &value, int role) override;
 
     inline BufferId bufferId() const { return _bufferInfo.bufferId(); }
     inline BufferInfo::Type bufferType() const { return _bufferInfo.type(); }
@@ -137,7 +142,7 @@ public :
     inline const MsgId &firstUnreadMsgId() const { return _firstUnreadMsgId; }
 
     bool isCurrentBuffer() const;
-    virtual QString toolTip(int column) const;
+    QString toolTip(int column) const override;
 
 public slots:
     virtual inline void setTopic(const QString &) { emit dataChanged(1); }
@@ -162,8 +167,8 @@ class StatusBufferItem : public BufferItem
 public:
     StatusBufferItem(const BufferInfo &bufferInfo, NetworkItem *parent);
 
-    virtual QString toolTip(int column) const;
-    virtual inline QString bufferName() const { return tr("Status Buffer"); }
+    QString toolTip(int column) const override;
+    inline QString bufferName() const override { return tr("Status Buffer"); }
 };
 
 
@@ -177,13 +182,13 @@ class QueryBufferItem : public BufferItem
 public:
     QueryBufferItem(const BufferInfo &bufferInfo, NetworkItem *parent);
 
-    virtual QVariant data(int column, int role) const;
-    virtual bool setData(int column, const QVariant &value, int role);
+    QVariant data(int column, int role) const override;
+    bool setData(int column, const QVariant &value, int role) override;
 
-    virtual inline bool isActive() const { return (bool)_ircUser; }
-    virtual QString toolTip(int column) const;
+    inline bool isActive() const override { return (bool)_ircUser; }
+    QString toolTip(int column) const override;
 
-    virtual void setBufferName(const QString &name);
+    void setBufferName(const QString &name) override;
 
 public slots:
     void setIrcUser(IrcUser *ircUser);
@@ -206,12 +211,12 @@ class ChannelBufferItem : public BufferItem
 public:
     ChannelBufferItem(const BufferInfo &bufferInfo, AbstractTreeItem *parent);
 
-    virtual QVariant data(int column, int role) const;
-    virtual inline bool isActive() const { return (bool)_ircChannel; }
-    virtual QString toolTip(int column) const;
+    QVariant data(int column, int role) const override;
+    inline bool isActive() const override { return (bool)_ircChannel; }
+    QString toolTip(int column) const override;
 
-    virtual inline QString topic() const { return (bool)_ircChannel ? _ircChannel->topic() : QString(); }
-    virtual inline int nickCount() const { return (bool)_ircChannel ? _ircChannel->ircUsers().count() : 0; }
+    inline QString topic() const override { return (bool)_ircChannel ? _ircChannel->topic() : QString(); }
+    inline int nickCount() const override { return (bool)_ircChannel ? _ircChannel->ircUsers().count() : 0; }
 
     void attachIrcChannel(IrcChannel *ircChannel);
 
@@ -246,17 +251,20 @@ private:
 *  User Category Items (like @vh etc.)
 *****************************************/
 class IrcUserItem;
-class UserCategoryItem : public PropertyMapItem
+
+class CLIENT_EXPORT UserCategoryItem : public PropertyMapItem
 {
     Q_OBJECT
     Q_PROPERTY(QString categoryName READ categoryName)
 
 public :
-        UserCategoryItem(int category, AbstractTreeItem *parent);
+    UserCategoryItem(int category, AbstractTreeItem *parent);
+
+    QStringList propertyOrder() const override;
 
     QString categoryName() const;
     inline int categoryId() const { return _category; }
-    virtual QVariant data(int column, int role) const;
+    QVariant data(int column, int role) const override;
 
     IrcUserItem *findIrcUser(IrcUser *ircUser);
     void addUsers(const QList<IrcUser *> &ircUser);
@@ -280,14 +288,16 @@ class IrcUserItem : public PropertyMapItem
     Q_PROPERTY(QString nickName READ nickName)
 
 public :
-        IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent);
+    IrcUserItem(IrcUser *ircUser, AbstractTreeItem *parent);
+
+    QStringList propertyOrder() const override;
 
     inline QString nickName() const { return _ircUser ? _ircUser->nick() : QString(); }
     inline bool isActive() const { return _ircUser ? !_ircUser->isAway() : false; }
 
     inline IrcUser *ircUser() { return _ircUser; }
-    virtual QVariant data(int column, int role) const;
-    virtual QString toolTip(int column) const;
+    QVariant data(int column, int role) const override;
+    QString toolTip(int column) const override;
 
     /**
      * Gets the list of channel modes for this nick if parented to channel.
@@ -307,7 +317,7 @@ private:
 /*****************************************
  * NetworkModel
  *****************************************/
-class NetworkModel : public TreeModel
+class CLIENT_EXPORT NetworkModel : public TreeModel
 {
     Q_OBJECT
 
@@ -335,14 +345,14 @@ public:
     };
     Q_DECLARE_FLAGS(ItemTypes, ItemType)
 
-    NetworkModel(QObject *parent = 0);
+    NetworkModel(QObject *parent = nullptr);
     static QList<QVariant> defaultHeader();
 
     static bool mimeContainsBufferList(const QMimeData *mimeData);
     static QList<QPair<NetworkId, BufferId> > mimeDataToBufferList(const QMimeData *mimeData);
 
-    virtual QStringList mimeTypes() const;
-    virtual QMimeData *mimeData(const QModelIndexList &) const;
+    QStringList mimeTypes() const override;
+    QMimeData *mimeData(const QModelIndexList &) const override;
 
     void attachNetwork(Network *network);
 
@@ -386,6 +396,7 @@ public slots:
     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);
@@ -418,5 +429,3 @@ private:
 
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(NetworkModel::ItemTypes)
-
-#endif // NETWORKMODEL_H