X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;ds=sidebyside;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=9d5433791a70675ad0f90fa186af4e84f8bcbc32;hb=d37bdc91c5474603e1417c2cd9c40c02e1ad5ee6;hp=c2785a0eda92120afe10f673d8f3a377cc76f252;hpb=eb5efce4b040e37a4d8fbabae37c63528b253744;p=quassel.git diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index c2785a0e..9d543379 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -28,8 +28,11 @@ #include "iconloader.h" #include "identity.h" #include "network.h" +#include "settingspagedlg.h" #include "util.h" +#include "settingspages/identitiessettingspage.h" + NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("General"), tr("Networks"), parent) { ui.setupUi(this); @@ -42,6 +45,7 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("G ui.editServer->setIcon(SmallIcon("configure")); ui.upServer->setIcon(SmallIcon("go-up")); ui.downServer->setIcon(SmallIcon("go-down")); + ui.editIdentities->setIcon(SmallIcon("configure")); _ignoreWidgetChanges = false; @@ -68,12 +72,12 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("G connect(Client::instance(), SIGNAL(identityRemoved(IdentityId)), this, SLOT(clientIdentityRemoved(IdentityId))); connect(ui.identityList, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged())); - connect(ui.randomServer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); + //connect(ui.randomServer, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.performEdit, SIGNAL(textChanged()), this, SLOT(widgetHasChanged())); connect(ui.autoIdentify, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.autoIdentifyService, SIGNAL(textEdited(const QString &)), this, SLOT(widgetHasChanged())); connect(ui.autoIdentifyPassword, SIGNAL(textEdited(const QString &)), this, SLOT(widgetHasChanged())); - connect(ui.useDefaultEncodings, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); + connect(ui.useCustomEncodings, SIGNAL(clicked(bool)), this, SLOT(widgetHasChanged())); connect(ui.sendEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged())); connect(ui.recvEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged())); connect(ui.serverEncoding, SIGNAL(currentIndexChanged(int)), this, SLOT(widgetHasChanged())); @@ -186,6 +190,7 @@ void NetworksSettingsPage::setWidgetStates() { ui.detailsBox->setEnabled(true); ui.renameNetwork->setEnabled(true); ui.deleteNetwork->setEnabled(true); + /* button disabled for now ui.connectNow->setEnabled(net); // && (Client::network(id)->connectionState() == Network::Initialized // || Client::network(id)->connectionState() == Network::Disconnected)); @@ -200,11 +205,11 @@ void NetworksSettingsPage::setWidgetStates() { } else { ui.connectNow->setIcon(QIcon()); ui.connectNow->setText(tr("Apply first!")); - } + } */ } else { ui.renameNetwork->setEnabled(false); ui.deleteNetwork->setEnabled(false); - ui.connectNow->setEnabled(false); + //ui.connectNow->setEnabled(false); ui.detailsBox->setEnabled(false); } // network details @@ -384,11 +389,14 @@ void NetworksSettingsPage::clientNetworkRemoved(NetworkId id) { } void NetworksSettingsPage::networkConnectionStateChanged(Network::ConnectionState state) { + Q_UNUSED(state); const Network *net = qobject_cast(sender()); if(!net) return; + /* if(net->networkId() == currentId) { ui.connectNow->setEnabled(state == Network::Initialized || state == Network::Disconnected); } + */ setItemState(net->networkId()); setWidgetStates(); } @@ -429,10 +437,13 @@ 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); + //ui.randomServer->setChecked(info.useRandomServer); ui.performEdit->setPlainText(info.perform.join("\n")); ui.autoIdentify->setChecked(info.useAutoIdentify); ui.autoIdentifyService->setText(info.autoIdentifyService); @@ -441,12 +452,12 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) { ui.sendEncoding->setCurrentIndex(ui.sendEncoding->findText(Network::defaultCodecForEncoding())); ui.recvEncoding->setCurrentIndex(ui.recvEncoding->findText(Network::defaultCodecForDecoding())); ui.serverEncoding->setCurrentIndex(ui.serverEncoding->findText(Network::defaultCodecForServer())); - ui.useDefaultEncodings->setChecked(true); + ui.useCustomEncodings->setChecked(false); } else { ui.sendEncoding->setCurrentIndex(ui.sendEncoding->findText(info.codecForEncoding)); ui.recvEncoding->setCurrentIndex(ui.recvEncoding->findText(info.codecForDecoding)); ui.serverEncoding->setCurrentIndex(ui.serverEncoding->findText(info.codecForServer)); - ui.useDefaultEncodings->setChecked(false); + ui.useCustomEncodings->setChecked(true); } ui.autoReconnect->setChecked(info.useAutoReconnect); ui.reconnectInterval->setValue(info.autoReconnectInterval); @@ -468,12 +479,12 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) { void NetworksSettingsPage::saveToNetworkInfo(NetworkInfo &info) { info.identity = ui.identityList->itemData(ui.identityList->currentIndex()).toInt(); - info.useRandomServer = ui.randomServer->isChecked(); + //info.useRandomServer = ui.randomServer->isChecked(); info.perform = ui.performEdit->toPlainText().split("\n"); info.useAutoIdentify = ui.autoIdentify->isChecked(); info.autoIdentifyService = ui.autoIdentifyService->text(); info.autoIdentifyPassword = ui.autoIdentifyPassword->text(); - if(ui.useDefaultEncodings->isChecked()) { + if(!ui.useCustomEncodings->isChecked()) { info.codecForEncoding.clear(); info.codecForDecoding.clear(); info.codecForServer.clear(); @@ -510,29 +521,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); @@ -571,6 +570,7 @@ void NetworksSettingsPage::on_renameNetwork_clicked() { } } +/* void NetworksSettingsPage::on_connectNow_clicked() { if(!ui.networkList->selectedItems().count()) return; NetworkId id = ui.networkList->selectedItems()[0]->data(Qt::UserRole).value(); @@ -579,6 +579,7 @@ void NetworksSettingsPage::on_connectNow_clicked() { if(net->connectionState() == Network::Disconnected) net->requestConnect(); else net->requestDisconnect(); } +*/ /*** Server list ***/ @@ -636,6 +637,11 @@ void NetworksSettingsPage::on_downServer_clicked() { widgetHasChanged(); } +void NetworksSettingsPage::on_editIdentities_clicked() { + SettingsPageDlg dlg(new IdentitiesSettingsPage(this), this); + dlg.exec(); +} + /************************************************************************** * NetworkAddDlg *************************************************************************/ @@ -645,17 +651,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); } @@ -665,34 +666,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() {