/***************************************************************************
- * Copyright (C) 2005-07 by The Quassel Team *
+ * Copyright (C) 2005-07 by the Quassel IRC Team *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* it under the terms of the GNU General Public License as published by *
* the Free Software Foundation; either version 2 of the License, or *
- * (at your option) any later version. *
+ * (at your option) version 3. *
* *
* This program is distributed in the hope that it will be useful, *
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
}
IrcUser *NetworkInfo::newIrcUser(const QString &hostmask) {
- QString nick(nickFromMask(hostmask));
+ QString nick(nickFromMask(hostmask).toLower());
if(!_ircUsers.contains(nick)) {
IrcUser *ircuser = new IrcUser(hostmask, this);
// mark IrcUser as already initialized to keep the SignalProxy from requesting initData
_ircUsers[nick] = ircuser;
emit ircUserAdded(hostmask);
}
- return _ircUsers[nick];
+ return _ircUsers[nick];
+}
+
+void NetworkInfo::removeIrcUser(IrcUser *ircuser) {
+ QString nick = _ircUsers.key(ircuser);
+ if(nick.isNull())
+ return;
+
+ _ircUsers.remove(nick);
+ ircuser->deleteLater();
+ emit ircUserRemoved(nick);
}
void NetworkInfo::removeIrcUser(QString nick) {
IrcUser *ircuser;
- if((ircuser = ircUser(nick)) != 0) {
- ircuser->deleteLater();
- emit ircUserRemoved(nick);
- }
+ if((ircuser = ircUser(nick)) != 0)
+ removeIrcUser(ircuser);
}
-IrcUser *NetworkInfo::ircUser(const QString &nickname) const {
+IrcUser *NetworkInfo::ircUser(QString nickname) const {
+ nickname = nickname.toLower();
if(_ircUsers.contains(nickname))
return _ircUsers[nickname];
else
}
IrcChannel *NetworkInfo::newIrcChannel(const QString &channelname) {
- if(!_ircChannels.contains(channelname)) {
+ if(!_ircChannels.contains(channelname.toLower())) {
IrcChannel *channel = new IrcChannel(channelname, this);
// mark IrcUser as already initialized to keep the SignalProxy from requesting initData
if(initialized())
connect(channel, SIGNAL(initDone()), this, SIGNAL(ircChannelInitDone()));
connect(channel, SIGNAL(destroyed()), this, SLOT(channelDestroyed()));
- _ircChannels[channelname] = channel;
+ _ircChannels[channelname.toLower()] = channel;
emit ircChannelAdded(channelname);
}
- return _ircChannels[channelname];
+ return _ircChannels[channelname.toLower()];
}
-IrcChannel *NetworkInfo::ircChannel(const QString &channelname) {
+IrcChannel *NetworkInfo::ircChannel(QString channelname) {
+ channelname = channelname.toLower();
if(_ircChannels.contains(channelname))
return _ircChannels[channelname];
else
}
IrcUser *NetworkInfo::updateNickFromMask(const QString &mask) {
- QString nick(nickFromMask(mask));
+ QString nick(nickFromMask(mask).toLower());
IrcUser *ircuser;
if(_ircUsers.contains(nick)) {
if(oldnick.isNull())
return;
+
+ if(newnick.toLower() != oldnick) _ircUsers[newnick.toLower()] = _ircUsers.take(oldnick);
- _ircUsers[newnick] = _ircUsers.take(oldnick);
-
- if(myNick() == oldnick)
+ if(myNick().toLower() == oldnick)
setMyNick(newnick);
}
void NetworkInfo::ircUserDestroyed() {
IrcUser *ircuser = static_cast<IrcUser *>(sender());
Q_ASSERT(ircuser);
- QString nick = _ircUsers.key(ircuser);
- _ircUsers.remove(nick);
- emit ircUserRemoved(nick);
+ removeIrcUser(ircuser);
}
void NetworkInfo::channelDestroyed() {