#include "serverlist.h"
#include "identities.h"
-#include "guiproxy.h"
+#include "client.h"
+#include "signalproxy.h"
/* NOTE: This dialog holds not only the server list, but also the identities.
* This makes perfect sense given the fact that connections are initiated from
updateNetworkTree();
connect(ui.networkTree, SIGNAL(itemSelectionChanged()), this, SLOT(updateButtons()));
+ connect(Client::instance(), SIGNAL(sessionDataChanged(const QString &)), this, SLOT(updateNetworkTree()));
settings.endGroup();
- // check if we already have a valid identity
- if(!Global::data("Identities", VarMap()).toMap().contains("Default")) editIdentities(true);
- connect(this, SIGNAL(requestConnect(QStringList)), ClientProxy::instance(), SLOT(gsRequestConnect(QStringList)));
+
+ Client::signalProxy()->attachSignal(this, SIGNAL(requestConnect(QString)));
// Autoconnect
+ /* Should not be the client's task... :-P
QStringList list;
- VarMap networks = Global::data("Networks").toMap();
+ QVariantMap networks = Client::retrieveSessionData("Networks").toMap();
foreach(QString net, networks.keys()) {
if(networks[net].toMap()["AutoConnect"].toBool()) {
list << net;
}
}
if(!list.isEmpty()) emit requestConnect(list);
+ */
}
ServerListDlg::~ServerListDlg() {
}
void ServerListDlg::updateNetworkTree() {
- VarMap networks = Global::data("Networks").toMap();
+ QVariantMap networks = Client::retrieveSessionData("Networks").toMap();
//QStringList headers;
//headers << "Network" << "Autoconnect";
ui.networkTree->clear();
ui.networkTree->setHeaderLabel("Networks");
QHash<QString, QTreeWidgetItem *> groups;
foreach(QString net, networks.keys()) {
- VarMap s = networks[net].toMap();
+ QVariantMap s = networks[net].toMap();
QString gr = s["Group"].toString();
QTreeWidgetItem *item = 0;
if(gr.isEmpty()) {
//item->setCheckState(1, Qt::Unchecked);
}
ui.networkTree->sortItems(0, Qt::AscendingOrder);
-
+ updateButtons();
}
void ServerListDlg::updateButtons() {
}
void ServerListDlg::on_addButton_clicked() {
- NetworkEditDlg dlg(this, VarMap());
+ NetworkEditDlg dlg(this, QVariantMap());
if(dlg.exec() == QDialog::Accepted) {
- VarMap networks = Global::data("Networks").toMap();
- VarMap net = dlg.getNetwork();
+ QVariantMap networks = Client::retrieveSessionData("Networks").toMap();
+ QVariantMap net = dlg.getNetwork();
networks[net["Name"].toString()] = net;
- Global::putData("Networks", networks);
+ Client::storeSessionData("Networks", networks);
updateNetworkTree();
}
}
void ServerListDlg::on_editButton_clicked() {
QString curnet = ui.networkTree->currentItem()->text(0);
- VarMap networks = Global::data("Networks").toMap();
+ QVariantMap networks = Client::retrieveSessionData("Networks").toMap();
NetworkEditDlg dlg(this, networks[curnet].toMap());
if(dlg.exec() == QDialog::Accepted) {
- VarMap net = dlg.getNetwork();
+ QVariantMap net = dlg.getNetwork();
networks.remove(curnet);
networks[net["Name"].toString()] = net;
- Global::putData("Networks", networks);
+ Client::storeSessionData("Networks", networks);
updateNetworkTree();
}
}
void ServerListDlg::on_deleteButton_clicked() {
if(QMessageBox::warning(this, tr("Remove Network?"), tr("Are you sure you want to delete the selected network(s)?"),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes) {
- VarMap networks = Global::data("Networks").toMap();
+ QVariantMap networks = Client::retrieveSessionData("Networks").toMap();
QList<QTreeWidgetItem *> sel = ui.networkTree->selectedItems();
foreach(QTreeWidgetItem *item, sel) {
networks.remove(item->text(0));
}
- Global::putData("Networks", networks);
+ Client::storeSessionData("Networks", networks);
updateNetworkTree();
}
}
foreach(QTreeWidgetItem *item, list) {
nets << item->text(0);
}
- emit requestConnect(nets);
+ emit requestConnect(nets[0]); // FIXME
QDialog::accept();
}
/***************************************************************************/
-NetworkEditDlg::NetworkEditDlg(QWidget *parent, VarMap _network) : QDialog(parent) {
+NetworkEditDlg::NetworkEditDlg(QWidget *parent, QVariantMap _network) : QDialog(parent) {
ui.setupUi(this);
network = _network;
oldName = network["Name"].toString();
connect(ui.serverList, SIGNAL(itemSelectionChanged()), this, SLOT(updateServerButtons()));
- VarMap identities = Global::data("Identities").toMap();
+ QVariantMap identities = Client::retrieveSessionData("Identities").toMap();
ui.identityList->addItem(tr("Default Identity"));
foreach(QString id, identities.keys()) {
if(id != "Default") ui.identityList->addItem(id);
}
QStringList groups; groups << "";
- VarMap nets = Global::data("Networks").toMap();
+ QVariantMap nets = Client::retrieveSessionData("Networks").toMap();
foreach(QString net, nets.keys()) {
QString gr = nets[net].toMap()["Group"].toString();
if(!groups.contains(gr) && !gr.isEmpty()) {
ui.networkName->setFocus();
}
-VarMap NetworkEditDlg::createDefaultNetwork() {
- VarMap net;
+QVariantMap NetworkEditDlg::createDefaultNetwork() {
+ QVariantMap net;
net["Name"] = QString();
net["Group"] = QString();
void NetworkEditDlg::updateWidgets() {
ui.serverList->clear();
foreach(QVariant s, network["Servers"].toList()) {
- VarMap server = s.toMap();
+ QVariantMap server = s.toMap();
QString entry = QString("%1:%2").arg(server["Address"].toString()).arg(server["Port"].toInt());
QListWidgetItem *item = new QListWidgetItem(entry);
//if(server["Exclude"].toBool()) item->setCheckState(Qt::Checked);
QString NetworkEditDlg::checkValidity() {
QString r;
- VarMap nets = Global::data("Networks").toMap();
+ QVariantMap nets = Client::retrieveSessionData("Networks").toMap();
if(ui.networkName->text() != oldName && nets.keys().contains(ui.networkName->text())) {
r += tr(" Network name already exists.");
}
else id = "Default";
IdentitiesDlg dlg(this, id);
if(dlg.exec() == QDialog::Accepted) {
- VarMap identities = Global::data("Identities").toMap();
+ QVariantMap identities = Client::retrieveSessionData("Identities").toMap();
ui.identityList->clear();
ui.identityList->addItem(tr("Default Identity"));
foreach(QString i, identities.keys()) {
/***************************************************************************/
-ServerEditDlg::ServerEditDlg(QWidget *parent, VarMap server) {
+ServerEditDlg::ServerEditDlg(QWidget *parent, QVariantMap server) : QDialog(parent) {
ui.setupUi(this);
if(!server.isEmpty()) {
ui.buttonBox->button(QDialogButtonBox::Ok)->setEnabled(!ui.serverAddress->text().isEmpty());
}
-VarMap ServerEditDlg::getServer() {
- VarMap s;
+QVariantMap ServerEditDlg::getServer() {
+ QVariantMap s;
s["Address"] = ui.serverAddress->text();
s["Port"] = ui.serverPort->text();
return s;