X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fnetworkssettingspage.cpp;h=1b20c2a18aac6a058c99ff36e3cd61339de7a867;hb=3efffa2c3f687b21c8040e9a7ee3830e8f539abf;hp=8dc7b15c5ea1971bcbb57bbec6d3122c1a22c5f1;hpb=dcac65fc4beeb1167de8ebec5cc54608fc314fd3;p=quassel.git diff --git a/src/qtui/settingspages/networkssettingspage.cpp b/src/qtui/settingspages/networkssettingspage.cpp index 8dc7b15c..1b20c2a1 100644 --- a/src/qtui/settingspages/networkssettingspage.cpp +++ b/src/qtui/settingspages/networkssettingspage.cpp @@ -33,8 +33,8 @@ #include "settingspages/identitiessettingspage.h" -NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) -: SettingsPage(tr("Misc"), tr("Networks"), parent) { +NetworksSettingsPage::NetworksSettingsPage(QWidget *parent) +: SettingsPage(tr("IRC"), tr("Networks"), parent) { ui.setupUi(this); // set up icons @@ -281,22 +281,17 @@ void NetworksSettingsPage::clientIdentityAdded(IdentityId id) { const Identity * identity = Client::identity(id); connect(identity, SIGNAL(updatedRemotely()), this, SLOT(clientIdentityUpdated())); - if(id == 1) { - // default identity is always the first one! - ui.identityList->insertItem(0, identity->identityName(), id.toInt()); - } else { - QString name = identity->identityName(); - for(int j = 0; j < ui.identityList->count(); j++) { - if((j>0 || ui.identityList->itemData(0).toInt() != 1) && name.localeAwareCompare(ui.identityList->itemText(j)) < 0) { - ui.identityList->insertItem(j, name, id.toInt()); - widgetHasChanged(); - return; - } + QString name = identity->identityName(); + for(int j = 0; j < ui.identityList->count(); j++) { + if((j>0 || ui.identityList->itemData(0).toInt() != 1) && name.localeAwareCompare(ui.identityList->itemText(j)) < 0) { + ui.identityList->insertItem(j, name, id.toInt()); + widgetHasChanged(); + return; } - // append - ui.identityList->insertItem(ui.identityList->count(), name, id.toInt()); - widgetHasChanged(); } + // append + ui.identityList->insertItem(ui.identityList->count(), name, id.toInt()); + widgetHasChanged(); } void NetworksSettingsPage::clientIdentityUpdated() { @@ -316,13 +311,13 @@ void NetworksSettingsPage::clientIdentityUpdated() { } void NetworksSettingsPage::clientIdentityRemoved(IdentityId id) { + IdentityId defaultId = defaultIdentity(); if(currentId != 0) saveToNetworkInfo(networkInfos[currentId]); - //ui.identityList->removeItem(ui.identityList->findData(id.toInt())); foreach(NetworkInfo info, networkInfos.values()) { - //qDebug() << info.networkName << info.networkId << info.identity; if(info.identity == id) { - if(info.networkId == currentId) ui.identityList->setCurrentIndex(0); - info.identity = 1; // set to default + if(info.networkId == currentId) + ui.identityList->setCurrentIndex(0); + info.identity = defaultId; networkInfos[info.networkId] = info; if(info.networkId > 0) Client::updateNetwork(info); } @@ -342,22 +337,7 @@ QListWidgetItem *NetworksSettingsPage::networkItem(NetworkId id) const { void NetworksSettingsPage::clientNetworkAdded(NetworkId id) { insertNetwork(id); //connect(Client::network(id), SIGNAL(updatedRemotely()), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(identitySet(IdentityId)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(networkNameSet(const QString &)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(serverListSet(QVariantList)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(useRandomServerSet(bool)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(performSet(const QStringList &)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(useAutoIdentifySet(bool)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(autoIdentifyServiceSet(const QString &)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(autoIdentifyPasswordSet(const QString &)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(useAutoReconnectSet(bool)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(autoReconnectIntervalSet(quint32)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(autoReconnectRetriesSet(quint16)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(unlimitedReconnectRetriesSet(bool)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(rejoinChannelsSet(bool)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(codecForServerSet(const QByteArray &)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(codecForEncodingSet(const QByteArray &)), this, SLOT(clientNetworkUpdated())); - connect(Client::network(id), SIGNAL(codecForDecodingSet(const QByteArray &)), this, SLOT(clientNetworkUpdated())); + connect(Client::network(id), SIGNAL(configChanged()), this, SLOT(clientNetworkUpdated())); connect(Client::network(id), SIGNAL(connectionStateSet(Network::ConnectionState)), this, SLOT(networkConnectionStateChanged(Network::ConnectionState))); connect(Client::network(id), SIGNAL(connectionError(const QString &)), this, SLOT(networkConnectionError(const QString &))); @@ -533,6 +513,7 @@ void NetworksSettingsPage::on_addNetwork_clicked() { } id = -id.toInt(); info.networkId = id; + info.identity = defaultIdentity(); networkInfos[id] = info; QListWidgetItem *item = insertNetwork(info); ui.networkList->setCurrentItem(item); @@ -643,6 +624,16 @@ void NetworksSettingsPage::on_editIdentities_clicked() { dlg.exec(); } +IdentityId NetworksSettingsPage::defaultIdentity() const { + IdentityId defaultId = 0; + QList ids = Client::identityIds(); + foreach(IdentityId id, ids) { + if(defaultId == 0 || id < defaultId) + defaultId = id; + } + return defaultId; +} + /************************************************************************** * NetworkAddDlg *************************************************************************/