X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtgui%2Fserverlist.cpp;h=8a0769484d3d4384594aa1ccf30df8d30bf7aebe;hp=e221c736310448cd8a9a47f78fd435fa722f7595;hb=ec9528b2997470953e3c4e456271e696026e9717;hpb=15ee1478137bc748e27b0b06537973d8df04b9d7 diff --git a/src/qtgui/serverlist.cpp b/src/qtgui/serverlist.cpp index e221c736..8a076948 100644 --- a/src/qtgui/serverlist.cpp +++ b/src/qtgui/serverlist.cpp @@ -20,7 +20,8 @@ #include "serverlist.h" #include "identities.h" -#include "clientproxy.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 @@ -36,21 +37,23 @@ ServerListDlg::ServerListDlg(QWidget *parent) : QDialog(parent) { 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() { @@ -58,7 +61,7 @@ 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(); @@ -66,7 +69,7 @@ void ServerListDlg::updateNetworkTree() { ui.networkTree->setHeaderLabel("Networks"); QHash 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()) { @@ -92,7 +95,7 @@ void ServerListDlg::updateNetworkTree() { //item->setCheckState(1, Qt::Unchecked); } ui.networkTree->sortItems(0, Qt::AscendingOrder); - + updateButtons(); } void ServerListDlg::updateButtons() { @@ -108,25 +111,25 @@ bool ServerListDlg::showOnStartup() { } 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(); } } @@ -134,12 +137,12 @@ void ServerListDlg::on_editButton_clicked() { 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 sel = ui.networkTree->selectedItems(); foreach(QTreeWidgetItem *item, sel) { networks.remove(item->text(0)); } - Global::putData("Networks", networks); + Client::storeSessionData("Networks", networks); updateNetworkTree(); } } @@ -170,27 +173,27 @@ void ServerListDlg::accept() { 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()) { @@ -212,8 +215,8 @@ NetworkEditDlg::NetworkEditDlg(QWidget *parent, VarMap _network) : QDialog(paren ui.networkName->setFocus(); } -VarMap NetworkEditDlg::createDefaultNetwork() { - VarMap net; +QVariantMap NetworkEditDlg::createDefaultNetwork() { + QVariantMap net; net["Name"] = QString(); net["Group"] = QString(); @@ -225,7 +228,7 @@ VarMap NetworkEditDlg::createDefaultNetwork() { 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); @@ -273,7 +276,7 @@ void NetworkEditDlg::accept() { 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."); } @@ -338,7 +341,7 @@ void NetworkEditDlg::on_editIdentities_clicked() { 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()) { @@ -355,7 +358,7 @@ void NetworkEditDlg::on_editIdentities_clicked() { /***************************************************************************/ -ServerEditDlg::ServerEditDlg(QWidget *parent, VarMap server) { +ServerEditDlg::ServerEditDlg(QWidget *parent, QVariantMap server) : QDialog(parent) { ui.setupUi(this); if(!server.isEmpty()) { @@ -372,8 +375,8 @@ void ServerEditDlg::on_serverAddress_textChanged() { 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;