Fixing a client crash that could be triggered under certain preconditions if a ircUse...
authorMarcus Eggenberger <egs@quassel-irc.org>
Mon, 4 Aug 2008 13:32:10 +0000 (15:32 +0200)
committerMarcus Eggenberger <egs@quassel-irc.org>
Mon, 4 Aug 2008 13:32:10 +0000 (15:32 +0200)
Also removing debug output from bufferview.cpp

src/client/networkmodel.cpp
src/client/treemodel.cpp
src/uisupport/bufferview.cpp

index d51e0ff..51f4123 100644 (file)
@@ -123,7 +123,7 @@ void NetworkItem::attachIrcChannel(IrcChannel *ircChannel) {
 
     if(channelItem->bufferName().toLower() == ircChannel->name().toLower()) {
       channelItem->attachIrcChannel(ircChannel);
 
     if(channelItem->bufferName().toLower() == ircChannel->name().toLower()) {
       channelItem->attachIrcChannel(ircChannel);
-      break;
+      return;
     }
   }
 }
     }
   }
 }
index 13b97f9..48394c5 100644 (file)
@@ -57,13 +57,13 @@ bool AbstractTreeItem::newChilds(const QList<AbstractTreeItem *> &items) {
 }
 
 bool AbstractTreeItem::removeChild(int row) {
 }
 
 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);
     return false;
 
   child(row)->removeAllChilds();
   emit beginRemoveChilds(row, row);
   AbstractTreeItem *treeitem = _childItems.takeAt(row);
-  treeitem->deleteLater();
+  delete treeitem;
   emit endRemoveChilds();
 
   checkForDeletion();
   emit endRemoveChilds();
 
   checkForDeletion();
@@ -94,7 +94,7 @@ void AbstractTreeItem::removeAllChilds() {
   while(childIter != _childItems.end()) {
     child = *childIter;
     childIter = _childItems.erase(childIter);
   while(childIter != _childItems.end()) {
     child = *childIter;
     childIter = _childItems.erase(childIter);
-    child->deleteLater();
+    delete child;
   }
   emit endRemoveChilds();
 
   }
   emit endRemoveChilds();
 
index be08c31..936c063 100644 (file)
@@ -431,7 +431,6 @@ void BufferView::contextMenuEvent(QContextMenuEvent *event) {
     _disconnectNetAction.setIcon(connectionStateIcon);
     _connectNetAction.setIcon(connectionStateIcon);
     addItemToMenu(showChannelList, contextMenu, index, ActiveState);
     _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);
     addItemToMenu(_disconnectNetAction, contextMenu, network->connectionState() != Network::Disconnected);
     addItemToMenu(_connectNetAction, contextMenu, network->connectionState() == Network::Disconnected);
     addSeparatorToMenu(contextMenu, index, ActiveState);