Add a flag to enable Qt deprecation warnings on Qt < 5.13
[quassel.git] / src / client / messagefilter.h
index 26a3e34..30113e1 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2013 by the Quassel Project                        *
+ *   Copyright (C) 2005-2019 by the Quassel Project                        *
  *   devel@quassel-irc.org                                                 *
  *                                                                         *
  *   This program is free software; you can redistribute it and/or modify  *
  *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef MESSAGEFILTER_H_
-#define MESSAGEFILTER_H_
+#pragma once
+
+#include "client-export.h"
+
+#include <set>
 
 #include <QSortFilterProxyModel>
 
 #include "networkmodel.h"
 #include "types.h"
 
-class MessageFilter : public QSortFilterProxyModel
+class CLIENT_EXPORT MessageFilter : public QSortFilterProxyModel
 {
     Q_OBJECT
 
 protected:
-    MessageFilter(QAbstractItemModel *source, QObject *parent = 0);
+    MessageFilter(QAbstractItemModel* source, QObject* parent = nullptr);
 
 public:
-    MessageFilter(MessageModel *, const QList<BufferId> &buffers = QList<BufferId>(), QObject *parent = 0);
+    MessageFilter(MessageModel*, const QList<BufferId>& buffers = QList<BufferId>(), QObject* parent = nullptr);
 
-    virtual bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
     virtual QString idString() const;
-    inline bool isSingleBufferFilter() const { return _validBuffers.count() == 1; }
+
+    bool isSingleBufferFilter() const { return _validBuffers.count() == 1; }
     BufferId singleBufferId() const { return *(_validBuffers.constBegin()); }
-    inline bool containsBuffer(const BufferId &id) const { return _validBuffers.contains(id); }
-    inline QSet<BufferId> containedBuffers() const { return _validBuffers; }
+    bool containsBuffer(const BufferId& id) const { return _validBuffers.contains(id); }
+    QSet<BufferId> containedBuffers() const { return _validBuffers; }
+
+    bool filterAcceptsRow(int sourceRow, const QModelIndex& sourceParent) const override;
 
 public slots:
     void messageTypeFilterChanged();
@@ -62,13 +67,10 @@ private:
     void init();
 
     QSet<BufferId> _validBuffers;
-    QMultiHash<QString, uint> _filteredQuitMsgs;
+    std::set<qint64> _filteredQuitMsgTime;  ///< Timestamps (ms) of already forwarded quit messages
     int _messageTypeFilter;
 
     int _userNoticesTarget;
     int _serverNoticesTarget;
     int _errorMsgsTarget;
 };
-
-
-#endif