X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fcommon%2Fidentity.h;h=86eafb439091ef059f585652968ec00741cf2c50;hp=bffd2a367082f54bccca42c2d22e7dbab6895f92;hb=e531fd1f1ea36a360a9d876c94e73b0f3b1bcd22;hpb=b797e5f581b10a517c30f78cb53f813af741e261 diff --git a/src/common/identity.h b/src/common/identity.h index bffd2a36..86eafb43 100644 --- a/src/common/identity.h +++ b/src/common/identity.h @@ -18,9 +18,10 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _IDENTITY_H_ -#define _IDENTITY_H_ +#ifndef IDENTITY_H +#define IDENTITY_H +#include #include #include #include @@ -32,136 +33,156 @@ class Identity : public SyncableObject { Q_OBJECT - Q_PROPERTY(IdentityId identityId READ id WRITE setId STORED false); - Q_PROPERTY(QString identityName READ identityName WRITE setIdentityName STORED false); - Q_PROPERTY(QString realName READ realName WRITE setRealName STORED false); - Q_PROPERTY(QStringList nicks READ nicks WRITE setNicks STORED false); - Q_PROPERTY(QString awayNick READ awayNick WRITE setAwayNick STORED false); - Q_PROPERTY(bool awayNickEnabled READ awayNickEnabled WRITE setAwayNickEnabled STORED false); - Q_PROPERTY(QString awayReason READ awayReason WRITE setAwayReason STORED false); - Q_PROPERTY(bool awayReasonEnabled READ awayReasonEnabled WRITE setAwayReasonEnabled STORED false); - Q_PROPERTY(QString returnMessage READ returnMessage WRITE setReturnMessage STORED false); - Q_PROPERTY(bool returnMessageEnabled READ returnMessageEnabled WRITE setReturnMessageEnabled STORED false); - Q_PROPERTY(bool autoAwayEnabled READ autoAwayEnabled WRITE setAutoAwayEnabled STORED false); - Q_PROPERTY(int autoAwayTime READ autoAwayTime WRITE setAutoAwayTime STORED false); - Q_PROPERTY(QString autoAwayReason READ autoAwayReason WRITE setAutoAwayReason STORED false); - Q_PROPERTY(bool autoAwayReasonEnabled READ autoAwayReasonEnabled WRITE setAutoAwayReasonEnabled STORED false); - Q_PROPERTY(QString autoReturnMessage READ autoReturnMessage WRITE setAutoReturnMessage STORED false); - Q_PROPERTY(bool autoReturnMessageEnabled READ autoReturnMessageEnabled WRITE setAutoReturnMessageEnabled STORED false); - Q_PROPERTY(QString ident READ ident WRITE setIdent STORED false); - Q_PROPERTY(QString kickReason READ kickReason WRITE setKickReason STORED false); - Q_PROPERTY(QString partReason READ partReason WRITE setPartReason STORED false); - Q_PROPERTY(QString quitReason READ quitReason WRITE setQuitReason STORED false); - - public: - Identity(IdentityId id = 0, QObject *parent = 0); - Identity(const Identity &other, QObject *parent = 0); - void setToDefaults(); - - bool operator==(const Identity &other); - bool operator!=(const Identity &other); - - bool isValid() const; - - IdentityId id() const; - QString identityName() const; - QString realName() const; - QStringList nicks() const; - QString awayNick() const; - bool awayNickEnabled() const; - QString awayReason() const; - bool awayReasonEnabled() const; - QString returnMessage() const; - bool returnMessageEnabled() const; - bool autoAwayEnabled() const; - int autoAwayTime() const; - QString autoAwayReason() const; - bool autoAwayReasonEnabled() const; - QString autoReturnMessage() const; - bool autoReturnMessageEnabled() const; - QString ident() const; - QString kickReason() const; - QString partReason() const; - QString quitReason() const; - - bool initialized() const; - void setInitialized(); - - public slots: - void setId(IdentityId id); - void setIdentityName(const QString &name); - void setRealName(const QString &realName); - void setNicks(const QStringList &nicks); - void setAwayNick(const QString &awayNick); - void setAwayNickEnabled(bool enabled); - void setAwayReason(const QString &awayReason); - void setAwayReasonEnabled(bool enabled); - void setReturnMessage(const QString &returnMessage); - void setReturnMessageEnabled(bool enabled); - void setAutoAwayEnabled(bool enabled); - void setAutoAwayTime(int time); - void setAutoAwayReason(const QString &reason); - void setAutoAwayReasonEnabled(bool enabled); - void setAutoReturnMessage(const QString &message); - void setAutoReturnMessageEnabled(bool enabled); - void setIdent(const QString &ident); - void setKickReason(const QString &reason); - void setPartReason(const QString &reason); - void setQuitReason(const QString &reason); - - void update(const Identity &other); - - signals: - void idSet(IdentityId id); - void identityNameSet(const QString &name); - void realNameSet(const QString &realName); - void nicksSet(const QStringList &nicks); - void awayNickSet(const QString &awayNick); - void awayNickEnabledSet(bool); - void awayReasonSet(const QString &awayReason); - void awayReasonEnabledSet(bool); - void returnMessageSet(const QString &returnMessage); - void returnMessageEnabledSet(bool); - void autoAwayEnabledSet(bool); - void autoAwayTimeSet(int); - void autoAwayReasonSet(const QString &); - void autoAwayReasonEnabledSet(bool); - void autoReturnMessageSet(const QString &); - void autoReturnMessageEnabledSet(bool); - void identSet(const QString &); - void kickReasonSet(const QString &); - void partReasonSet(const QString &); - void quitReasonSet(const QString &); - - void updatedRemotely(); - - private: - bool _initialized; - IdentityId _identityId; - QString _identityName, _realName; - QStringList _nicks; - QString _awayNick; - bool _awayNickEnabled; - QString _awayReason; - bool _awayReasonEnabled; - QString _returnMessage; - bool _returnMessageEnabled; - bool _autoAwayEnabled; - int _autoAwayTime; - QString _autoAwayReason; - bool _autoAwayReasonEnabled; - QString _autoReturnMessage; - bool _autoReturnMessageEnabled; - QString _ident, _kickReason, _partReason, _quitReason; - - void init(); - - friend QDataStream &operator>>(QDataStream &in, Identity &identity); + Q_PROPERTY(IdentityId identityId READ id WRITE setId STORED false) + Q_PROPERTY(QString identityName READ identityName WRITE setIdentityName STORED false) + Q_PROPERTY(QString realName READ realName WRITE setRealName STORED false) + Q_PROPERTY(QStringList nicks READ nicks WRITE setNicks STORED false) + Q_PROPERTY(QString awayNick READ awayNick WRITE setAwayNick STORED false) + Q_PROPERTY(bool awayNickEnabled READ awayNickEnabled WRITE setAwayNickEnabled STORED false) + Q_PROPERTY(QString awayReason READ awayReason WRITE setAwayReason STORED false) + Q_PROPERTY(bool awayReasonEnabled READ awayReasonEnabled WRITE setAwayReasonEnabled STORED false) + Q_PROPERTY(bool autoAwayEnabled READ autoAwayEnabled WRITE setAutoAwayEnabled STORED false) + Q_PROPERTY(int autoAwayTime READ autoAwayTime WRITE setAutoAwayTime STORED false) + Q_PROPERTY(QString autoAwayReason READ autoAwayReason WRITE setAutoAwayReason STORED false) + Q_PROPERTY(bool autoAwayReasonEnabled READ autoAwayReasonEnabled WRITE setAutoAwayReasonEnabled STORED false) + Q_PROPERTY(bool detachAwayEnabled READ detachAwayEnabled WRITE setDetachAwayEnabled STORED false) + Q_PROPERTY(QString detachAwayReason READ detachAwayReason WRITE setDetachAwayReason STORED false) + Q_PROPERTY(bool detachAwayReasonEnabled READ detachAwayReasonEnabled WRITE setDetachAwayReasonEnabled STORED false) + Q_PROPERTY(QString ident READ ident WRITE setIdent STORED false) + Q_PROPERTY(QString kickReason READ kickReason WRITE setKickReason STORED false) + Q_PROPERTY(QString partReason READ partReason WRITE setPartReason STORED false) + Q_PROPERTY(QString quitReason READ quitReason WRITE setQuitReason STORED false) + +public: + Identity(IdentityId id = 0, QObject *parent = 0); + Identity(const Identity &other, QObject *parent = 0); + inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; } + + void setToDefaults(); + + bool operator==(const Identity &other) const; + bool operator!=(const Identity &other) const; + + inline bool isValid() const { return id().isValid(); } + + inline IdentityId id() const { return _identityId; } + inline const QString &identityName() const { return _identityName; } + inline const QString &realName() const { return _realName; } + inline const QStringList &nicks() const { return _nicks; } + inline const QString &awayNick() const { return _awayNick; } + inline bool awayNickEnabled() const { return _awayNickEnabled; } + inline const QString &awayReason() const { return _awayReason; } + inline bool awayReasonEnabled() const { return _awayReasonEnabled; } + inline bool autoAwayEnabled() const { return _autoAwayEnabled; } + inline int autoAwayTime() const { return _autoAwayTime; } + inline const QString &autoAwayReason() const { return _autoAwayReason; } + inline bool autoAwayReasonEnabled() const { return _autoAwayReasonEnabled; } + inline bool detachAwayEnabled() const { return _detachAwayEnabled; } + inline const QString &detachAwayReason() const { return _detachAwayReason; } + inline bool detachAwayReasonEnabled() const { return _detachAwayReasonEnabled; } + inline const QString &ident() const { return _ident; } + inline const QString &kickReason() const { return _kickReason; } + inline const QString &partReason() const { return _partReason; } + inline const QString &quitReason() const { return _quitReason; } + +public slots: + void setId(IdentityId id); + void setIdentityName(const QString &name); + void setRealName(const QString &realName); + void setNicks(const QStringList &nicks); + void setAwayNick(const QString &awayNick); + void setAwayNickEnabled(bool enabled); + void setAwayReason(const QString &awayReason); + void setAwayReasonEnabled(bool enabled); + void setAutoAwayEnabled(bool enabled); + void setAutoAwayTime(int time); + void setAutoAwayReason(const QString &reason); + void setAutoAwayReasonEnabled(bool enabled); + void setDetachAwayEnabled(bool enabled); + void setDetachAwayReason(const QString &reason); + void setDetachAwayReasonEnabled(bool enabled); + void setIdent(const QString &ident); + void setKickReason(const QString &reason); + void setPartReason(const QString &reason); + void setQuitReason(const QString &reason); + + void copyFrom(const Identity &other); + +signals: + void idSet(IdentityId id); + void identityNameSet(const QString &name); + void realNameSet(const QString &realName); + void nicksSet(const QStringList &nicks); + void awayNickSet(const QString &awayNick); + void awayNickEnabledSet(bool); + void awayReasonSet(const QString &awayReason); + void awayReasonEnabledSet(bool); + void autoAwayEnabledSet(bool); + void autoAwayTimeSet(int); + void autoAwayReasonSet(const QString &); + void autoAwayReasonEnabledSet(bool); + void detachAwayEnabledSet(bool); + void detachAwayReasonSet(const QString &); + void detachAwayReasonEnabledSet(bool); + void identSet(const QString &); + void kickReasonSet(const QString &); + void partReasonSet(const QString &); + void quitReasonSet(const QString &); + +private: + IdentityId _identityId; + QString _identityName, _realName; + QStringList _nicks; + QString _awayNick; + bool _awayNickEnabled; + QString _awayReason; + bool _awayReasonEnabled; + bool _autoAwayEnabled; + int _autoAwayTime; + QString _autoAwayReason; + bool _autoAwayReasonEnabled; + bool _detachAwayEnabled; + QString _detachAwayReason; + bool _detachAwayReasonEnabled; + QString _ident, _kickReason, _partReason, _quitReason; + + void init(); + + friend QDataStream &operator>>(QDataStream &in, Identity &identity); }; QDataStream &operator<<(QDataStream &out, Identity identity); QDataStream &operator>>(QDataStream &in, Identity &identity); -Q_DECLARE_METATYPE(Identity); +Q_DECLARE_METATYPE(Identity) -#endif +#ifdef HAVE_SSL +#include +#include + +class CertManager : public SyncableObject { + Q_OBJECT + Q_PROPERTY(QByteArray sslKey READ sslKeyPem WRITE setSslKey STORED false) + Q_PROPERTY(QByteArray sslCert READ sslCertPem WRITE setSslCert STORED false) + +public: + CertManager(IdentityId id, QObject *parent = 0) : SyncableObject(QString::number(id.toInt()), parent) {} + inline virtual const QMetaObject *syncMetaObject() const { return &staticMetaObject; } + + virtual const QSslKey &sslKey() const = 0; + inline QByteArray sslKeyPem() const { return sslKey().toPem(); } + virtual const QSslCertificate &sslCert() const = 0; + inline QByteArray sslCertPem() const { return sslCert().toPem(); } + +public slots: + inline virtual void setSslKey(const QByteArray &encoded) { emit sslKeySet(encoded); } + inline virtual void setSslCert(const QByteArray &encoded) { emit sslCertSet(encoded); } + +signals: + void sslKeySet(const QByteArray &); + void sslCertSet(const QByteArray &); +}; + +#endif // HAVE_SSL + +#endif // IDENTITY_H