fixing the creating of new buffers in the client. bye bye Client::buffer(BufferId)
authorMarcus Eggenberger <egs@quassel-irc.org>
Tue, 12 Aug 2008 22:23:07 +0000 (00:23 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Tue, 12 Aug 2008 22:23:07 +0000 (00:23 +0200)
src/client/client.cpp
src/client/client.h
src/client/networkmodel.cpp
src/client/networkmodel.h
src/qtui/bufferwidget.cpp
src/qtui/chatview.cpp
src/qtui/chatview.h

index 7cf25c1..48c471c 100644 (file)
@@ -160,15 +160,10 @@ Buffer *Client::statusBuffer(const NetworkId &networkId) const {
     return 0;
 }
 
     return 0;
 }
 
-Buffer *Client::buffer(BufferId bufferId) {
-  if(instance()->_buffers.contains(bufferId))
-    return instance()->_buffers[bufferId];
-  else
-    return 0;
-}
-
 Buffer *Client::buffer(BufferInfo bufferInfo) {
 Buffer *Client::buffer(BufferInfo bufferInfo) {
-  Buffer *buff = buffer(bufferInfo.bufferId());
+  Buffer *buff = 0;
+  if(instance()->_buffers.contains(bufferInfo.bufferId()))
+    buff = instance()->_buffers[bufferInfo.bufferId()];
 
   if(!buff) {
     Client *client = Client::instance();
 
   if(!buff) {
     Client *client = Client::instance();
index d8a2b4c..edda8c6 100644 (file)
@@ -64,7 +64,7 @@ public:
 
   static QList<BufferInfo> allBufferInfos();
   static QList<Buffer *> buffers();
 
   static QList<BufferInfo> allBufferInfos();
   static QList<Buffer *> buffers();
-  static Buffer *buffer(BufferId bufferUid);
+  // static Buffer *buffer(BufferId bufferUid);
   static Buffer *buffer(BufferInfo);
 
   static QList<NetworkId> networkIds();
   static Buffer *buffer(BufferInfo);
 
   static QList<NetworkId> networkIds();
index 3f806b5..5c65df9 100644 (file)
@@ -918,12 +918,7 @@ void NetworkModel::setLastSeenMsgId(const BufferId &bufferId, const MsgId &msgId
 }
 
 void NetworkModel::updateBufferActivity(const Message &msg) {
 }
 
 void NetworkModel::updateBufferActivity(const Message &msg) {
-  BufferItem *bufferItem = findBufferItem(msg.bufferInfo());
-  if(!bufferItem) {
-    qDebug() << "NetworkModel::updateBufferActivity(): buffer is unknown:" << msg.bufferInfo();
-    return;
-  }
-  bufferItem->updateActivityLevel(msg);
+  bufferItem(msg.bufferInfo())->updateActivityLevel(msg);
 }
 
 void NetworkModel::setBufferActivity(const BufferId &bufferId, Buffer::ActivityLevel level) {
 }
 
 void NetworkModel::setBufferActivity(const BufferId &bufferId, Buffer::ActivityLevel level) {
@@ -970,6 +965,20 @@ QString NetworkModel::bufferName(BufferId bufferId) {
   return _bufferItemCache[bufferId]->bufferName();
 }
 
   return _bufferItemCache[bufferId]->bufferName();
 }
 
+BufferInfo::Type NetworkModel::bufferType(BufferId bufferId) {
+  if(!_bufferItemCache.contains(bufferId))
+    return BufferInfo::InvalidBuffer;
+
+  return _bufferItemCache[bufferId]->bufferType();
+}
+
+BufferInfo NetworkModel::bufferInfo(BufferId bufferId) {
+  if(!_bufferItemCache.contains(bufferId))
+    return BufferInfo();
+
+  return _bufferItemCache[bufferId]->bufferInfo();
+}
+
 NetworkId NetworkModel::networkId(BufferId bufferId) {
   if(!_bufferItemCache.contains(bufferId))
     return NetworkId();
 NetworkId NetworkModel::networkId(BufferId bufferId) {
   if(!_bufferItemCache.contains(bufferId))
     return NetworkId();
@@ -991,10 +1000,3 @@ QString NetworkModel::networkName(BufferId bufferId) {
   else
     return QString();
 }
   else
     return QString();
 }
-
-BufferInfo::Type NetworkModel::bufferType(BufferId bufferId) {
-  if(!_bufferItemCache.contains(bufferId))
-    return BufferInfo::InvalidBuffer;
-
-  return _bufferItemCache[bufferId]->bufferType();
-}
index 1a9ace3..4ea7ddc 100644 (file)
@@ -297,10 +297,11 @@ public:
   Buffer::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
 
   QString bufferName(BufferId bufferId);
   Buffer::ActivityLevel bufferActivity(const BufferInfo &buffer) const;
 
   QString bufferName(BufferId bufferId);
+  BufferInfo::Type bufferType(BufferId bufferId);
+  BufferInfo bufferInfo(BufferId bufferId);
   MsgId lastSeenMsgId(BufferId bufferId);
   NetworkId networkId(BufferId bufferId);
   QString networkName(BufferId bufferId);
   MsgId lastSeenMsgId(BufferId bufferId);
   NetworkId networkId(BufferId bufferId);
   QString networkName(BufferId bufferId);
-  BufferInfo::Type bufferType(BufferId bufferId);
 
 public slots:
   void bufferUpdated(BufferInfo bufferInfo);
 
 public slots:
   void bufferUpdated(BufferInfo bufferInfo);
index a18a18c..fc06346 100644 (file)
@@ -31,7 +31,7 @@ BufferWidget::BufferWidget(QWidget *parent) : AbstractBufferContainer(parent) {
 
 AbstractChatView *BufferWidget::createChatView(BufferId id) {
   ChatView *chatView;
 
 AbstractChatView *BufferWidget::createChatView(BufferId id) {
   ChatView *chatView;
-  chatView = new ChatView(Client::buffer(id), this);
+  chatView = new ChatView(id, this);
   _chatViews[id] = chatView;
   ui.stackedWidget->addWidget(chatView);
   chatView->setFocusProxy(this);
   _chatViews[id] = chatView;
   ui.stackedWidget->addWidget(chatView);
   chatView->setFocusProxy(this);
index 6e40c09..77a0976 100644 (file)
 #include "messagefilter.h"
 #include "quasselui.h"
 
 #include "messagefilter.h"
 #include "quasselui.h"
 
-ChatView::ChatView(Buffer *buf, QWidget *parent)
+ChatView::ChatView(BufferId bufferId, QWidget *parent)
   : QGraphicsView(parent),
     AbstractChatView()
 {
   QList<BufferId> filterList;
   : QGraphicsView(parent),
     AbstractChatView()
 {
   QList<BufferId> filterList;
-  filterList.append(buf->bufferInfo().bufferId());
+  filterList.append(bufferId);
   MessageFilter *filter = new MessageFilter(Client::messageModel(), filterList, this);
   init(filter);
 
   MessageFilter *filter = new MessageFilter(Client::messageModel(), filterList, this);
   init(filter);
 
index 244b5f4..998d9fc 100644 (file)
@@ -36,7 +36,7 @@ class ChatView : public QGraphicsView, public AbstractChatView {
 
 public:
   ChatView(MessageFilter *, QWidget *parent = 0);
 
 public:
   ChatView(MessageFilter *, QWidget *parent = 0);
-  ChatView(Buffer *, QWidget *parent = 0);
+  ChatView(BufferId bufferId, QWidget *parent = 0);
 
   virtual MsgId lastMsgId() const;
   inline ChatScene *scene() const { return _scene; }
 
   virtual MsgId lastMsgId() const;
   inline ChatScene *scene() const { return _scene; }