+void BufferView::layoutChanged() {
+ Q_ASSERT(model());
+
+ // expand all active networks
+ QModelIndex networkIdx;
+ for(int row = 0; row < model()->rowCount(); row++) {
+ networkIdx = model()->index(row, 0);
+ update(networkIdx);
+ if(model()->rowCount(networkIdx) > 0 && model()->data(networkIdx, NetworkModel::ItemActiveRole) == true) {
+ expand(networkIdx);
+ } else {
+ collapse(networkIdx);
+ }
+ }
+
+ // update selection to current one
+ MappedSelectionModel *mappedSelectionModel = qobject_cast<MappedSelectionModel *>(selectionModel());
+ if(!config() || !mappedSelectionModel)
+ return;
+
+ mappedSelectionModel->mappedSetCurrentIndex(Client::bufferModel()->standardSelectionModel()->currentIndex(), QItemSelectionModel::Current);
+ mappedSelectionModel->mappedSelect(Client::bufferModel()->standardSelectionModel()->selection(), QItemSelectionModel::ClearAndSelect | QItemSelectionModel::Rows);
+}
+