X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fnetwork.cpp;h=db15d2538deec2915738a6074a35a653bf6bc3cd;hp=c7343ca31735a5528dddf9cc5dbc847e9da567ff;hb=f3e117c216aaaf7c684326270e96876a608862ef;hpb=1ed8c48b0e7d309e1a92c905a19fcb7128b73d3d diff --git a/src/common/network.cpp b/src/common/network.cpp index c7343ca3..db15d253 100644 --- a/src/common/network.cpp +++ b/src/common/network.cpp @@ -280,9 +280,7 @@ IrcUser *Network::newIrcUser(const QString &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 - //if(isInitialized()) - // ircuser->setInitialized(); + if(proxy()) proxy()->synchronize(ircuser); else @@ -290,6 +288,7 @@ IrcUser *Network::newIrcUser(const QString &hostmask) { connect(ircuser, SIGNAL(nickSet(QString)), this, SLOT(ircUserNickChanged(QString))); connect(ircuser, SIGNAL(initDone()), this, SLOT(ircUserInitDone())); + connect(ircuser, SIGNAL(destroyed()), this, SLOT(ircUserDestroyed())); _ircUsers[nick] = ircuser; emit ircUserAdded(hostmask); emit ircUserAdded(ircuser); @@ -368,9 +367,6 @@ quint32 Network::ircUserCount() const { IrcChannel *Network::newIrcChannel(const QString &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(isInitialized()) - // channel->setInitialized(); if(proxy()) proxy()->synchronize(channel); @@ -643,7 +639,13 @@ QStringList Network::initIrcUsers() const { } QStringList Network::initIrcChannels() const { - return _ircChannels.keys(); + QStringList channels; + QHash::const_iterator iter = _ircChannels.constBegin(); + while(iter != _ircChannels.constEnd()) { + channels << iter.value()->name(); + iter++; + } + return channels; } void Network::initSetSupports(const QVariantMap &supports) { @@ -667,10 +669,6 @@ void Network::initSetIrcUsers(const QStringList &hostmasks) { } void Network::initSetIrcChannels(const QStringList &channels) { - // FIXME This does not work correctly, "received data for unknown User" triggers - // So we disable this for now - return; - if(!_ircChannels.empty()) return; foreach(QString channel, channels)