}
// I think this is unnecessary since IrcUsers have us as their daddy :)
-// NetworkInfo::~NetworkInfo() {
+//NetworkInfo::~NetworkInfo() {
// QHashIterator<QString, IrcUser *> ircuser(_ircUsers);
// while (ircuser.hasNext()) {
// ircuser.next();
// delete ircuser.value();
// }
-// }
+//}
uint NetworkInfo::networkId() const {
return _networkId;
// mark IrcUser as already initialized to keep the SignalProxy from requesting initData
if(initialized())
ircuser->setInitialized();
- _proxy->synchronize(ircuser);
+ if(proxy())
+ proxy()->synchronize(ircuser);
+ else
+ qWarning() << "unable to synchronize new IrcUser" << hostmask << "forgot to call NetworkInfo::setProxy(SignalProxy *)?";
connect(ircuser, SIGNAL(nickSet(QString)), this, SLOT(ircUserNickChanged(QString)));
connect(ircuser, SIGNAL(initDone()), this, SIGNAL(ircUserInitDone()));
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)
+ removeIrcUser(ircuser);
+}
+
IrcUser *NetworkInfo::ircUser(const QString &nickname) const {
if(_ircUsers.contains(nickname))
return _ircUsers[nickname];
// mark IrcUser as already initialized to keep the SignalProxy from requesting initData
if(initialized())
channel->setInitialized();
- _proxy->synchronize(channel);
+
+ if(proxy())
+ proxy()->synchronize(channel);
+ else
+ qWarning() << "unable to synchronize new IrcChannel" << channelname << "forgot to call NetworkInfo::setProxy(SignalProxy *)?";
connect(channel, SIGNAL(initDone()), this, SIGNAL(ircChannelInitDone()));
connect(channel, SIGNAL(destroyed()), this, SLOT(channelDestroyed()));
void NetworkInfo::ircUserDestroyed() {
IrcUser *ircuser = static_cast<IrcUser *>(sender());
Q_ASSERT(ircuser);
- _ircUsers.remove(_ircUsers.key(ircuser));
+ removeIrcUser(ircuser);
}
void NetworkInfo::channelDestroyed() {
_prefixes = PREFIX.section(")", 1);
_prefixModes = PREFIX.mid(1).section(")", 0, 0);
} else {
- QString defaultPrefixes("@%+");
- QString defaultPrefixModes("ohv");
+ QString defaultPrefixes("~&@%+");
+ QString defaultPrefixModes("qaohv");
// we just assume that in PREFIX are only prefix chars stored
for(int i = 0; i < defaultPrefixes.size(); i++) {