Aaaaand here comes another protocol break! :)
authorMarcus Eggenberger <egs@quassel-irc.org>
Sun, 2 Mar 2008 16:02:49 +0000 (16:02 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sun, 2 Mar 2008 16:02:49 +0000 (16:02 +0000)
- Further speed improvements to the sync process.
- IrcUser null-pointer issue should be history.

src/common/ircchannel.cpp
src/common/ircuser.cpp
src/common/ircuser.h
src/common/network.cpp
version.inc

index eb63dd5..57be4e7 100644 (file)
@@ -260,11 +260,15 @@ QVariantMap IrcChannel::initUserModes() const {
 }
 
 void IrcChannel::initSetUserModes(const QVariantMap &usermodes) {
-  QMapIterator<QString, QVariant> iter(usermodes);
-  while(iter.hasNext()) {
-    iter.next();
-    setUserModes(iter.key(), iter.value().toString());
+  QList<IrcUser *> 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() {
index 4c12580..54a5764 100644 (file)
@@ -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);
-  }
-}
-
index 176e36e..3a46af8 100644 (file)
@@ -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);
index 2fbde1e..a3b9772 100644 (file)
@@ -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)
index 4ee7731..d664fd7 100644 (file)
@@ -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;
 
 }