- if(bufferType != BufferInfo::ChannelBuffer) {
- ui.stackedWidget->setCurrentWidget(ui.emptyPage);
- QDockWidget *dock_ = dock();
- if(dock_) {
- dock_->close();
+ // See NickListDock::NickListDock() below
+// if(bufferType != BufferInfo::ChannelBuffer) {
+// ui.stackedWidget->setCurrentWidget(ui.emptyPage);
+// QDockWidget *dock_ = dock();
+// if(dock_) {
+// dock_->close();
+// }
+// return;
+// } else {
+// QDockWidget *dock_ = dock();
+// if(dock_ && dock_->toggleViewAction()->isChecked()) {
+// dock_->show();
+// }
+// }
+
+ if (newBufferId == oldBufferId)
+ return;
+
+ NickView *view;
+ if (nickViews.contains(newBufferId)) {
+ view = nickViews.value(newBufferId);
+ ui.stackedWidget->setCurrentWidget(view);
+ }
+ else {
+ view = new NickView(this);
+ NickViewFilter *filter = new NickViewFilter(newBufferId, Client::networkModel());
+ view->setModel(filter);
+ QModelIndex source_current = Client::bufferModel()->mapToSource(current);
+ view->setRootIndex(filter->mapFromSource(source_current));
+ nickViews[newBufferId] = view;
+ ui.stackedWidget->addWidget(view);
+ ui.stackedWidget->setCurrentWidget(view);
+ connect(view, SIGNAL(selectionUpdated()), SLOT(nickSelectionChanged()));