improvements to the default layout
[quassel.git] / src / qtui / nicklistwidget.cpp
index 24f07a9..8219172 100644 (file)
@@ -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();
+}