modernize: Prefer default member init over ctor init
[quassel.git] / src / client / clientignorelistmanager.h
index 841ff4f..797235e 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-09 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  *
  *   You should have received a copy of the GNU General Public License     *
  *   along with this program; if not, write to the                         *
  *   Free Software Foundation, Inc.,                                       *
- *   59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.             *
+ *   51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.         *
  ***************************************************************************/
 
-#ifndef CLIENTIGNORELISTMANAGER_H
-#define CLIENTIGNORELISTMANAGER_H
+#pragma once
+
+#include "client-export.h"
 
 #include "ignorelistmanager.h"
+#include <QMap>
 
-class ClientIgnoreListManager : public IgnoreListManager
+class CLIENT_EXPORT ClientIgnoreListManager : public IgnoreListManager
 {
-  Q_OBJECT
+    Q_OBJECT
 
 public:
-  explicit ClientIgnoreListManager(QObject *parent = 0);
-  inline virtual const QMetaObject *syncMetaObject() const { return &IgnoreListManager::staticMetaObject; }
+    explicit ClientIgnoreListManager(QObject *parent = nullptr);
+
+    //! Fetch all matching ignore rules for a given hostmask
+    /** \param hostmask The hostmask of the user
+      * \param network The network name
+      * \param channel The channel name
+      * \return Returns a QMap with the rule as key and a bool, representing if the rule is enabled or not, as value
+      */
+    QMap<QString, bool> matchingRulesForHostmask(const QString &hostmask, const QString &network, const QString &channel) const;
 
 signals:
-  void ignoreListChanged();
+    void ignoreListChanged();
 
-private slots:
-  void ignoreListUpdated(const QVariantMap &newMap);
+private:
+    // matches an ignore rule against a given string
+    bool pureMatch(const IgnoreListItem &item, const QString &string) const;
 };
-
-#endif // CLIENTIGNORELISTMANAGER_H