Query buffers are now automatically renamed on nickchanges.
authorMarcus Eggenberger <egs@quassel-irc.org>
Tue, 19 Feb 2008 18:37:01 +0000 (18:37 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 19 Feb 2008 18:37:01 +0000 (18:37 +0000)
You have to be in a channel with the query partner though (this is an IRC limitation).
Closing BR #92

20 files changed:
src/client/client.cpp
src/client/client.h
src/client/networkmodel.cpp
src/client/networkmodel.h
src/common/buffersyncer.cpp
src/common/buffersyncer.h
src/core/SQL/SQLite/7/update_buffer_name.sql [new file with mode: 0644]
src/core/core.cpp
src/core/core.h
src/core/coresession.cpp
src/core/coresession.h
src/core/ircserverhandler.cpp
src/core/ircserverhandler.h
src/core/networkconnection.cpp
src/core/networkconnection.h
src/core/sql.qrc
src/core/sqlitestorage.cpp
src/core/sqlitestorage.h
src/core/storage.h
version.inc

index be2c894..b9515e7 100644 (file)
@@ -285,6 +285,7 @@ void Client::setSyncedToCore() {
   _bufferSyncer = new BufferSyncer(this);
   connect(bufferSyncer(), SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(updateLastSeen(BufferId, const QDateTime &)));
   connect(bufferSyncer(), SIGNAL(bufferRemoved(BufferId)), this, SLOT(bufferRemoved(BufferId)));
   _bufferSyncer = new BufferSyncer(this);
   connect(bufferSyncer(), SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(updateLastSeen(BufferId, const QDateTime &)));
   connect(bufferSyncer(), SIGNAL(bufferRemoved(BufferId)), this, SLOT(bufferRemoved(BufferId)));
+  connect(bufferSyncer(), SIGNAL(bufferRenamed(BufferId, QString)), this, SLOT(bufferRenamed(BufferId, QString)));
   signalProxy()->synchronize(bufferSyncer());
 
   _syncedToCore = true;
   signalProxy()->synchronize(bufferSyncer());
 
   _syncedToCore = true;
@@ -479,3 +480,10 @@ void Client::bufferRemoved(BufferId bufferId) {
     buff->deleteLater();
   }
 }
     buff->deleteLater();
   }
 }
+
+void Client::bufferRenamed(BufferId bufferId, const QString &newName) {
+  QModelIndex bufferIndex = networkModel()->bufferIndex(bufferId);
+  if(bufferIndex.isValid()) {
+    networkModel()->setData(bufferIndex, newName, Qt::DisplayRole);
+  }
+}
index c7e3ae1..cb6620b 100644 (file)
@@ -158,6 +158,7 @@ public slots:
   void setCoreConfiguration(const QVariantMap &settings);
 
   void bufferRemoved(BufferId bufferId);
   void setCoreConfiguration(const QVariantMap &settings);
 
   void bufferRemoved(BufferId bufferId);
+  void bufferRenamed(BufferId bufferId, const QString &newName);
 
 private slots:
   //void coreSocketError(QAbstractSocket::SocketError);
 
 private slots:
   //void coreSocketError(QAbstractSocket::SocketError);
index b10afd0..05340a3 100644 (file)
@@ -37,6 +37,7 @@
 BufferItem::BufferItem(BufferInfo bufferInfo, AbstractTreeItem *parent)
   : PropertyMapItem(QStringList() << "bufferName" << "topic" << "nickCount", parent),
     _bufferInfo(bufferInfo),
 BufferItem::BufferItem(BufferInfo bufferInfo, AbstractTreeItem *parent)
   : PropertyMapItem(QStringList() << "bufferName" << "topic" << "nickCount", parent),
     _bufferInfo(bufferInfo),
