X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fclient%2Fnetworkmodel.cpp;h=bec3edf1496bcf1e434b675572c22ceb16f54599;hb=c6b3980fe063e5022882a31a132dec6952f8c6a7;hp=713198aa59922f9c5b8173006537b034b954ecbd;hpb=7a1202a4d6b127521ac1d460aed45ffe9383ebf0;p=quassel.git diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index 713198aa..bec3edf1 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -41,7 +41,8 @@ BufferItem::BufferItem(BufferInfo bufferInfo, AbstractTreeItem *parent) : PropertyMapItem(QStringList() << "bufferName" << "topic" << "nickCount", parent), _bufferInfo(bufferInfo), _bufferName(bufferInfo.bufferName()), - _activity(Buffer::NoActivity) + _activity(Buffer::NoActivity), + _ircChannel(0) { Qt::ItemFlags flags = Qt::ItemIsEnabled | Qt::ItemIsSelectable | Qt::ItemIsDragEnabled; if(bufferType() == BufferInfo::QueryBuffer) @@ -144,6 +145,9 @@ void BufferItem::attachIrcChannel(IrcChannel *ircChannel) { } void BufferItem::ircChannelDestroyed() { + Q_CHECK_PTR(_ircChannel); + disconnect(_ircChannel, 0, this, 0); + _ircChannel = 0; emit dataChanged(); removeAllChilds(); } @@ -414,7 +418,9 @@ void NetworkItem::attachNetwork(Network *network) { this, SLOT(attachIrcChannel(QString))); connect(network, SIGNAL(connectedSet(bool)), this, SIGNAL(dataChanged())); - + connect(network, SIGNAL(destroyed()), + this, SIGNAL(dataChanged())); + emit dataChanged(); }