#include "signalproxy.h"
IdentitiesSettingsPage::IdentitiesSettingsPage(QWidget *parent)
- : SettingsPage(tr("General"), tr("Identities"), parent),
+ : SettingsPage(tr("IRC"), tr("Identities"), parent),
_editSsl(false)
{
ui.setupUi(this);
deletedIdentities.clear();
changedIdentities.clear();
ui.identityList->clear();
+ setWidgetStates();
foreach(IdentityId id, Client::identityIds()) {
clientIdentityCreated(id);
}
if(changed != hasChanged()) setChangedState(changed);
}
+void IdentitiesSettingsPage::setWidgetStates() {
+ bool enabled = (ui.identityList->count() > 0);
+ ui.identityEditor->setEnabled(enabled);
+ ui.renameIdentity->setEnabled(enabled);
+ ui.deleteIdentity->setEnabled(ui.identityList->count() > 1);
+}
+
bool IdentitiesSettingsPage::testHasChanged() {
if(deletedIdentities.count()) return true;
if(currentId < 0) {
ui.identityEditor->saveToIdentity(&temp);
temp.setIdentityName(identities[currentId]->identityName());
if(temp != *Client::identity(currentId) || temp.isDirty())
- changedIdentities.append(currentId);
+ changedIdentities.append(currentId);
}
return changedIdentities.count();
}
void IdentitiesSettingsPage::insertIdentity(CertIdentity *identity) {
IdentityId id = identity->id();
identities[id] = identity;
- 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());
+ setWidgetStates();
+ widgetHasChanged();
}
void IdentitiesSettingsPage::renameIdentity(IdentityId id, const QString &newName) {
changedIdentities.removeAll(id->id());
if(currentId == id->id()) currentId = 0;
id->deleteLater();
+ setWidgetStates();
widgetHasChanged();
}
ui.identityEditor->displayIdentity(identities[id], previousIdentity);
currentId = id;
}
- ui.deleteIdentity->setEnabled(id != 1); // default identity cannot be deleted
- ui.renameIdentity->setEnabled(id != 1); // ...or renamed
}
}