X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fuisupport%2Fbufferview.cpp;h=ffa5ca8d818f8cfaf6e0249d79298791528e93f3;hp=78d8bae0cdd215f12e531c18d1f1709b47acc75d;hb=6fe30667a4a4747e8fad048dad499f7d2390b044;hpb=e017aca90eb3444df68fb365a5d50b05881b1c5c diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index 78d8bae0..ffa5ca8d 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -129,11 +129,25 @@ void BufferView::setFilteredModel(QAbstractItemModel *model_, BufferViewConfig * } else { BufferViewFilter *filter = new BufferViewFilter(model_, config); setModel(filter); - connect(this, SIGNAL(removeBuffer(const QModelIndex &)), filter, SLOT(removeBuffer(const QModelIndex &))); + connect(this, SIGNAL(removeBuffer(const QModelIndex &)), + filter, SLOT(removeBuffer(const QModelIndex &))); } setConfig(config); } +void BufferView::setSelectionModel(QItemSelectionModel *selectionModel) { + if(QTreeView::selectionModel()) + disconnect(selectionModel, SIGNAL(currentChanged(QModelIndex, QModelIndex)), + model(), SIGNAL(checkPreviousCurrentForRemoval(QModelIndex, QModelIndex))); + + QTreeView::setSelectionModel(selectionModel); + BufferViewFilter *filter = qobject_cast(model()); + if(filter) { + connect(selectionModel, SIGNAL(currentChanged(QModelIndex, QModelIndex)), + filter, SLOT(checkPreviousCurrentForRemoval(QModelIndex, QModelIndex))); + } +} + void BufferView::setConfig(BufferViewConfig *config) { if(_config == config) return;