X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsettings.h;h=aa0f0d67544e671f30753d2ed162c19be4793edb;hp=da1fc880c5639c978111c65d37bdb6e47e9e4a32;hb=79fbcfb49f7cc92a89f0158ebac1a3006a559e8a;hpb=9ced25191b84390d1867cf3ee19f5aec741795a8 diff --git a/src/client/clientsettings.h b/src/client/clientsettings.h index da1fc880..aa0f0d67 100644 --- a/src/client/clientsettings.h +++ b/src/client/clientsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * 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,22 +18,28 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef _CLIENTSETTINGS_H_ -#define _CLIENTSETTINGS_H_ +#ifndef CLIENTSETTINGS_H +#define CLIENTSETTINGS_H #include "settings.h" -#include "types.h" -class ClientSettings : public Settings { +#include "types.h" - public: - virtual ~ClientSettings(); +class QHostAddress; +class QSslSocket; - protected: - ClientSettings(QString group = "General"); +class ClientSettings : public Settings { +public: + virtual ~ClientSettings(); +protected: + ClientSettings(QString group = "General"); }; +// ======================================== +// CoreAccountSettings +// ======================================== + // Deriving from CoreAccountSettings: // MySettings() : CoreAccountSettings("MyGroup") {}; // Then use accountValue() / setAccountValue() to retrieve/store data associated to the currently @@ -42,48 +48,77 @@ class ClientSettings : public Settings { // Note that you'll get invalid data (and setting is ignored) if you are not connected to a core! class CoreAccountSettings : public ClientSettings { +public: + // stores account-specific data in CoreAccounts/$ACCID/$SUBGROUP/$KEY) + CoreAccountSettings(const QString &subgroup = "General"); - public: - // stores account-specific data in CoreAccounts/$ACCID/$SUBGROUP/$KEY) - CoreAccountSettings(const QString &subgroup = "General"); + virtual void notify(const QString &key, QObject *receiver, const char *slot); - QList knownAccounts(); - AccountId lastAccount(); - void setLastAccount(AccountId); - AccountId autoConnectAccount(); - void setAutoConnectAccount(AccountId); + QList knownAccounts(); + AccountId lastAccount(); + void setLastAccount(AccountId); + AccountId autoConnectAccount(); + void setAutoConnectAccount(AccountId); - void storeAccountData(AccountId id, const QVariantMap &data); - QVariantMap retrieveAccountData(AccountId); - void removeAccount(AccountId); + void storeAccountData(AccountId id, const QVariantMap &data); + QVariantMap retrieveAccountData(AccountId); + void removeAccount(AccountId); - void setJumpKeyMap(const QHash &keyMap); - QHash jumpKeyMap(); + void setJumpKeyMap(const QHash &keyMap); + QHash jumpKeyMap(); - protected: - void setAccountValue(const QString &key, const QVariant &data); - QVariant accountValue(const QString &key, const QVariant &def = QVariant()); +protected: + void setAccountValue(const QString &key, const QVariant &data); + QVariant accountValue(const QString &key, const QVariant &def = QVariant()); - private: - QString _subgroup; +private: + QString _subgroup; }; +// ======================================== +// NotificationSettings +// ======================================== class NotificationSettings : public ClientSettings { +public: + enum HighlightNickType { + NoNick = 0x00, + CurrentNick= 0x01, + AllNicks = 0x02 + }; + + NotificationSettings(); - public: - enum HighlightNickType { - NoNick = 0x00, - CurrentNick= 0x01, - AllNicks = 0x02 - }; + inline void setValue(const QString &key, const QVariant &data) { setLocalValue(key, data); } + inline QVariant value(const QString &key, const QVariant &def = QVariant()) { return localValue(key, def); } + inline void remove(const QString &key) { removeLocalKey(key); } - NotificationSettings(); + void setHighlightList(const QVariantList &highlightList); + QVariantList highlightList(); - void setHighlightList(const QVariantList &highlightList); - QVariantList highlightList(); + void setHighlightNick(HighlightNickType); + HighlightNickType highlightNick(); - void setHighlightNick(HighlightNickType); - HighlightNickType highlightNick(); + void setNicksCaseSensitive(bool); + bool nicksCaseSensitive(); +}; + + +// ======================================== +// KnownHostsSettings +// ======================================== +class KnownHostsSettings : public ClientSettings { +public: + KnownHostsSettings(); + QByteArray knownDigest(const QHostAddress &address); + void saveKnownHost(const QHostAddress &address, const QByteArray &certDigest); + bool isKnownHost(const QHostAddress &address, const QByteArray &certDigest); + +#ifdef HAVE_SSL + QByteArray knownDigest(const QSslSocket *socket); + void saveKnownHost(const QSslSocket *socket); + bool isKnownHost(const QSslSocket *socket); +#endif }; + #endif