23 #include "ircdelayedoperationignore.h"
25 #include "gui/commongui.h"
26 #include "irc/configuration/chatnetworkscfg.h"
27 #include "irc/entities/ircnetworkentity.h"
28 #include "irc/entities/ircuserprefix.h"
29 #include "irc/ircnetworkadapter.h"
30 #include "irc/ircnetworkconnectioninfo.h"
31 #include "irc/ircresponseparser.h"
32 #include "patternlist.h"
33 #include <QInputDialog>
35 DClass<IRCDelayedOperationIgnore>
38 bool showPatternPopup;
41 QWidget *parentWidget;
43 QString cleanNickname()
const
48 QString networkDescription()
const
61 d->showPatternPopup =
false;
63 d->nickname = nickname;
64 d->parentWidget = parent;
65 this->connect(d->network->responseParser(),
66 SIGNAL(whoIsUser(QString,QString,QString,QString)),
67 SLOT(onWhoIsUser(QString,QString,QString)));
70 IRCDelayedOperationIgnore::~IRCDelayedOperationIgnore()
74 void IRCDelayedOperationIgnore::start()
76 d->network->sendMessage(QString(
"/whois %1").arg(d->cleanNickname()));
79 void IRCDelayedOperationIgnore::onWhoIsUser(
const QString &nickname,
const QString &user,
80 const QString &hostName)
82 QString ignorePattern =
"*!*@" + hostName;
83 if (d->showPatternPopup)
85 QString label = tr(
"Ignore user %1 (username=%2) on network %3:").arg(
86 nickname, user, d->networkDescription());
88 label, QLineEdit::Normal, ignorePattern);
90 if (!ignorePattern.trimmed().isEmpty())
95 patterns <<
Pattern(ignorePattern, QRegularExpression::CaseInsensitiveOption, Pattern::Wildcard);
96 network.setIgnoredUsers(patterns);
98 d->network->setNetworkEntity(network);
105 d->showPatternPopup = b;