X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=8dc7b15c5ea1971bcbb57bbec6d3122c1a22c5f1;hp=7c98306fb0dc3fcebd5c8340694a1f141241030b;hb=dcac65fc4beeb1167de8ebec5cc54608fc314fd3;hpb=4dc83e1ad7f059aeb41d6e401ebd677b56af676a diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index 7c98306f..8dc7b15c 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -28,9 +28,13 @@ #include "iconloader.h" #include "identity.h" #include "network.h" +#include "settingspagedlg.h" #include "util.h" -NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("General"), tr("Networks"), parent) { +#include "settingspages/identitiessettingspage.h" + +NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) +: SettingsPage(tr("Misc"), tr("Networks"), parent) { ui.setupUi(this); // set up icons @@ -434,7 +438,10 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) { ui.identityList->setCurrentIndex(ui.identityList->findData(info.identity.toInt())); ui.serverList->clear(); foreach(Network::Server server, info.serverList) { - ui.serverList->addItem(QString("%1:%2").arg(server.host).arg(server.port)); + QListWidgetItem *item = new QListWidgetItem(QString("%1:%2").arg(server.host).arg(server.port)); + if(server.useSsl) + item->setIcon(SmallIcon("document-encrypt")); + ui.serverList->addItem(item); } //setItemState(id); //ui.randomServer->setChecked(info.useRandomServer); @@ -515,29 +522,17 @@ void NetworksSettingsPage::on_addNetwork_clicked() { for(int i = 0; i < ui.networkList->count(); i++) existing << ui.networkList->item(i)->text(); NetworkAddDlg dlg(existing, this); if(dlg.exec() == QDialog::Accepted) { + NetworkInfo info = dlg.networkInfo(); + if(info.networkName.isEmpty()) + return; // sanity check + NetworkId id; for(id = 1; id <= networkInfos.count(); id++) { widgetHasChanged(); if(!networkInfos.keys().contains(-id.toInt())) break; } id = -id.toInt(); - - NetworkInfo info = dlg.networkInfo(); - if(info.networkName.isEmpty()) - return; // sanity check info.networkId = id; - info.identity = 1; - - // defaults - info.useRandomServer = false; - info.useAutoReconnect = true; - info.autoReconnectInterval = 60; - info.autoReconnectRetries = 20; - info.unlimitedReconnectRetries = false; - info.useAutoIdentify = false; - info.autoIdentifyService = "NickServ"; - info.rejoinChannels = true; - networkInfos[id] = info; QListWidgetItem *item = insertNetwork(info); ui.networkList->setCurrentItem(item); @@ -643,6 +638,11 @@ void NetworksSettingsPage::on_downServer_clicked() { widgetHasChanged(); } +void NetworksSettingsPage::on_editIdentities_clicked() { + SettingsPageDlg dlg(new IdentitiesSettingsPage(this), this); + dlg.exec(); +} + /************************************************************************** * NetworkAddDlg *************************************************************************/ @@ -652,17 +652,12 @@ NetworkAddDlg::NetworkAddDlg(const QStringList &exist, QWidget *parent) : QDialo ui.useSSL->setIcon(SmallIcon("document-encrypt")); // read preset networks - networksFilePath = findDataFilePath("networks.ini"); - if(!networksFilePath.isEmpty()) { - QSettings s(networksFilePath, QSettings::IniFormat); - QStringList networks = s.childGroups(); - foreach(QString s, existing) - networks.removeAll(s); - if(!networks.isEmpty()) - networks.sort(); - ui.presetList->addItems(networks); - } - if(!ui.presetList->count()) { + QStringList networks = Network::presetNetworks(); + foreach(QString s, existing) + networks.removeAll(s); + if(networks.count()) + ui.presetList->addItems(networks); + else { ui.useManual->setChecked(true); ui.usePreset->setEnabled(false); } @@ -672,34 +667,13 @@ NetworkAddDlg::NetworkAddDlg(const QStringList &exist, QWidget *parent) : QDialo } NetworkInfo NetworkAddDlg::networkInfo() const { - NetworkInfo info; - if(ui.useManual->isChecked()) { + NetworkInfo info; info.networkName = ui.networkName->text().trimmed(); info.serverList << Network::Server(ui.serverAddress->text().trimmed(), ui.port->value(), ui.serverPassword->text(), ui.useSSL->isChecked()); - } else { - info.networkName = ui.presetList->currentText(); - QSettings s(networksFilePath, QSettings::IniFormat); - s.beginGroup(info.networkName); - foreach(QString server, s.value("Servers").toStringList()) { - bool ssl = false; - QStringList splitserver = server.split(':', QString::SkipEmptyParts); - if(splitserver.count() != 2) { - qWarning() << "Invalid server entry in networks.conf:" << server; - continue; - } - if(splitserver[1].at(0) == '+') - ssl = true; - uint port = splitserver[1].toUInt(); - if(!port) { - qWarning() << "Invalid port entry in networks.conf:" << server; - continue; - } - info.serverList << Network::Server(splitserver[0].trimmed(), port, QString(), ssl); - } - } - - return info; + return info; + } else + return Network::networkInfoFromPreset(ui.presetList->currentText()); } void NetworkAddDlg::setButtonStates() {