X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtopia%2Fnicklistwidget.cpp;h=7c8361f94c2bf9419ced0b56bf8c802b2f36c836;hp=2a148b3ac45818a26dd35bccea57c223e673dbf7;hb=36b2b9680ff608f41c681b8c23865abb06a2464c;hpb=99c92e21b3b9eb5ed661632cdfb69aabfc6b2deb diff --git a/src/qtopia/nicklistwidget.cpp b/src/qtopia/nicklistwidget.cpp index 2a148b3a..7c8361f9 100644 --- a/src/qtopia/nicklistwidget.cpp +++ b/src/qtopia/nicklistwidget.cpp @@ -5,7 +5,7 @@ * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * - * (at your option) any later version. * + * (at your option) version 3. * * * * This program is distributed in the hope that it will be useful, * * but WITHOUT ANY WARRANTY; without even the implied warranty of * @@ -19,11 +19,14 @@ ***************************************************************************/ #include "nicklistwidget.h" -#include "nickmodel.h" + +#include "buffer.h" +#include "nickview.h" NickListWidget::NickListWidget(QWidget *parent) : QDialog(parent) { ui.setupUi(this); - + setModal(true); + setStyleSheet("background-color: rgba(220, 220, 255, 40%); color: rgb(0, 0, 0); font-size: 5pt;"); } @@ -34,7 +37,40 @@ NickListWidget::~NickListWidget() { } -void NickListWidget::setNickModel(NickModel *model) { - ui.nickView->setModel(model); +void NickListWidget::setBuffer(Buffer *buf) { + if(!buf) { + ui.stackedWidget->setCurrentWidget(ui.emptyPage); + return; + } + if(buf->bufferType() != Buffer::ChannelType) { + ui.stackedWidget->setCurrentWidget(ui.emptyPage); + } else { + if(nickViews.contains(buf)) { + ui.stackedWidget->setCurrentWidget(nickViews.value(buf)); + } else { + NickView *view = new NickView(this); + view->setModel(buf->nickModel()); + nickViews[buf] = view; + ui.stackedWidget->addWidget(view); + ui.stackedWidget->setCurrentWidget(view); + connect(buf, SIGNAL(destroyed(QObject *)), this, SLOT(bufferDestroyed(QObject *))); + } + } +} + +void NickListWidget::reset() { + foreach(NickView *view, nickViews.values()) { + ui.stackedWidget->removeWidget(view); + view->deleteLater(); + } + nickViews.clear(); +} +void NickListWidget::bufferDestroyed(QObject *buf) { + if(nickViews.contains((Buffer *)buf)) { + NickView *view = nickViews.take((Buffer *)buf); + ui.stackedWidget->removeWidget(view); + view->deleteLater(); + } } +