modernize: Replace most remaining old-style connects by PMF ones
[quassel.git] / src / client / clientignorelistmanager.cpp
index e54eeb7..a23f891 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.         *
  ***************************************************************************/
 
 #include "clientignorelistmanager.h"
 
-INIT_SYNCABLE_OBJECT(ClientIgnoreListManager)
-
 ClientIgnoreListManager::ClientIgnoreListManager(QObject *parent)
     : IgnoreListManager(parent)
 {
-  connect(this, SIGNAL(updated()), SIGNAL(ignoreListChanged()));
+    connect(this, &SyncableObject::updatedRemotely, this, &ClientIgnoreListManager::ignoreListChanged);
+}
+
+
+bool ClientIgnoreListManager::pureMatch(const IgnoreListItem &item, const QString &string) const
+{
+    return (item.contentsMatcher().match(string));
+}
+
+
+QMap<QString, bool> ClientIgnoreListManager::matchingRulesForHostmask(const QString &hostmask, const QString &network, const QString &channel) const
+{
+    QMap<QString, bool> result;
+    foreach(IgnoreListItem item, ignoreList()) {
+        if (item.type() == SenderIgnore && pureMatch(item, hostmask)
+            && ((network.isEmpty() && channel.isEmpty())
+                || item.scope() == GlobalScope
+                || (item.scope() == NetworkScope && item.scopeRuleMatcher().match(network))
+                || (item.scope() == ChannelScope && item.scopeRuleMatcher().match(channel)))) {
+            result[item.contents()] = item.isEnabled();
+            // qDebug() << "matchingRulesForHostmask found: " << item.contents()
+            //         << "is active: " << item.isActive;
+        }
+    }
+    return result;
 }