X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fnicklistwidget.cpp;h=82191722fdbb7f5aa69993fd08f2086a97eb3759;hb=923ab935b9e2936d2512ef9344811e9bb2f436f3;hp=24f07a9ae540ea8c3f6055b931be5bcc8a1912bd;hpb=e226a532d5f6cb4ff58edd30421386c6f8dc7d4d;p=quassel.git diff --git a/src/qtui/nicklistwidget.cpp b/src/qtui/nicklistwidget.cpp index 24f07a9a..82191722 100644 --- a/src/qtui/nicklistwidget.cpp +++ b/src/qtui/nicklistwidget.cpp @@ -24,7 +24,7 @@ #include "nickview.h" #include "client.h" #include "networkmodel.h" -#include "nickmodel.h" +#include "nickviewfilter.h" NickListWidget::NickListWidget(QWidget *parent) : QWidget(parent), @@ -41,7 +41,7 @@ BufferId NickListWidget::currentBuffer() const { void NickListWidget::setCurrentBuffer(BufferId bufferId) { QModelIndex bufferIdx = Client::networkModel()->bufferIndex(bufferId); - if(bufferIdx.data(NetworkModel::BufferTypeRole) != BufferItem::ChannelType) { + if(bufferIdx.data(NetworkModel::BufferTypeRole) != BufferInfo::ChannelBuffer) { ui.stackedWidget->setCurrentWidget(ui.emptyPage); return; } @@ -50,8 +50,9 @@ void NickListWidget::setCurrentBuffer(BufferId bufferId) { ui.stackedWidget->setCurrentWidget(nickViews.value(bufferId)); } else { NickView *view = new NickView(this); - view->setModel(Client::nickModel()); - view->setRootIndex(Client::nickModel()->mapFromSource(bufferIdx)); + NickViewFilter *filter = new NickViewFilter(Client::networkModel()); + view->setModel(filter); + view->setRootIndex(filter->mapFromSource(bufferIdx)); nickViews[bufferId] = view; ui.stackedWidget->addWidget(view); ui.stackedWidget->setCurrentWidget(view); @@ -74,3 +75,11 @@ void NickListWidget::removeBuffer(BufferId bufferId) { ui.stackedWidget->removeWidget(view); view->deleteLater(); } + +QSize NickListWidget::sizeHint() const { + QWidget *currentWidget = ui.stackedWidget->currentWidget(); + if(!currentWidget || currentWidget == ui.emptyPage) + return QSize(100, height()); + else + return currentWidget->sizeHint(); +}