X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=bd77b35326616b84e78b42c6a7f4a651241f4be9;hp=6bb068d2ba6b7eab2578fbe2ed4bea9e4423adee;hb=158443f71d48215eea8b47b836b61afd77654b78;hpb=9f91e0dd3c4eb5c2e2dedfc8d36a068d433d51b1 diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index 6bb068d2..bd77b353 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -19,13 +19,14 @@ ***************************************************************************/ #include -#include #include #include +#include #include "networkssettingspage.h" #include "client.h" +#include "icon.h" #include "identity.h" #include "network.h" #include "presetnetworks.h" @@ -39,9 +40,6 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) : SettingsPage(tr("IRC"), tr("Networks"), parent) -#ifdef HAVE_SSL - , _cid(0) -#endif { ui.setupUi(this); @@ -55,25 +53,25 @@ NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) #endif // set up icons - ui.renameNetwork->setIcon(QIcon::fromTheme("edit-rename")); - ui.addNetwork->setIcon(QIcon::fromTheme("list-add")); - ui.deleteNetwork->setIcon(QIcon::fromTheme("edit-delete")); - ui.addServer->setIcon(QIcon::fromTheme("list-add")); - ui.deleteServer->setIcon(QIcon::fromTheme("edit-delete")); - ui.editServer->setIcon(QIcon::fromTheme("configure")); - ui.upServer->setIcon(QIcon::fromTheme("go-up")); - ui.downServer->setIcon(QIcon::fromTheme("go-down")); - ui.editIdentities->setIcon(QIcon::fromTheme("configure")); + ui.renameNetwork->setIcon(icon::get("edit-rename")); + ui.addNetwork->setIcon(icon::get("list-add")); + ui.deleteNetwork->setIcon(icon::get("edit-delete")); + ui.addServer->setIcon(icon::get("list-add")); + ui.deleteServer->setIcon(icon::get("edit-delete")); + ui.editServer->setIcon(icon::get("configure")); + ui.upServer->setIcon(icon::get("go-up")); + ui.downServer->setIcon(icon::get("go-down")); + ui.editIdentities->setIcon(icon::get("configure")); _ignoreWidgetChanges = false; - connectedIcon = QIcon::fromTheme("network-connect"); - connectingIcon = QIcon::fromTheme("network-wired"); // FIXME network-connecting - disconnectedIcon = QIcon::fromTheme("network-disconnect"); + connectedIcon = icon::get("network-connect"); + connectingIcon = icon::get("network-wired"); // FIXME network-connecting + disconnectedIcon = icon::get("network-disconnect"); // Status icons - infoIcon = QIcon::fromTheme("dialog-information"); - warningIcon = QIcon::fromTheme("dialog-warning"); + infoIcon = icon::get("dialog-information"); + warningIcon = icon::get("dialog-warning"); foreach(int mib, QTextCodec::availableMibs()) { QByteArray codec = QTextCodec::codecForMib(mib)->name(); @@ -207,6 +205,9 @@ void NetworksSettingsPage::load() sslUpdated(); #endif + // Reset network capability status in case no valid networks get selected (a rare situation) + resetNetworkCapStates(); + foreach(NetworkId netid, Client::networkIds()) { clientNetworkAdded(netid); } @@ -355,10 +356,17 @@ void NetworksSettingsPage::setItemState(NetworkId id, QListWidgetItem *item) } +void NetworksSettingsPage::resetNetworkCapStates() +{ + // Set the status to a blank (invalid) network ID, reseting all UI + setNetworkCapStates(NetworkId()); +} + + void NetworksSettingsPage::setNetworkCapStates(NetworkId id) { const Network *net = Client::network(id); - if (Client::isCoreFeatureEnabled(Quassel::Feature::CapNegotiation) && net) { + if (net && Client::isCoreFeatureEnabled(Quassel::Feature::CapNegotiation)) { // Capability negotiation is supported, network exists. // Check if the network is connected. Don't use net->isConnected() as that won't be true // during capability negotiation when capabilities are added and removed. @@ -464,7 +472,7 @@ QListWidgetItem *NetworksSettingsPage::networkItem(NetworkId id) const QListWidgetItem *item = ui.networkList->item(i); if (item->data(Qt::UserRole).value() == id) return item; } - return 0; + return nullptr; } @@ -548,7 +556,7 @@ QListWidgetItem *NetworksSettingsPage::insertNetwork(NetworkId id) QListWidgetItem *NetworksSettingsPage::insertNetwork(const NetworkInfo &info) { - QListWidgetItem *item = 0; + QListWidgetItem *item = nullptr; QList items = ui.networkList->findItems(info.networkName, Qt::MatchExactly); if (!items.count()) item = new QListWidgetItem(disconnectedIcon, info.networkName, ui.networkList); else { @@ -567,6 +575,14 @@ QListWidgetItem *NetworksSettingsPage::insertNetwork(const NetworkInfo &info) } +// Called when selecting 'Configure' from the buffer list +void NetworksSettingsPage::bufferList_Open(NetworkId netId) +{ + QListWidgetItem *item = networkItem(netId); + ui.networkList->setCurrentItem(item, QItemSelectionModel::SelectCurrent); +} + + void NetworksSettingsPage::displayNetwork(NetworkId id) { _ignoreWidgetChanges = true; @@ -591,7 +607,7 @@ void NetworksSettingsPage::displayNetwork(NetworkId id) foreach(Network::Server server, info.serverList) { QListWidgetItem *item = new QListWidgetItem(QString("%1:%2").arg(server.host).arg(server.port)); if (server.useSsl) - item->setIcon(QIcon::fromTheme("document-encrypt")); + item->setIcon(icon::get("document-encrypt")); ui.serverList->addItem(item); } //setItemState(id); @@ -1011,10 +1027,10 @@ IdentityId NetworksSettingsPage::defaultIdentity() const * NetworkAddDlg *************************************************************************/ -NetworkAddDlg::NetworkAddDlg(const QStringList &exist, QWidget *parent) : QDialog(parent), existing(exist) +NetworkAddDlg::NetworkAddDlg(QStringList exist, QWidget *parent) : QDialog(parent), existing(std::move(exist)) { ui.setupUi(this); - ui.useSSL->setIcon(QIcon::fromTheme("document-encrypt")); + ui.useSSL->setIcon(icon::get("document-encrypt")); // Whenever useSSL is toggled, update the port number if not changed from the default connect(ui.useSSL, SIGNAL(toggled(bool)), SLOT(updateSslPort(bool))); @@ -1052,6 +1068,8 @@ NetworkAddDlg::NetworkAddDlg(const QStringList &exist, QWidget *parent) : QDialo } connect(ui.networkName, SIGNAL(textChanged(const QString &)), SLOT(setButtonStates())); connect(ui.serverAddress, SIGNAL(textChanged(const QString &)), SLOT(setButtonStates())); + connect(ui.usePreset, SIGNAL(toggled(bool)), SLOT(setButtonStates())); + connect(ui.useManual, SIGNAL(toggled(bool)), SLOT(setButtonStates())); setButtonStates(); } @@ -1101,7 +1119,7 @@ void NetworkAddDlg::updateSslPort(bool isChecked) * NetworkEditDlg *************************************************************************/ -NetworkEditDlg::NetworkEditDlg(const QString &old, const QStringList &exist, QWidget *parent) : QDialog(parent), existing(exist) +NetworkEditDlg::NetworkEditDlg(const QString &old, QStringList exist, QWidget *parent) : QDialog(parent), existing(std::move(exist)) { ui.setupUi(this); @@ -1132,7 +1150,7 @@ void NetworkEditDlg::on_networkEdit_textChanged(const QString &text) ServerEditDlg::ServerEditDlg(const Network::Server &server, QWidget *parent) : QDialog(parent) { ui.setupUi(this); - ui.useSSL->setIcon(QIcon::fromTheme("document-encrypt")); + ui.useSSL->setIcon(icon::get("document-encrypt")); ui.host->setText(server.host); ui.host->setFocus(); ui.port->setValue(server.port);