X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fsettingspages%2Fidentitiessettingspage.h;h=277cee878e5fea75eb50c09dca8c9cb64cff388d;hp=70031d25a3a37ae2dee87e2695d64e63fe760421;hb=846ce2425763e175e0453f2b3c3a2feab35e58c9;hpb=c6bc07febff322910675a1eb60c44f6be209a934 diff --git a/src/qtui/settingspages/identitiessettingspage.h b/src/qtui/settingspages/identitiessettingspage.h index 70031d25..277cee87 100644 --- a/src/qtui/settingspages/identitiessettingspage.h +++ b/src/qtui/settingspages/identitiessettingspage.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel IRC Team * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -18,32 +18,113 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _IDENTITIESSETTINGSPAGE_H_ -#define _IDENTITIESSETTINGSPAGE_H_ +#ifndef IDENTITIESSETTINGSPAGE_H +#define IDENTITIESSETTINGSPAGE_H +#include "clientidentity.h" #include "settingspage.h" +#include "identityeditwidget.h" + #include "ui_identitiessettingspage.h" +#include "ui_createidentitydlg.h" +#include "ui_saveidentitiesdlg.h" + +class QAbstractItemModel; class IdentitiesSettingsPage : public SettingsPage { Q_OBJECT - public: - IdentitiesSettingsPage(QWidget *parent = 0); +public: + IdentitiesSettingsPage(QWidget *parent = 0); + + virtual inline bool needsCoreConnection() const { return true; } + + 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(); - bool hasChanged() const; +#ifdef HAVE_SSL + void continueUnsecured(); +#endif + void widgetHasChanged(); + void setWidgetStates(); + +private: + Ui::IdentitiesSettingsPage ui; + + QHash identities; + IdentityId currentId; + + QList changedIdentities; // for setting the widget changed state + QList deletedIdentities; - public slots: - void save(); - void load(); - void defaults(); + bool _editSsl; - private slots: - void coreConnectionStateChanged(bool); + void insertIdentity(CertIdentity *identity); + void removeIdentity(Identity *identity); + void renameIdentity(IdentityId id, const QString &newName); - private: - Ui::IdentitiesSettingsPage ui; +#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 &toCreate, const QList &toUpdate, const QList &toRemove, QWidget *parent = 0); + +private slots: + void clientEvent(); + +private: + Ui::SaveIdentitiesDlg ui; + + int numevents, rcvevents; +}; + + + #endif