_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;
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
- QModelIndex newCurrent = current.sibling(0,0);
- bufferModel()->standardSelectionModel()->setCurrentIndex(newCurrent, QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
- bufferModel()->standardSelectionModel()->select(newCurrent, QItemSelectionModel::ClearAndSelect);
+ bufferModel()->setCurrentIndex(current.sibling(0,0));
}
networkModel()->removeBuffer(bufferId);
buff->deleteLater();
}
}
+
+void Client::bufferRenamed(BufferId bufferId, const QString &newName) {
+ QModelIndex bufferIndex = networkModel()->bufferIndex(bufferId);
+ if(bufferIndex.isValid()) {
+ networkModel()->setData(bufferIndex, newName, Qt::DisplayRole);
+ }
+}