modernize: Replace most remaining old-style connects by PMF ones
[quassel.git] / src / client / clientignorelistmanager.cpp
index e7d701f..a23f891 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-2016 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  *
 
 #include "clientignorelistmanager.h"
 
-#include <QRegExp>
-
-INIT_SYNCABLE_OBJECT(ClientIgnoreListManager)
-
 ClientIgnoreListManager::ClientIgnoreListManager(QObject *parent)
     : IgnoreListManager(parent)
 {
-    connect(this, SIGNAL(updatedRemotely()), SIGNAL(ignoreListChanged()));
+    connect(this, &SyncableObject::updatedRemotely, this, &ClientIgnoreListManager::ignoreListChanged);
 }
 
 
 bool ClientIgnoreListManager::pureMatch(const IgnoreListItem &item, const QString &string) const
 {
-    QRegExp ruleRx = QRegExp(item.ignoreRule);
-    ruleRx.setCaseSensitivity(Qt::CaseInsensitive);
-    if (!item.isRegEx)
-        ruleRx.setPatternSyntax(QRegExp::Wildcard);
-
-    if ((!item.isRegEx && ruleRx.exactMatch(string)) ||
-        (item.isRegEx && ruleRx.indexIn(string) != -1))
-        return true;
-    return false;
+    return (item.contentsMatcher().match(string));
 }
 
 
@@ -49,11 +37,14 @@ QMap<QString, bool> ClientIgnoreListManager::matchingRulesForHostmask(const QStr
 {
     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 && scopeMatch(item.scopeRule, network))
-                || (item.scope == ChannelScope && scopeMatch(item.scopeRule, channel)))) {
-            result[item.ignoreRule] = item.isActive;
-//      qDebug() << "matchingRulesForHostmask found: " << item.ignoreRule << "is active: " << item.isActive;
+        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;