+    _bufferName(bufferInfo.bufferName()),
     _activity(Buffer::NoActivity)
 {
   Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled;
     _activity(Buffer::NoActivity)
 {
   Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled;
@@ -158,7 +159,15 @@ QString BufferItem::bufferName() const {
   if(bufferType() == BufferInfo::StatusBuffer)
     return tr("Status Buffer");
   else
   if(bufferType() == BufferInfo::StatusBuffer)
     return tr("Status Buffer");
   else
-    return bufferInfo().bufferName();
+    return _bufferName;
+}
+
+void BufferItem::setBufferName(const QString &name) {
+  _bufferName = name;
+  // as long as we need those bufferInfos, we have to update that one aswell.
+  // pretty ugly though :/
+  _bufferInfo = BufferInfo(_bufferInfo.bufferId(), _bufferInfo.networkId(), _bufferInfo.type(), _bufferInfo.groupId(), _bufferInfo.bufferName());
+  emit dataChanged(0);
 }
 
 QString BufferItem::topic() const {
 }
 
 QString BufferItem::topic() const {
index 1fd5767..9cfc7b7 100644 (file)
@@ -45,7 +45,7 @@ class IrcUser;
  *****************************************/
 class BufferItem : public PropertyMapItem {
   Q_OBJECT
  *****************************************/
 class BufferItem : public PropertyMapItem {
   Q_OBJECT
-  Q_PROPERTY(QString bufferName READ bufferName)
+  Q_PROPERTY(QString bufferName READ bufferName WRITE setBufferName)
   Q_PROPERTY(QString topic READ topic)
   Q_PROPERTY(int nickCount READ nickCount)
 
   Q_PROPERTY(QString topic READ topic)
   Q_PROPERTY(int nickCount READ nickCount)
 
@@ -60,6 +60,7 @@ public:
   void attachIrcChannel(IrcChannel *ircChannel);
 
   QString bufferName() const;
   void attachIrcChannel(IrcChannel *ircChannel);
 
   QString bufferName() const;
+  void setBufferName(const QString &name);
   QString topic() const;
   int nickCount() const;
 
   QString topic() const;
   int nickCount() const;
 
@@ -91,6 +92,7 @@ private slots:
 
 private:
   BufferInfo _bufferInfo;
 
 private:
   BufferInfo _bufferInfo;
+  QString _bufferName;
   Buffer::ActivityLevel _activity;
 
   QPointer<IrcChannel> _ircChannel;
   Buffer::ActivityLevel _activity;
 
   QPointer<IrcChannel> _ircChannel;
index 227370c..d4c6918 100644 (file)
@@ -71,3 +71,7 @@ void BufferSyncer::removeBuffer(BufferId buffer) {
     _lastSeen.remove(buffer);
   emit bufferRemoved(buffer);
 }
     _lastSeen.remove(buffer);
   emit bufferRemoved(buffer);
 }
+
+void BufferSyncer::renameBuffer(BufferId buffer, QString newName) {
+  emit bufferRenamed(buffer, newName);
+}
index a7e7886..aa64118 100644 (file)
@@ -41,12 +41,14 @@ class BufferSyncer : public SyncableObject {
     void requestSetLastSeen(BufferId buffer, const QDateTime &time);
     void requestRemoveBuffer(BufferId buffer);
     void removeBuffer(BufferId buffer);
     void requestSetLastSeen(BufferId buffer, const QDateTime &time);
     void requestRemoveBuffer(BufferId buffer);
     void removeBuffer(BufferId buffer);
+    void renameBuffer(BufferId buffer, QString newName);
 
   signals:
     void lastSeenSet(BufferId buffer, const QDateTime &time);
     void setLastSeenRequested(BufferId buffer, const QDateTime &time);
     void removeBufferRequested(BufferId buffer);
     void bufferRemoved(BufferId buffer);
 
   signals:
     void lastSeenSet(BufferId buffer, const QDateTime &time);
     void setLastSeenRequested(BufferId buffer, const QDateTime &time);
     void removeBufferRequested(BufferId buffer);
     void bufferRemoved(BufferId buffer);
+    void bufferRenamed(BufferId buffer, QString newName);
 
   private slots:
     bool setLastSeen(BufferId buffer, const QDateTime &time);
 
   private slots:
     bool setLastSeen(BufferId buffer, const QDateTime &time);
diff --git a/src/core/SQL/SQLite/7/update_buffer_name.sql b/src/core/SQL/SQLite/7/update_buffer_name.sql
new file mode 100644 (file)
index 0000000..14d65e7
--- /dev/null
@@ -0,0 +1,3 @@
+UPDATE buffer
+SET buffername = :buffername, buffercname = :buffercname
+WHERE bufferid = :bufferid
index 05d020e..03d22d4 100644 (file)
@@ -275,6 +275,11 @@ bool Core::removeBuffer(const UserId &user, const BufferId &bufferId) {
   return instance()->storage->removeBuffer(user, bufferId);
 }
 
   return instance()->storage->removeBuffer(user, bufferId);
 }
 
+BufferId Core::renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName) {
+  QMutexLocker locker(&mutex);
+  return instance()->storage->renameBuffer(user, networkId, newName, oldName);
+}
+
 void Core::setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate) {
   QMutexLocker locker(&mutex);
   return instance()->storage->setBufferLastSeen(user, bufferId, seenDate);
 void Core::setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate) {
   QMutexLocker locker(&mutex);
   return instance()->storage->setBufferLastSeen(user, bufferId, seenDate);
index fb26028..bb1adf0 100644 (file)
@@ -177,6 +177,16 @@ class Core : public QObject {
      */
     static bool removeBuffer(const UserId &user, const BufferId &bufferId);
 
      */
     static bool removeBuffer(const UserId &user, const BufferId &bufferId);
 
+    //! Rename a Buffer
+    /** \note This method is threadsafe.
+     *  \param user      The id of the buffer owner
+     *  \param networkId The id of the network the buffer belongs to
+     *  \param newName   The new name of the buffer
+     *  \param oldName   The previous name of the buffer
+     *  \return the BufferId of the affected buffer or an invalid BufferId if not successfull
+     */
+    static BufferId renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName);
+
     //! Update the LastSeenDate for a Buffer
     /** This Method is used to make the LastSeenDate of a Buffer persistent
      *  \note This method is threadsafe.
     //! Update the LastSeenDate for a Buffer
     /** This Method is used to make the LastSeenDate of a Buffer persistent
      *  \note This method is threadsafe.
index c9891d2..33f094c 100644 (file)
@@ -75,6 +75,7 @@ CoreSession::CoreSession(UserId uid, bool restoreState, QObject *parent) : QObje
   connect(_bufferSyncer, SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(storeBufferLastSeen(BufferId, const QDateTime &)));
   connect(_bufferSyncer, SIGNAL(removeBufferRequested(BufferId)), this, SLOT(removeBufferRequested(BufferId)));
   connect(this, SIGNAL(bufferRemoved(BufferId)), _bufferSyncer, SLOT(removeBuffer(BufferId)));
   connect(_bufferSyncer, SIGNAL(lastSeenSet(BufferId, const QDateTime &)), this, SLOT(storeBufferLastSeen(BufferId, const QDateTime &)));
   connect(_bufferSyncer, SIGNAL(removeBufferRequested(BufferId)), this, SLOT(removeBufferRequested(BufferId)));
   connect(this, SIGNAL(bufferRemoved(BufferId)), _bufferSyncer, SLOT(removeBuffer(BufferId)));
+  connect(this, SIGNAL(bufferRenamed(BufferId, QString)), _bufferSyncer, SLOT(renameBuffer(BufferId, QString)));
   p->synchronize(_bufferSyncer);
 
   // Restore session state
   p->synchronize(_bufferSyncer);
 
   // Restore session state
@@ -242,6 +243,8 @@ void CoreSession::attachNetworkConnection(NetworkConnection *conn) {
          this, SLOT(recvMessageFromServer(Message::Type, BufferInfo::Type, QString, QString, QString, quint8)));
   connect(conn, SIGNAL(displayStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString)));
 
          this, SLOT(recvMessageFromServer(Message::Type, BufferInfo::Type, QString, QString, QString, quint8)));
   connect(conn, SIGNAL(displayStatusMsg(QString)), this, SLOT(recvStatusMsgFromServer(QString)));
 
+  connect(conn, SIGNAL(nickChanged(const NetworkId &, const QString &, const QString &)),
+         this, SLOT(renameBuffer(const NetworkId &, const QString &, const QString &)));
 }
 
 void CoreSession::disconnectFromNetwork(NetworkId id) {
 }
 
 void CoreSession::disconnectFromNetwork(NetworkId id) {
@@ -500,3 +503,10 @@ void CoreSession::removeBufferRequested(BufferId bufferId) {
   if(Core::removeBuffer(user(), bufferId))
     emit bufferRemoved(bufferId);
 }
   if(Core::removeBuffer(user(), bufferId))
     emit bufferRemoved(bufferId);
 }
+
+void CoreSession::renameBuffer(const NetworkId &networkId, const QString &newName, const QString &oldName) {
+  BufferId bufferId = Core::renameBuffer(user(), networkId, newName, oldName);
+  if(bufferId.isValid()) {
+    emit bufferRenamed(bufferId, newName);
+  }
+}
index 545bf9c..a52e039 100644 (file)
@@ -106,7 +106,15 @@ public slots:
    *  emits bufferRemoved(bufferId) on success.
    */
   void removeBufferRequested(BufferId bufferId);
    *  emits bufferRemoved(bufferId) on success.
    */
   void removeBufferRequested(BufferId bufferId);
-    
+
+  //! Rename a Buffer for a given network
+  /* \param networkId The id of the network the buffer belongs to
+   * \param newName   The new name of the buffer
+   * \param oldName   The old name of the buffer
+   * emits bufferRenamed(bufferId, newName) on success.
+   */
+  void renameBuffer(const NetworkId &networkId, const QString &newName, const QString &oldName);
+  
 signals:
   void initialized();
 
 signals:
   void initialized();
 
@@ -138,6 +146,7 @@ signals:
   void networkCreated(NetworkId);
   void networkRemoved(NetworkId);
   void bufferRemoved(BufferId);
   void networkCreated(NetworkId);
   void networkRemoved(NetworkId);
   void bufferRemoved(BufferId);
+  void bufferRenamed(BufferId, QString);
 
 private slots:
   void recvStatusMsgFromServer(QString msg);
 
 private slots:
   void recvStatusMsgFromServer(QString msg);
index 957ef6e..fd7e055 100644 (file)
@@ -241,6 +241,8 @@ void IrcServerHandler::handleNick(const QString &prefix, const QList<QByteArray>
     ? newnick
     : prefix;
 
     ? newnick
     : prefix;
 
+
+  emit nickChanged(newnick, oldnick);
   foreach(QString channel, ircuser->channels())
     emit displayMsg(Message::Nick, BufferInfo::ChannelBuffer, channel, newnick, sender);
   
   foreach(QString channel, ircuser->channels())
     emit displayMsg(Message::Nick, BufferInfo::ChannelBuffer, channel, newnick, sender);
   
index 94e62b1..89289fc 100644 (file)
@@ -66,6 +66,9 @@ public slots:
 
   void defaultHandler(QString cmd, const QString &prefix, const QList<QByteArray> &params);
 
 
   void defaultHandler(QString cmd, const QString &prefix, const QList<QByteArray> &params);
 
+signals:
+  void nickChanged(const QString &newNick, const QString &oldNick); // this signal is inteded to rename query buffers in the storage backend
+  
 private:
   void tryNextNick(const QString &errnick);
   bool _whois;
 private:
   void tryNextNick(const QString &errnick);
   bool _whois;
index 395f134..5830d02 100644 (file)
@@ -60,6 +60,8 @@ NetworkConnection::NetworkConnection(Network *network, CoreSession *session, con
   connect(&socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(socketStateChanged(QAbstractSocket::SocketState)));
   connect(&socket, SIGNAL(readyRead()), this, SLOT(socketHasData()));
 
   connect(&socket, SIGNAL(stateChanged(QAbstractSocket::SocketState)), this, SLOT(socketStateChanged(QAbstractSocket::SocketState)));
   connect(&socket, SIGNAL(readyRead()), this, SLOT(socketHasData()));
 
+  connect(_ircServerHandler, SIGNAL(nickChanged(const QString &, const QString &)),
+         this, SLOT(nickChanged(const QString &, const QString &)));
 }
 
 NetworkConnection::~NetworkConnection() {
 }
 
 NetworkConnection::~NetworkConnection() {
@@ -340,6 +342,10 @@ void NetworkConnection::putCmd(const QString &cmd, const QVariantList &params, c
   putRawLine(msg);
 }
 
   putRawLine(msg);
 }
 
+void NetworkConnection::nickChanged(const QString &newNick, const QString &oldNick) {
+  emit nickChanged(_network->networkId(), newNick, oldNick);
+}
+
 /* Exception classes for message handling */
 NetworkConnection::ParseError::ParseError(QString cmd, QString prefix, QStringList params) {
   Q_UNUSED(prefix);
 /* Exception classes for message handling */
 NetworkConnection::ParseError::ParseError(QString cmd, QString prefix, QStringList params) {
   Q_UNUSED(prefix);
@@ -350,3 +356,4 @@ NetworkConnection::UnknownCmdError::UnknownCmdError(QString cmd, QString prefix,
   Q_UNUSED(prefix);
   _msg = QString("Unknown Command: ") + cmd + params.join(" ");
 }
   Q_UNUSED(prefix);
   _msg = QString("Unknown Command: ") + cmd + params.join(" ");
 }
+
index ace1e4e..83dcdec 100644 (file)
@@ -94,6 +94,7 @@ private slots:
   void sendPerform();
   void autoReconnectSettingsChanged();
   void doAutoReconnect();
   void sendPerform();
   void autoReconnectSettingsChanged();
   void doAutoReconnect();
+  void nickChanged(const QString &newNick, const QString &oldNick); // this signal is inteded to rename query buffers in the storage backend
 
 signals:
   // #void networkState(QString net, QVariantMap data);
 
 signals:
   // #void networkState(QString net, QVariantMap data);
@@ -110,7 +111,7 @@ signals:
   void quitRequested(NetworkId networkId);
 
   //void queryRequested(QString network, QString nick);
   void quitRequested(NetworkId networkId);
 
   //void queryRequested(QString network, QString nick);
-
+  void nickChanged(const NetworkId &networkId, const QString &newNick, const QString &oldNick); // this signal is inteded to rename query buffers in the storage backend
 
 private slots:
   void socketHasData();
 
 private slots:
   void socketHasData();
index 3474dd7..47886fb 100644 (file)
@@ -81,6 +81,7 @@
     <file>./SQL/SQLite/7/setup_080_ircservers.sql</file>
     <file>./SQL/SQLite/7/setup_999_version.sql</file>
     <file>./SQL/SQLite/7/update_buffer_lastseen.sql</file>
     <file>./SQL/SQLite/7/setup_080_ircservers.sql</file>
     <file>./SQL/SQLite/7/setup_999_version.sql</file>
     <file>./SQL/SQLite/7/update_buffer_lastseen.sql</file>
+    <file>./SQL/SQLite/7/update_buffer_name.sql</file>
     <file>./SQL/SQLite/7/update_network.sql</file>
     <file>./SQL/SQLite/7/update_username.sql</file>
     <file>./SQL/SQLite/7/update_userpassword.sql</file>
     <file>./SQL/SQLite/7/update_network.sql</file>
     <file>./SQL/SQLite/7/update_username.sql</file>
     <file>./SQL/SQLite/7/update_userpassword.sql</file>
index ed705a8..be02b38 100644 (file)
@@ -463,6 +463,47 @@ bool SqliteStorage::removeBuffer(const UserId &user, const BufferId &bufferId) {
   return true;
 }
 
   return true;
 }
 
+BufferId SqliteStorage::renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName) {
+  // check if such a buffer exists...
+  QSqlQuery existsQuery(logDb());
+  existsQuery.prepare(queryString("select_bufferByName"));
+  existsQuery.bindValue(":networkid", networkId.toInt());
+  existsQuery.bindValue(":userid", user.toInt());
+  existsQuery.bindValue(":buffercname", oldName.toLower());
+  existsQuery.exec();
+  if(!watchQuery(&existsQuery))
+    return false;
+
+  if(!existsQuery.first())
+    return false;
+
+  const int bufferid = existsQuery.value(0).toInt();
+
+  Q_ASSERT(!existsQuery.next());
+
+  // ... and if the new name is still free.
+  existsQuery.bindValue(":networkid", networkId.toInt());
+  existsQuery.bindValue(":userid", user.toInt());
+  existsQuery.bindValue(":buffercname", newName.toLower());
+  existsQuery.exec();
+  if(!watchQuery(&existsQuery))
+    return false;
+
+  if(existsQuery.first())
+    return false;
+
+  QSqlQuery renameBufferQuery(logDb());
+  renameBufferQuery.prepare(queryString("update_buffer_name"));
+  renameBufferQuery.bindValue(":buffername", newName);
+  renameBufferQuery.bindValue(":buffercname", newName.toLower());
+  renameBufferQuery.bindValue(":bufferid", bufferid);
+  renameBufferQuery.exec();
+  if(watchQuery(&existsQuery))
+    return BufferId(bufferid);
+  else
+    return BufferId();
+}
+
 void SqliteStorage::setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate) {
   QSqlQuery *query = cachedQuery("update_buffer_lastseen");
   query->bindValue(":userid", user.toInt());
 void SqliteStorage::setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate) {
   QSqlQuery *query = cachedQuery("update_buffer_lastseen");
   query->bindValue(":userid", user.toInt());
index 71fe392..4c133e6 100644 (file)
@@ -62,6 +62,7 @@ public slots:
   virtual BufferInfo getBufferInfo(UserId user, const BufferId &bufferId);
   virtual QList<BufferInfo> requestBuffers(UserId user, QDateTime since = QDateTime());
   virtual bool removeBuffer(const UserId &user, const BufferId &bufferId);
   virtual BufferInfo getBufferInfo(UserId user, const BufferId &bufferId);
   virtual QList<BufferInfo> requestBuffers(UserId user, QDateTime since = QDateTime());
   virtual bool removeBuffer(const UserId &user, const BufferId &bufferId);
+  virtual BufferId renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName);
   virtual void setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate);
   virtual QHash<BufferId, QDateTime> bufferLastSeenDates(UserId user);
   
   virtual void setBufferLastSeen(UserId user, const BufferId &bufferId, const QDateTime &seenDate);
   virtual QHash<BufferId, QDateTime> bufferLastSeenDates(UserId user);
   
index 3915d09..2c975ca 100644 (file)
@@ -183,6 +183,15 @@ class Storage : public QObject {
      *  \return true if successfull
      */
     virtual bool removeBuffer(const UserId &user, const BufferId &bufferId) = 0;
      *  \return true if successfull
      */
     virtual bool removeBuffer(const UserId &user, const BufferId &bufferId) = 0;
+
+    //! Rename a Buffer
+    /** \param user      The id of the buffer owner
+     *  \param networkId The id of the network the buffer belongs to
+     *  \param newName   The new name of the buffer
+     *  \param oldName   The previous name of the buffer
+     *  \return the BufferId of the affected buffer or an invalid BufferId if not successfull
+     */
+    virtual BufferId renameBuffer(const UserId &user, const NetworkId &networkId, const QString &newName, const QString &oldName) = 0;
   
     //! Update the LastSeenDate for a Buffer
     /** This Method is used to make the LastSeenDate of a Buffer persistent
   
     //! Update the LastSeenDate for a Buffer
     /** This Method is used to make the LastSeenDate of a Buffer persistent
@@ -234,6 +243,8 @@ class Storage : public QObject {
   signals:
     //! Sent when a new BufferInfo is created, or an existing one changed somehow.
     void bufferInfoUpdated(UserId user, const BufferInfo &);
   signals:
     //! Sent when a new BufferInfo is created, or an existing one changed somehow.
     void bufferInfoUpdated(UserId user, const BufferInfo &);
+    //! Sent when a Buffer was renamed
+    void bufferRenamed(const QString &newName, const QString &oldName);
     //! Sent when a new user has been added
     void userAdded(UserId, const QString &username);
     //! Sent when a user has been renamed
     //! Sent when a new user has been added
     void userAdded(UserId, const QString &username);
     //! Sent when a user has been renamed
index e9770bb..872ce98 100644 (file)
@@ -5,7 +5,7 @@
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-19";
 
   quasselVersion = "0.2.0-pre";
   quasselDate = "2008-02-19";
-  quasselBuild = 555;
+  quasselBuild = 557;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;
 
   //! Minimum client build number the core needs
   clientBuildNeeded = 526;