+
+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::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
+ QModelIndex newCurrent = current.sibling(0,0);
+ bufferModel()->standardSelectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+ bufferModel()->standardSelectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect);
+ }
+
+ 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);
+ }
+}