X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.cpp;h=c7343ca31735a5528dddf9cc5dbc847e9da567ff;hp=b1a17a664f957b9e6424b9d6435ed352004269fb;hb=1ed8c48b0e7d309e1a92c905a19fcb7128b73d3d;hpb=da3aa4136fe01e142238f0f42fe1273481037b9d diff --git a/src/common/network.cpp b/src/common/network.cpp index b1a17a66..c7343ca3 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -301,6 +301,21 @@ IrcUser *Network::newIrcUser(const QByteArray &hostmask) { return newIrcUser(decodeServerString(hostmask)); } +void Network::ircUserDestroyed() { + IrcUser *ircUser = static_cast(sender()); + if(!ircUser) + return; + + QHash::iterator ircUserIter = _ircUsers.begin(); + while(ircUserIter != _ircUsers.end()) { + if(ircUser == *ircUserIter) { + ircUserIter = _ircUsers.erase(ircUserIter); + break; + } + ircUserIter++; + } +} + void Network::removeIrcUser(IrcUser *ircuser) { QString nick = _ircUsers.key(ircuser); if(nick.isNull()) @@ -313,6 +328,12 @@ void Network::removeIrcUser(IrcUser *ircuser) { ircuser->deleteLater(); } +void Network::removeIrcUser(const QString &nick) { + IrcUser *ircuser; + if((ircuser = ircUser(nick)) != 0) + removeIrcUser(ircuser); +} + void Network::removeChansAndUsers() { QList users = ircUsers(); foreach(IrcUser *user, users) { @@ -324,12 +345,6 @@ void Network::removeChansAndUsers() { } } -void Network::removeIrcUser(const QString &nick) { - IrcUser *ircuser; - if((ircuser = ircUser(nick)) != 0) - removeIrcUser(ircuser); -} - IrcUser *Network::ircUser(QString nickname) const { nickname = nickname.toLower(); if(_ircUsers.contains(nickname)) @@ -631,14 +646,6 @@ QStringList Network::initIrcChannels() const { return _ircChannels.keys(); } -QStringList Network::initPersistentChannels() const { - QStringList list; - foreach(QString chan, _persistentChannels.keys()) { - list << QString("%1/%2").arg(chan).arg(_persistentChannels.value(chan)); - } - return list; -} - void Network::initSetSupports(const QVariantMap &supports) { QMapIterator iter(supports); while(iter.hasNext()) { @@ -670,28 +677,6 @@ void Network::initSetIrcChannels(const QStringList &channels) { newIrcChannel(channel); } -void Network::initSetPersistentChannels(const QStringList &channels) { - foreach(QString chan, channels) { - QStringList l = chan.split("/"); - _persistentChannels[l[0]] = l[1]; - } -} - -void Network::addPersistentChannel(const QString &channel, const QString &key) { - _persistentChannels[channel.toLower()] = key; - emit persistentChannelAdded(channel, key); -} - -void Network::removePersistentChannel(const QString &channel) { - _persistentChannels.remove(channel.toLower()); - emit persistentChannelRemoved(channel); -} - -void Network::setPersistentChannelKey(const QString &channel, const QString &key) { - _persistentChannels[channel.toLower()] = key; - emit persistentChannelKeySet(channel, key); -} - IrcUser *Network::updateNickFromMask(const QString &mask) { QString nick(nickFromMask(mask).toLower()); IrcUser *ircuser;