From e561e02a8d2f1f009559d17c7b1c66cb6f4e2a5a Mon Sep 17 00:00:00 2001 From: Marcus Eggenberger Date: Mon, 4 Aug 2008 15:32:10 +0200 Subject: [PATCH] Fixing a client crash that could be triggered under certain preconditions if a ircUser object was destroyed. Also removing debug output from bufferview.cpp --- src/client/networkmodel.cpp | 2 +- src/client/treemodel.cpp | 6 +++--- src/uisupport/bufferview.cpp | 1 - 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/client/networkmodel.cpp b/src/client/networkmodel.cpp index d51e0ffc..51f4123d 100644 --- a/src/client/networkmodel.cpp +++ b/src/client/networkmodel.cpp @@ -123,7 +123,7 @@ void NetworkItem::attachIrcChannel(IrcChannel *ircChannel) { if(channelItem->bufferName().toLower() == ircChannel->name().toLower()) { channelItem->attachIrcChannel(ircChannel); - break; + return; } } } diff --git a/src/client/treemodel.cpp b/src/client/treemodel.cpp index 13b97f9b..48394c5e 100644 --- a/src/client/treemodel.cpp +++ b/src/client/treemodel.cpp @@ -57,13 +57,13 @@ bool AbstractTreeItem::newChilds(const QList &items) { } bool AbstractTreeItem::removeChild(int row) { - if(childCount() <= row) + if(row < 0 || childCount() <= row) return false; child(row)->removeAllChilds(); emit beginRemoveChilds(row, row); AbstractTreeItem *treeitem = _childItems.takeAt(row); - treeitem->deleteLater(); + delete treeitem; emit endRemoveChilds(); checkForDeletion(); @@ -94,7 +94,7 @@ void AbstractTreeItem::removeAllChilds() { while(childIter != _childItems.end()) { child = *childIter; childIter = _childItems.erase(childIter); - child->deleteLater(); + delete child; } emit endRemoveChilds(); diff --git a/src/uisupport/bufferview.cpp b/src/uisupport/bufferview.cpp index be08c313..936c0636 100644 --- a/src/uisupport/bufferview.cpp +++ b/src/uisupport/bufferview.cpp @@ -431,7 +431,6 @@ void BufferView::contextMenuEvent(QContextMenuEvent *event) { _disconnectNetAction.setIcon(connectionStateIcon); _connectNetAction.setIcon(connectionStateIcon); addItemToMenu(showChannelList, contextMenu, index, ActiveState); - qDebug() << "state:" << network->connectionState() << Network::Disconnected << Network::Disconnecting; addItemToMenu(_disconnectNetAction, contextMenu, network->connectionState() != Network::Disconnected); addItemToMenu(_connectNetAction, contextMenu, network->connectionState() == Network::Disconnected); addSeparatorToMenu(contextMenu, index, ActiveState); -- 2.20.1