+void NetworksSettingsPage::on_serverList_itemSelectionChanged() {
+ setWidgetStates();
+}
+
+void NetworksSettingsPage::on_addServer_clicked() {
+ if(currentId == 0) return;
+ ServerEditDlg dlg(QVariantMap(), this);
+ if(dlg.exec() == QDialog::Accepted) {
+ networkInfos[currentId].serverList.append(dlg.serverData());
+ displayNetwork(currentId);
+ ui.serverList->setCurrentRow(ui.serverList->count()-1);
+ widgetHasChanged();
+ }
+
+}
+
+void NetworksSettingsPage::on_editServer_clicked() {
+ if(currentId == 0) return;
+ int cur = ui.serverList->currentRow();
+ ServerEditDlg 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();
+ QVariant 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();
+ QVariant foo = networkInfos[currentId].serverList.takeAt(cur);
+ networkInfos[currentId].serverList.insert(cur+1, foo);
+ displayNetwork(currentId);
+ ui.serverList->setCurrentRow(cur+1);
+ widgetHasChanged();