X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsettings.h;h=9a9c91a5a4fe9b1757eff47a98bd67686c52e1bc;hp=bf24410fb2e2338aa0b9c96e35c139c89f7b96b3;hb=HEAD;hpb=e10200137c6829b7a0bab2968394d99f3c796290 diff --git a/src/client/clientsettings.h b/src/client/clientsettings.h index bf24410f..9a9c91a5 100644 --- a/src/client/clientsettings.h +++ b/src/client/clientsettings.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-09 by the Quassel Project * + * Copyright (C) 2005-2022 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -15,25 +15,23 @@ * You should have received a copy of the GNU General Public License * * along with this program; if not, write to the * * Free Software Foundation, Inc., * - * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * ***************************************************************************/ -#ifndef CLIENTSETTINGS_H -#define CLIENTSETTINGS_H +#pragma once -#include "settings.h" +#include "client-export.h" +#include "settings.h" #include "types.h" class QHostAddress; class QSslSocket; -class ClientSettings : public Settings { -public: - virtual ~ClientSettings(); - +class CLIENT_EXPORT ClientSettings : public Settings +{ protected: - ClientSettings(QString group = "General"); + ClientSettings(QString group = "General"); }; // ======================================== @@ -47,120 +45,141 @@ protected: // // Note that you'll get invalid data (and setting is ignored) if you are not connected to a core! -class CoreAccountSettings : public ClientSettings { +class CLIENT_EXPORT CoreAccountSettings : public ClientSettings +{ public: - // stores account-specific data in CoreAccounts/$ACCID/$SUBGROUP/$KEY) - CoreAccountSettings(const QString &subgroup = "General"); + // stores account-specific data in CoreAccounts/$ACCID/$SUBGROUP/$KEY) + CoreAccountSettings(QString subgroup = "General"); - virtual void notify(const QString &key, QObject *receiver, const char *slot); + QList knownAccounts() const; + AccountId lastAccount() const; + void setLastAccount(AccountId); + AccountId autoConnectAccount() const; + void setAutoConnectAccount(AccountId); + bool autoConnectOnStartup() const; + void setAutoConnectOnStartup(bool); + bool autoConnectToFixedAccount() const; + void setAutoConnectToFixedAccount(bool); - QList knownAccounts(); - AccountId lastAccount(); - void setLastAccount(AccountId); - AccountId autoConnectAccount(); - void setAutoConnectAccount(AccountId); - bool autoConnectOnStartup(); - void setAutoConnectOnStartup(bool); - bool autoConnectToFixedAccount(); - void setAutoConnectToFixedAccount(bool); + void clearAccounts(); - void storeAccountData(AccountId id, const QVariantMap &data); - QVariantMap retrieveAccountData(AccountId); - void removeAccount(AccountId); + void storeAccountData(AccountId id, const QVariantMap& data); + QVariantMap retrieveAccountData(AccountId) const; + void removeAccount(AccountId); - void setJumpKeyMap(const QHash &keyMap); - QHash jumpKeyMap(); + void setJumpKeyMap(const QHash& keyMap); + QHash jumpKeyMap() const; + + void setBufferViewOverlay(const QSet& viewIds); + QSet bufferViewOverlay() const; + + void setAccountValue(const QString& key, const QVariant& data); + QVariant accountValue(const QString& key, const QVariant& def = QVariant()) const; protected: - void setAccountValue(const QString &key, const QVariant &data); - QVariant accountValue(const QString &key, const QVariant &def = QVariant()); + QString keyForNotify(const QString& key) const override; private: - QString _subgroup; + QString _subgroup; }; // ======================================== // NotificationSettings // ======================================== -class NotificationSettings : public ClientSettings { +class CLIENT_EXPORT NotificationSettings : public ClientSettings +{ public: - enum HighlightNickType { - NoNick = 0x00, - CurrentNick= 0x01, - AllNicks = 0x02 - }; + enum HighlightNickType + { + NoNick = 0x00, + CurrentNick = 0x01, + AllNicks = 0x02 + }; - NotificationSettings(); + NotificationSettings(); - 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); } + void setValue(const QString& key, const QVariant& data); + QVariant value(const QString& key, const QVariant& def = {}) const; + void remove(const QString& key); - void setHighlightList(const QVariantList &highlightList); - QVariantList highlightList(); + void setHighlightList(const QVariantList& highlightList); + QVariantList highlightList() const; - void setHighlightNick(HighlightNickType); - HighlightNickType highlightNick(); + void setHighlightNick(HighlightNickType); + HighlightNickType highlightNick() const; - void setNicksCaseSensitive(bool); - bool nicksCaseSensitive(); + void setNicksCaseSensitive(bool); + bool nicksCaseSensitive() const; }; - // ======================================== -// KnownHostsSettings +// CoreConnectionSettings // ======================================== -class KnownHostsSettings : public ClientSettings { + +class CLIENT_EXPORT CoreConnectionSettings : public ClientSettings +{ public: - KnownHostsSettings(); + enum NetworkDetectionMode + { + UseQNetworkConfigurationManager = 1, // UseSolid is gone + UsePingTimeout, + NoActiveDetection + }; + + CoreConnectionSettings(); + + void setNetworkDetectionMode(NetworkDetectionMode mode); + NetworkDetectionMode networkDetectionMode() const; - QByteArray knownDigest(const QHostAddress &address); - void saveKnownHost(const QHostAddress &address, const QByteArray &certDigest); - bool isKnownHost(const QHostAddress &address, const QByteArray &certDigest); + void setAutoReconnect(bool autoReconnect); + bool autoReconnect() const; -#ifdef HAVE_SSL - QByteArray knownDigest(const QSslSocket *socket); - void saveKnownHost(const QSslSocket *socket); - bool isKnownHost(const QSslSocket *socket); -#endif + void setPingTimeoutInterval(int interval); + int pingTimeoutInterval() const; + + void setReconnectInterval(int interval); + int reconnectInterval() const; }; // ======================================== // TabCompletionSettings // ======================================== -class TabCompletionSettings : public ClientSettings { +class CLIENT_EXPORT TabCompletionSettings : public ClientSettings +{ public: - enum SortMode { - Alphabetical, - LastActivity - }; + enum SortMode + { + Alphabetical, + LastActivity + }; - TabCompletionSettings(); + TabCompletionSettings(); - void setCompletionSuffix(const QString &); - QString completionSuffix(); + void setCompletionSuffix(const QString&); + QString completionSuffix() const; - void setSortMode(SortMode); - SortMode sortMode(); + void setAddSpaceMidSentence(bool); + bool addSpaceMidSentence() const; - void setCaseSensitivity(Qt::CaseSensitivity); - Qt::CaseSensitivity caseSensitivity(); + void setSortMode(SortMode); + SortMode sortMode() const; - void setUseLastSpokenTo(bool); - bool useLastSpokenTo(); + void setCaseSensitivity(Qt::CaseSensitivity); + Qt::CaseSensitivity caseSensitivity() const; + void setUseLastSpokenTo(bool); + bool useLastSpokenTo() const; }; // ======================================== // ItemViewSettings // ======================================== -class ItemViewSettings : public ClientSettings { - public: +class CLIENT_EXPORT ItemViewSettings : public ClientSettings +{ +public: ItemViewSettings(const QString& group = "ItemViews"); - bool displayTopicInTooltip(); - bool mouseWheelChangesBuffer(); + bool displayTopicInTooltip() const; + bool mouseWheelChangesBuffer() const; }; - -#endif