X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=573a033d645b1d54a7795003970fae564ac93eeb;hp=65301f0f5a8e8e52cf3c55ab5ecf687af1049834;hb=ae08f5f790fa9dd8f2c0e85717d292ee15d57cd3;hpb=8010224cf5bfe5685dc2cf535e8dc1ec19c4c364 diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index 65301f0f..573a033d 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -218,9 +218,21 @@ void NetworksSettingsPage::setItemState(NetworkId id, QListWidgetItem *item) { foreach(QListWidgetItem *i, items) { NetworkId oldid = i->data(Qt::UserRole).value(); if(oldid > 0) continue; // only locally created nets should be replaced - if(oldid == currentId) select = true; + if(oldid == currentId) { + select = true; + currentId = 0; + } int row = ui.networkList->row(i); - if(row >= 0) delete ui.networkList->takeItem(row); + if(row >= 0) { + qDebug() << "ABOUT TO REMOVE: id=" << oldid << "from row" << row; + QListWidgetItem *olditem = ui.networkList->takeItem(row); + qDebug() << "Successfully removed item from list."; + if(!olditem) { + qWarning() << "NetworksSettingsPage::setItemState(): Why the heck don't we have an itempointer here?"; + Q_ASSERT(olditem); // abort non-gracefully, I need to figure out what's causing this + } + else delete olditem; + } networkInfos.remove(oldid); break; }