From: Marcus Eggenberger Date: Sun, 2 Mar 2008 16:02:49 +0000 (+0000) Subject: Aaaaand here comes another protocol break! :) X-Git-Tag: 0.2.0-alpha3~29 X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=commitdiff_plain;h=c2b60983d1a144088cb9e0be9c5ae001621925c3 Aaaaand here comes another protocol break! :) - Further speed improvements to the sync process. - IrcUser null-pointer issue should be history. --- diff --git a/src/common/ircchannel.cpp b/src/common/ircchannel.cpp index eb63dd57..57be4e79 100644 --- a/src/common/ircchannel.cpp +++ b/src/common/ircchannel.cpp @@ -260,11 +260,15 @@ QVariantMap IrcChannel::initUserModes() const { } void IrcChannel::initSetUserModes(const QVariantMap &usermodes) { - QMapIterator iter(usermodes); - while(iter.hasNext()) { - iter.next(); - setUserModes(iter.key(), iter.value().toString()); + QList users; + QStringList modes; + QVariantMap::const_iterator iter = usermodes.constBegin(); + while(iter != usermodes.constEnd()) { + users << network->newIrcUser(iter.key()); + modes << iter.value().toString(); + iter++; } + joinIrcUsers(users, modes); } void IrcChannel::ircUserDestroyed() { diff --git a/src/common/ircuser.cpp b/src/common/ircuser.cpp index 4c12580d..54a57647 100644 --- a/src/common/ircuser.cpp +++ b/src/common/ircuser.cpp @@ -300,10 +300,3 @@ void IrcUser::removeUserMode(const QString &mode) { emit userModeRemoved(mode); } } - -void IrcUser::initSetChannels(const QStringList channels) { - foreach(QString channel, channels) { - joinChannel(channel); - } -} - diff --git a/src/common/ircuser.h b/src/common/ircuser.h index 176e36ee..3a46af84 100644 --- a/src/common/ircuser.h +++ b/src/common/ircuser.h @@ -105,9 +105,6 @@ public slots: void addUserMode(const QString &mode); void removeUserMode(const QString &mode); - // init seters - void initSetChannels(const QStringList channels); - signals: void userSet(QString user); void hostSet(QString host); diff --git a/src/common/network.cpp b/src/common/network.cpp index 2fbde1e3..a3b97729 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 @@ -369,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); @@ -668,10 +663,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) diff --git a/version.inc b/version.inc index 4ee7731a..d664fd7e 100644 --- a/version.inc +++ b/version.inc @@ -5,14 +5,14 @@ quasselVersion = "0.2.0-alpha3-pre"; quasselDate = "2008-03-02"; - quasselBuild = 610; + quasselBuild = 612; //! Minimum client build number the core needs - clientBuildNeeded = 605; + clientBuildNeeded = 612; clientVersionNeeded = quasselVersion; //! Minimum core build number the client needs - coreBuildNeeded = 605; + coreBuildNeeded = 612; coreVersionNeeded = quasselVersion; }