X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fcontextmenuactionprovider.cpp;h=55932e3f274487fda08dde43c3e627464b748b70;hp=fbe454159892504f4e11908b7a645616ceaaf882;hb=bfc818029e87656c7b7f322d04f6e168261a96f6;hpb=c5569840d50b68a518d474917be804efc543c088 diff --git a/src/uisupport/contextmenuactionprovider.cpp b/src/uisupport/contextmenuactionprovider.cpp index fbe45415..55932e3f 100644 --- a/src/uisupport/contextmenuactionprovider.cpp +++ b/src/uisupport/contextmenuactionprovider.cpp @@ -400,7 +400,7 @@ void ContextMenuActionProvider::addIgnoreMenu(QMenu *menu, const QString &hostma QString ident = userFromMask(hostmask); QString host = hostFromMask(hostmask); QString domain = host; - QRegExp domainRx = QRegExp("(\\.[^.]+\\.\\w+)$"); + QRegExp domainRx = QRegExp("(\\.[^.]+\\.\\w+\\D)$"); if(domainRx.indexIn(host) != -1) domain = domainRx.cap(1); // we can't rely on who-data @@ -430,7 +430,10 @@ void ContextMenuActionProvider::addIgnoreMenu(QMenu *menu, const QString &hostma ignoreMenu->addAction(action(NickIgnoreUser)); if(!ignoreMap.contains(action(NickIgnoreHost)->property("ignoreRule").toString())) ignoreMenu->addAction(action(NickIgnoreHost)); - if(!ignoreMap.contains(action(NickIgnoreDomain)->property("ignoreRule").toString())) + // we only add that NickIgnoreDomain if it isn't the same as NickIgnoreUser + // as happens with @foobar.com hostmasks and ips + if(!ignoreMap.contains(action(NickIgnoreDomain)->property("ignoreRule").toString()) + && action(NickIgnoreUser)->property("ignoreRule").toString() != action(NickIgnoreDomain)->property("ignoreRule").toString()) ignoreMenu->addAction(action(NickIgnoreDomain)); }