+ QHash<IdentityId, CertIdentity *> identities;
+ IdentityId currentId;
+
+ QList<IdentityId> changedIdentities; // for setting the widget changed state
+ QList<IdentityId> deletedIdentities;
+
+ bool _editSsl;
+
+ void insertIdentity(CertIdentity *identity);
+ void removeIdentity(Identity *identity);
+ void renameIdentity(IdentityId id, const QString &newName);
+
+#ifdef HAVE_SSL
+ QSslKey keyByFilename(const QString &filename);
+ void showKeyState(const QSslKey &key);
+ QSslCertificate certByFilename(const QString &filename);
+ void showCertState(const QSslCertificate &cert);
+#endif
+
+ bool testHasChanged();
+};
+
+
+// ==============================
+// Various Dialogs
+// ==============================
+class CreateIdentityDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ CreateIdentityDlg(QAbstractItemModel *model, QWidget *parent = 0);
+
+ QString identityName() const;
+ IdentityId duplicateId() const;
+
+private slots:
+ void on_identityName_textChanged(const QString &text);
+
+private:
+ Ui::CreateIdentityDlg ui;
+};
+
+
+class SaveIdentitiesDlg : public QDialog
+{
+ Q_OBJECT
+
+public:
+ SaveIdentitiesDlg(const QList<CertIdentity *> &toCreate, const QList<CertIdentity *> &toUpdate, const QList<IdentityId> &toRemove, QWidget *parent = 0);
+
+private slots:
+ void clientEvent();
+
+private:
+ Ui::SaveIdentitiesDlg ui;
+
+ int numevents, rcvevents;