+
+void Client::updateLastSeen(BufferId id, const QDateTime &lastSeen) {
+ Buffer *b = buffer(id);
+ if(!b) {
+ qWarning() << "Client::updateLastSeen(): Unknown buffer" << id;
+ return;
+ }
+ b->setLastSeen(lastSeen);
+}
+
+void Client::setBufferLastSeen(BufferId id, const QDateTime &lastSeen) {
+ if(!bufferSyncer()) return;
+ bufferSyncer()->requestSetLastSeen(id, lastSeen);
+}
+
+void Client::removeBuffer(BufferId id) {
+ if(!bufferSyncer()) return;
+ bufferSyncer()->requestRemoveBuffer(id);
+}
+
+void Client::bufferRemoved(BufferId bufferId) {
+ QModelIndex current = bufferModel()->currentIndex();
+ if(current.data(NetworkModel::BufferIdRole).value<BufferId>() == bufferId) {
+ // select the status buffer if the currently displayed buffer is about to be removed
+ bufferModel()->setCurrentIndex(current.sibling(0,0));
+ }
+
+ networkModel()->removeBuffer(bufferId);
+ if(_buffers.contains(bufferId)) {
+ Buffer *buff = _buffers.take(bufferId);
+ disconnect(buff, 0, this, 0);
+ buff->deleteLater();
+ }
+}
+
+void Client::bufferRenamed(BufferId bufferId, const QString &newName) {
+ QModelIndex bufferIndex = networkModel()->bufferIndex(bufferId);
+ if(bufferIndex.isValid()) {
+ networkModel()->setData(bufferIndex, newName, Qt::DisplayRole);
+ }
+}