#include "settingspages/identitiessettingspage.h"
-NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("General"), tr("Networks"), parent) {
+NetworksSettingsPage::NetworksSettingsPage(QWidget *parent)
+: SettingsPage(tr("Misc"), tr("Networks"), parent) {
ui.setupUi(this);
// set up icons
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);
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()) {
- QMap<QString, QString> sorted;
- foreach(QString net, networks)
- sorted[net.toLower()] = net;
- ui.presetList->addItems(sorted.values());
- }
- }
- 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);
}
}
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() {