X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=80da554c9366195316f8a4219ec87c40015583ee;hp=e7c3512308bc6d3a51e60c4aa55d626af9ea43f6;hb=87b24eb1af046b40109dcba3a9f65b7939d3a35d;hpb=2dd7667489021341267d316472d375e8c89c79c0 diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index e7c35123..80da554c 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -220,7 +220,14 @@ void NetworksSettingsPage::setItemState(NetworkId id, QListWidgetItem *item) { if(oldid > 0) continue; // only locally created nets should be replaced if(oldid == currentId) select = true; int row = ui.networkList->row(i); - if(row >= 0) delete ui.networkList->takeItem(row); + if(row >= 0) { + QListWidgetItem *olditem = ui.networkList->takeItem(row); + 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; } @@ -282,7 +289,7 @@ void NetworksSettingsPage::clientIdentityRemoved(IdentityId id) { if(currentId != 0) saveToNetworkInfo(networkInfos[currentId]); //ui.identityList->removeItem(ui.identityList->findData(id.toInt())); foreach(NetworkInfo info, networkInfos.values()) { - qDebug() << info.networkName << info.networkId << info.identity; + //qDebug() << info.networkName << info.networkId << info.identity; if(info.identity == id) { if(info.networkId == currentId) ui.identityList->setCurrentIndex(0); info.identity = 1; // set to default @@ -327,9 +334,9 @@ void NetworksSettingsPage::clientNetworkRemoved(NetworkId id) { if(id == currentId) displayNetwork(0); NetworkInfo info = networkInfos.take(id); QList items = ui.networkList->findItems(info.networkName, Qt::MatchExactly); - if(items.count()) { - Q_ASSERT(items[0]->data(Qt::UserRole).value() == id); - delete ui.networkList->takeItem(ui.networkList->row(items[0])); + foreach(QListWidgetItem *item, items) { + if(item->data(Qt::UserRole).value() == id) + delete ui.networkList->takeItem(ui.networkList->row(item)); } setWidgetStates(); widgetHasChanged(); @@ -398,13 +405,8 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) { } ui.autoReconnect->setChecked(info.useAutoReconnect); ui.reconnectInterval->setValue(info.autoReconnectInterval); - if(info.autoReconnectRetries >= 0) { - ui.reconnectRetries->setValue(info.autoReconnectRetries); - ui.unlimitedRetries->setChecked(false); - } else { - ui.reconnectRetries->setValue(1); - ui.unlimitedRetries->setChecked(true); - } + ui.reconnectRetries->setValue(info.autoReconnectRetries); + ui.unlimitedRetries->setChecked(info.unlimitedReconnectRetries); ui.rejoinOnReconnect->setChecked(info.rejoinChannels); } else { // just clear widgets @@ -432,8 +434,8 @@ void NetworksSettingsPage::saveToNetworkInfo(NetworkInfo &info) { } info.useAutoReconnect = ui.autoReconnect->isChecked(); info.autoReconnectInterval = ui.reconnectInterval->value(); - if(ui.unlimitedRetries->isChecked()) info.autoReconnectRetries = -1; - else info.autoReconnectRetries = ui.reconnectRetries->value(); + info.autoReconnectRetries = ui.reconnectRetries->value(); + info.unlimitedReconnectRetries = ui.unlimitedRetries->isChecked(); info.rejoinChannels = ui.rejoinOnReconnect->isChecked(); } /*** Network list ***/ @@ -474,6 +476,7 @@ void NetworksSettingsPage::on_addNetwork_clicked() { info.useAutoReconnect = true; info.autoReconnectInterval = 60; info.autoReconnectRetries = 20; + info.unlimitedReconnectRetries = false; info.useAutoIdentify = false; info.autoIdentifyService = "NickServ"; info.rejoinChannels = true;