23 #include "ircdelayedoperationignore.h" 
   25 #include "irc/configuration/chatnetworkscfg.h" 
   26 #include "irc/entities/ircnetworkentity.h" 
   27 #include "irc/entities/ircuserprefix.h" 
   28 #include "irc/ircnetworkadapter.h" 
   29 #include "irc/ircnetworkconnectioninfo.h" 
   30 #include "irc/ircresponseparser.h" 
   31 #include "patternlist.h" 
   32 #include <QInputDialog> 
   34 DClass<IRCDelayedOperationIgnore>
 
   37         bool showPatternPopup;
 
   40         QWidget *parentWidget;
 
   42         QString cleanNickname()
 const 
   47         QString networkDescription()
 const 
   60         d->showPatternPopup = 
false;
 
   62         d->nickname = nickname;
 
   63         d->parentWidget = parent;
 
   64         this->connect(d->network->responseParser(),
 
   65                 SIGNAL(whoIsUser(QString,QString,QString,QString)),
 
   66                 SLOT(onWhoIsUser(QString,QString,QString)));
 
   69 IRCDelayedOperationIgnore::~IRCDelayedOperationIgnore()
 
   73 void IRCDelayedOperationIgnore::start()
 
   75         d->network->sendMessage(QString(
"/whois %1").arg(d->cleanNickname()));
 
   78 void IRCDelayedOperationIgnore::onWhoIsUser(
const QString &nickname, 
const QString &user,
 
   79         const QString &hostName)
 
   81         QString ignorePattern = 
"*!*@" + hostName;
 
   82         if (d->showPatternPopup)
 
   84                 QString label = tr(
"Ignore user %1 (username=%2) on network %3:").arg(
 
   85                         nickname, user, d->networkDescription());
 
   86                 ignorePattern = QInputDialog::getText(d->parentWidget, tr(
"IRC - Ignore user"),
 
   87                         label, QLineEdit::Normal, ignorePattern);
 
   89         if (!ignorePattern.trimmed().isEmpty())
 
   94                 patterns << QRegExp(ignorePattern, Qt::CaseInsensitive, QRegExp::Wildcard);
 
   95                 network.setIgnoredUsers(patterns);
 
   97                 d->network->setNetworkEntity(network);
 
  104         d->showPatternPopup = b;