X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fcore%2Fcoresession.h;h=fe81a2b451c33dc8a12a49994e4c687caf78bf22;hb=8a299aa68d09b6d210a8f69300b292d6ca4dad70;hp=950dfb25df4ee2742c727c51fdad6293c452e6a7;hpb=be04b68a0f10891b81c07cdda204a9abc0ac56a7;p=quassel.git diff --git a/src/core/coresession.h b/src/core/coresession.h index 950dfb25..fe81a2b4 100644 --- a/src/core/coresession.h +++ b/src/core/coresession.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2016 by the Quassel Project * + * Copyright (C) 2005-2018 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -24,8 +24,9 @@ #include #include -#include "corecoreinfo.h" +#include "coreinfo.h" #include "corealiasmanager.h" +#include "corehighlightrulemanager.h" #include "coreignorelistmanager.h" #include "peer.h" #include "protocol.h" @@ -61,13 +62,24 @@ class CoreSession : public QObject Q_OBJECT public: - CoreSession(UserId, bool restoreState, QObject *parent = 0); + CoreSession(UserId, bool restoreState, bool strictIdentEnabled, QObject *parent = 0); ~CoreSession(); QList buffers() const; inline UserId user() const { return _user; } CoreNetwork *network(NetworkId) const; CoreIdentity *identity(IdentityId) const; + + /** + * Returns the optionally strict-compliant ident for the given user identity + * + * If strict mode is enabled, this will return the user's Quassel username for any identity, + * otherwise this will return the given identity's ident, whatever it may be. + * + * @return The user's ident, compliant with strict mode (when enabled) + */ + const QString strictCompliantIdent(const CoreIdentity *identity); + inline CoreNetworkConfig *networkConfig() const { return _networkConfig; } NetworkConnection *networkConnection(NetworkId) const; @@ -87,6 +99,7 @@ public: inline CoreIrcListHelper *ircListHelper() const { return _ircListHelper; } inline CoreIgnoreListManager *ignoreListManager() { return &_ignoreListManager; } + inline HighlightRuleManager *highlightRuleManager() { return &_highlightRuleManager; } inline CoreTransferManager *transferManager() const { return _transferManager; } inline CoreDccConfig *dccConfig() const { return _dccConfig; } @@ -131,10 +144,20 @@ public slots: void changePassword(PeerPtr peer, const QString &userName, const QString &oldPassword, const QString &newPassword); + void kickClient(int peerId); + QHash persistentChannels(NetworkId) const; - //! Marks us away (or unaway) on all networks - void globalAway(const QString &msg = QString()); + QHash bufferCiphers(NetworkId id) const; + void setBufferCipher(NetworkId id, const QString &bufferName, const QByteArray &cipher) const; + + /** + * Marks us away (or unaway) on all networks + * + * @param[in] msg Away message, or blank to set unaway + * @param[in] skipFormatting If true, skip timestamp formatting codes (e.g. if already done) + */ + void globalAway(const QString &msg = QString(), const bool skipFormatting = false); signals: void initialized(); @@ -164,6 +187,8 @@ signals: void passwordChanged(PeerPtr peer, bool success); + void disconnectFromCore(); + protected: virtual void customEvent(QEvent *event); @@ -195,6 +220,9 @@ private: UserId _user; + /// Whether or not strict ident mode is enabled, locking users' idents to Quassel username + bool _strictIdentEnabled; + SignalProxy *_signalProxy; CoreAliasManager _aliasManager; // QHash _connections; @@ -208,7 +236,7 @@ private: CoreDccConfig *_dccConfig; CoreIrcListHelper *_ircListHelper; CoreNetworkConfig *_networkConfig; - CoreCoreInfo _coreInfo; + CoreInfo *_coreInfo; CoreTransferManager *_transferManager; EventManager *_eventManager; @@ -219,9 +247,31 @@ private: QScriptEngine *scriptEngine; + /** + * This method obtains the prefixes of the message's sender within a channel, by looking up their channelmodes, and + * processing them to prefixes based on the network's settings. + * @param sender The hostmask of the sender + * @param bufferInfo The BufferInfo object of the buffer + */ + QString senderPrefixes(const QString &sender, const BufferInfo &bufferInfo) const; + + /** + * This method obtains the realname of the message's sender. + * @param sender The hostmask of the sender + * @param networkId The network the user is on + */ + QString realName(const QString &sender, NetworkId networkId) const; + + /** + * This method obtains the avatar of the message's sender. + * @param sender The hostmask of the sender + * @param networkId The network the user is on + */ + QString avatarUrl(const QString &sender, NetworkId networkId) const; QList _messageQueue; bool _processMessages; CoreIgnoreListManager _ignoreListManager; + CoreHighlightRuleManager _highlightRuleManager; };