+void NetworksSettingsPage::on_editServer_clicked() {
+ if(currentId == 0) return;
+ int cur = ui.serverList->currentRow();
+ ServerEditDlgNew dlg(networkInfos[currentId].serverList[cur], this);
+ if(dlg.exec() == QDialog::Accepted) {
+ networkInfos[currentId].serverList[cur] = dlg.serverData();
+ displayNetwork(currentId);
+ ui.serverList->setCurrentRow(cur);
+ widgetHasChanged();
+ }
+}
+
+void NetworksSettingsPage::on_deleteServer_clicked() {
+ if(currentId == 0) return;
+ int cur = ui.serverList->currentRow();
+ networkInfos[currentId].serverList.removeAt(cur);
+ displayNetwork(currentId);
+ ui.serverList->setCurrentRow(qMin(cur, ui.serverList->count()-1));
+ widgetHasChanged();
+}
+
+void NetworksSettingsPage::on_upServer_clicked() {
+ int cur = ui.serverList->currentRow();
+ QVariantMap foo = networkInfos[currentId].serverList.takeAt(cur);
+ networkInfos[currentId].serverList.insert(cur-1, foo);
+ displayNetwork(currentId);
+ ui.serverList->setCurrentRow(cur-1);
+ widgetHasChanged();
+}
+
+void NetworksSettingsPage::on_downServer_clicked() {
+ int cur = ui.serverList->currentRow();
+ QVariantMap foo = networkInfos[currentId].serverList.takeAt(cur);
+ networkInfos[currentId].serverList.insert(cur+1, foo);
+ displayNetwork(currentId);
+ ui.serverList->setCurrentRow(cur+1);
+ widgetHasChanged();
+}
+
+/**************************************************************************
+ * NetworkEditDlg
+ *************************************************************************/
+
+NetworkEditDlgNew::NetworkEditDlgNew(const QString &old, const QStringList &exist, QWidget *parent) : QDialog(parent), existing(exist) {
+ ui.setupUi(this);
+
+ if(old.isEmpty()) {
+ // new network
+ setWindowTitle(tr("Add Network"));
+ on_networkEdit_textChanged(""); // disable ok button
+ } else ui.networkEdit->setText(old);
+}
+
+QString NetworkEditDlgNew::networkName() const {
+ return ui.networkEdit->text();
+
+}
+
+void NetworkEditDlgNew::on_networkEdit_textChanged(const QString &text) {
+ ui.buttonBox->button(QDialogButtonBox::Ok)->setDisabled(text.isEmpty() || existing.contains(text));
+}
+
+
+/**************************************************************************
+ * ServerEditDlg
+ *************************************************************************/
+
+ServerEditDlgNew::ServerEditDlgNew(const QVariantMap &serverData, QWidget *parent) : QDialog(parent) {
+ ui.setupUi(this);
+ if(serverData.count()) {
+ ui.host->setText(serverData["Host"].toString());
+ ui.port->setValue(serverData["Port"].toUInt());
+ ui.password->setText(serverData["Password"].toString());
+ ui.useSSL->setChecked(serverData["UseSSL"].toBool());
+ } else {
+ ui.port->setValue(Global::defaultPort);
+ }
+ on_host_textChanged();
+}
+
+QVariantMap ServerEditDlgNew::serverData() const {
+ QVariantMap _serverData;
+ _serverData["Host"] = ui.host->text();
+ _serverData["Port"] = ui.port->value();
+ _serverData["Password"] = ui.password->text();
+ _serverData["UseSSL"] = ui.useSSL->isChecked();
+ return _serverData;
+}
+
+void ServerEditDlgNew::on_host_textChanged() {
+ ui.buttonBox->button(QDialogButtonBox::Ok)->setDisabled(ui.host->text().isEmpty());
+}
+
+/**************************************************************************
+ * SaveNetworksDlg
+ *************************************************************************/
+
+SaveNetworksDlg::SaveNetworksDlg(const QList<NetworkInfo> &toCreate, const QList<NetworkInfo> &toUpdate, const QList<NetworkId> &toRemove, QWidget *parent) : QDialog(parent)
+{
+ ui.setupUi(this);
+
+}