Actually... I have nearly no clue what the changes in this revision are. Since most...
authorMarcus Eggenberger <egs@quassel-irc.org>
Sun, 21 Oct 2007 18:59:17 +0000 (18:59 +0000)
committerMarcus Eggenberger <egs@quassel-irc.org>
Sun, 21 Oct 2007 18:59:17 +0000 (18:59 +0000)
src/client/buffer.cpp
src/client/buffer.h
src/client/buffertreemodel.cpp
src/client/client.cpp
src/client/client.h
src/qtui/bufferview.cpp
src/qtui/bufferviewfilter.cpp
src/qtui/bufferwidget.cpp

index 1561428..b82a695 100644 (file)
@@ -31,11 +31,11 @@ Buffer::Buffer(BufferInfo bufferid, QObject *parent)
     _active(false)
 {
   if(bufferid.buffer().isEmpty())
-    _type = ServerBuffer;
+    _type = StatusType;
   else if(isChannelName(bufferid.buffer()))
-    _type = ChannelBuffer;
+    _type = ChannelType;
   else
-    _type = QueryBuffer;
+    _type = QueryType;
 
 /*
   QSettings s;
@@ -55,7 +55,6 @@ Buffer::~Buffer() {
   s.endGroup();
 */
   //delete state;
-  emit bufferDestroyed(this);
 }
 
 Buffer::Type Buffer::bufferType() const {
@@ -88,7 +87,7 @@ QString Buffer::bufferName() const {
 }
 
 QString Buffer::displayName() const {
-  if(bufferType() == ServerBuffer)
+  if(bufferType() == StatusType)
     return tr("Status Buffer");
   else
     return bufferName();
@@ -114,7 +113,7 @@ QString Buffer::ownNick() const {
 }
 
 bool Buffer::isStatusBuffer() const {
-   return bufferType() == ServerBuffer;
+   return bufferType() == StatusType;
 }
 
 void Buffer::setActive(bool a) {
index 3465e5f..b67a0f4 100644 (file)
@@ -38,12 +38,12 @@ class Buffer : public QObject {
 
 public:
   Buffer(BufferInfo, QObject *parent = 0);
-  ~Buffer();
+  virtual ~Buffer();
 
   enum Type {
-    ServerBuffer,
-    ChannelBuffer,
-    QueryBuffer
+    StatusType,
+    ChannelType,
+    QueryType
   };
 
   enum Activity {
@@ -79,7 +79,6 @@ signals:
   void topicSet(QString topic);
   void ownNickSet(QString ownNick);
   void bufferUpdated(Buffer *);
-  void bufferDestroyed(Buffer *);
 
   void msgAppended(AbstractUiMsg *);
   void msgPrepended(AbstractUiMsg *);
index 26612f9..633731b 100644 (file)
@@ -91,7 +91,7 @@ QVariant BufferTreeItem::data(int column, int role) const {
 
 Qt::ItemFlags BufferTreeItem::flags() const {
   Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled;
-  if(buf->bufferType() == Buffer::QueryBuffer)
+  if(buf->bufferType() == Buffer::QueryType)
     flags |= Qt::ItemIsDropEnabled;
 
   return flags;
@@ -209,7 +209,7 @@ bool BufferTreeModel::dropMimeData(const QMimeData *data, Qt::DropAction /*actio
   Buffer *sourceBuffer = static_cast<BufferTreeItem *>(rootItem->childById(qHash(network))->child(sourcerow))->buffer();
   Buffer *targetBuffer = getBufferByIndex(parent);
 
-  if(!(sourceBuffer->bufferType() & targetBuffer->bufferType() & Buffer::QueryBuffer)) // only queries can be merged
+  if(!(sourceBuffer->bufferType() & targetBuffer->bufferType() & Buffer::QueryType)) // only queries can be merged
     return false;
   
   if(sourceBuffer == targetBuffer) // we won't merge with ourself :)
index 4a6111e..f2d1ddd 100644 (file)
@@ -94,11 +94,8 @@ Buffer *Client::buffer(BufferInfo id) {
            client, SLOT(userInput(BufferInfo, QString)));
     connect(buff, SIGNAL(bufferUpdated(Buffer *)),
            client, SIGNAL(bufferUpdated(Buffer *)));
-    connect(buff, SIGNAL(bufferDestroyed(Buffer *)),
-           client, SIGNAL(bufferDestroyed(Buffer *)));
-    connect(buff, SIGNAL(bufferDestroyed(Buffer *)),
-           client, SLOT(removeBuffer(Buffer *)));
-    
+    connect(buff, SIGNAL(destroyed()),
+           client, SLOT(bufferDestroyed()));
     client->_buffers[id.uid()] = buff;
     emit client->bufferUpdated(buff);
   }
@@ -269,14 +266,12 @@ void Client::coreSocketDisconnected() {
   _bufferModel->clear();
 
   foreach(Buffer *buffer, _buffers.values()) {
-    delete buffer;
+    buffer->deleteLater();
   }
-  Q_ASSERT(_buffers.empty());
 
   foreach(NetworkInfo *networkinfo, _networkInfo.values()) {
-    delete networkinfo;
+    networkinfo->deleteLater();
   }
-  Q_ASSERT(_networkInfo.empty());
 
   coreConnectionInfo.clear();
   sessionData.clear();
@@ -455,9 +450,9 @@ void Client::updateBufferInfo(BufferInfo id) {
   buffer(id)->updateBufferInfo(id);
 }
 
-
-void Client::removeBuffer(Buffer *b) {
-  _buffers.remove(b->bufferInfo().uid());
+void Client::bufferDestroyed() {
+  Buffer *buffer = static_cast<Buffer *>(sender());
+  _buffers.remove(_buffers.key(buffer));
 }
 
 void Client::recvMessage(const Message &msg) {
index 7970651..7aeb548 100644 (file)
@@ -81,7 +81,6 @@ signals:
   void bufferSelected(Buffer *);
   void bufferUpdated(Buffer *);
   void bufferActivity(Buffer::ActivityLevel, Buffer *);
-  void bufferDestroyed(Buffer *);
   void backlogReceived(Buffer *, QList<Message>);
   void requestBacklog(BufferInfo, QVariant, QVariant);
   void requestNetworkStates();
@@ -125,7 +124,7 @@ private slots:
   void recvBacklogData(BufferInfo, QVariantList, bool);
   void updateBufferInfo(BufferInfo);
 
-  void removeBuffer(Buffer *);
+  void bufferDestroyed();
 
   void layoutMsg();
 
index c57737f..c60aa80 100644 (file)
@@ -86,7 +86,7 @@ void BufferView::dropEvent(QDropEvent *event) {
 void BufferView::joinChannel(const QModelIndex &index) {
   Buffer::Type bufferType = (Buffer::Type)index.data(BufferTreeModel::BufferTypeRole).toInt();
 
-  if(bufferType != Buffer::ChannelBuffer)
+  if(bufferType != Buffer::ChannelType)
     return;
   
   Client::fakeInput(index.data(BufferTreeModel::BufferUidRole).toUInt(), QString("/JOIN %1").arg(index.sibling(index.row(), 0).data().toString()));
index 84dc447..4fe8fed 100644 (file)
@@ -109,9 +109,9 @@ void BufferViewFilter::removeBuffer(const QModelIndex &index) {
 
 bool BufferViewFilter::filterAcceptBuffer(const QModelIndex &source_bufferIndex) const {
   Buffer::Type bufferType = (Buffer::Type) source_bufferIndex.data(BufferTreeModel::BufferTypeRole).toInt();
-  if((mode & NoChannels) && bufferType == Buffer::ChannelBuffer) return false;
-  if((mode & NoQueries) && bufferType == Buffer::QueryBuffer) return false;
-  if((mode & NoServers) && bufferType == Buffer::ServerBuffer) return false;
+  if((mode & NoChannels) && bufferType == Buffer::ChannelType) return false;
+  if((mode & NoQueries) && bufferType == Buffer::QueryType) return false;
+  if((mode & NoServers) && bufferType == Buffer::StatusType) return false;
 
   bool isActive = source_bufferIndex.data(BufferTreeModel::BufferActiveRole).toBool();
   if((mode & NoActive) && isActive) return false;
index 2deb46b..dbeb571 100644 (file)
@@ -53,7 +53,7 @@ void BufferWidget::setBuffer(Buffer *buf) {
   } else {
     BufferState *s = new BufferState;
     s->currentLine = Settings::guiValue(QString("BufferStates/%1/%2/currentLine").arg(buf->networkName()).arg(buf->bufferName()), -1).toInt();
-    if(buf->bufferType() == Buffer::ChannelBuffer) {
+    if(buf->bufferType() == Buffer::ChannelType) {
       s->splitterState = Settings::guiValue(QString("BufferStates/%1/%2/splitter").arg(buf->networkName()).arg(buf->bufferName())).toByteArray();
       s->splitter = new QSplitter(this);
       s->chatWidget = new ChatWidget(s->splitter);