+public:
+ IdentitiesSettingsPage(QWidget *parent = 0);
+
+ bool aboutToSave();
+
+public slots:
+ void save();
+ void load();
+
+private slots:
+ void coreConnectionStateChanged(bool);
+ void clientIdentityCreated(IdentityId);
+ void clientIdentityUpdated();
+ void clientIdentityRemoved(IdentityId);
+
+ void on_identityList_currentIndexChanged(int index);
+
+ void on_addIdentity_clicked();
+ void on_deleteIdentity_clicked();
+ void on_renameIdentity_clicked();
+
+#ifdef HAVE_SSL
+ void continueUnsecured();
+#endif
+ void widgetHasChanged();
+ void setWidgetStates();
+
+private:
+ Ui::IdentitiesSettingsPage ui;
+
+ 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);