X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fqtui%2Fqtuimessageprocessor.h;h=c915cc0078e9cb6d4ddc87e2805e20195f268ce6;hp=6a9684f7a64929c6805ea8d9aa700052095c173a;hb=HEAD;hpb=4c4fe2b514fc7ecf3186202d73b3b5ff8847763f diff --git a/src/qtui/qtuimessageprocessor.h b/src/qtui/qtuimessageprocessor.h index 6a9684f7..c915cc00 100644 --- a/src/qtui/qtuimessageprocessor.h +++ b/src/qtui/qtuimessageprocessor.h @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-2018 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 * @@ -21,6 +21,8 @@ #ifndef QTUIMESSAGEPROCESSOR_H_ #define QTUIMESSAGEPROCESSOR_H_ +#include + #include #include "abstractmessageprocessor.h" @@ -32,21 +34,22 @@ class QtUiMessageProcessor : public AbstractMessageProcessor Q_OBJECT public: - enum Mode { + enum Mode + { TimerBased, Concurrent }; - QtUiMessageProcessor(QObject *parent); + QtUiMessageProcessor(QObject* parent); inline bool isProcessing() const { return _processing; } inline Mode processMode() const { return _processMode; } - void reset(); + void reset() override; public slots: - void process(Message &msg); - void process(QList &msgs); + void process(Message& msg) override; + void process(QList& msgs) override; /** * Network removed from system @@ -55,16 +58,13 @@ public slots: * * @param id Network ID of removed network */ - inline void networkRemoved(NetworkId id) { - // Clean up nickname matching cache - _nickMatcher.removeNetwork(id); - } + void networkRemoved(NetworkId id) override; private slots: void processNextMessage(); - void nicksCaseSensitiveChanged(const QVariant &variant); - void highlightListChanged(const QVariant &variant); - void highlightNickChanged(const QVariant &variant); + void nicksCaseSensitiveChanged(const QVariant& variant); + void highlightListChanged(const QVariant& variant); + void highlightNickChanged(const QVariant& variant); private: /** @@ -76,7 +76,7 @@ private: /** * Construct an empty highlight rule */ - LegacyHighlightRule() {} + LegacyHighlightRule() = default; /** * Construct a highlight rule with the given parameters @@ -87,10 +87,12 @@ private: * @param isEnabled True if enabled, otherwise false * @param chanName String representing a channel name expression to match */ - LegacyHighlightRule(QString contents, bool isRegEx, bool isCaseSensitive, bool isEnabled, - QString chanName) - : _contents(contents), _isRegEx(isRegEx), _isCaseSensitive(isCaseSensitive), - _isEnabled(isEnabled), _chanName(chanName) + LegacyHighlightRule(QString contents, bool isRegEx, bool isCaseSensitive, bool isEnabled, QString chanName) + : _contents(std::move(contents)) + , _isRegEx(isRegEx) + , _isCaseSensitive(isCaseSensitive) + , _isEnabled(isEnabled) + , _chanName(std::move(chanName)) { _cacheInvalid = true; // Cache expression matches on construction @@ -114,15 +116,14 @@ private: * * @return String representing a phrase or expression to match */ - inline QString contents() const { - return _contents; - } + inline QString contents() const { return _contents; } /** * Sets the message contents this rule matches * * @param contents String representing a phrase or expression to match */ - inline void setContents(const QString &contents) { + inline void setContents(const QString& contents) + { _contents = contents; _cacheInvalid = true; } @@ -132,15 +133,14 @@ private: * * @return True if regular expression, otherwise false */ - inline bool isRegEx() const { - return _isRegEx; - } + inline bool isRegEx() const { return _isRegEx; } /** * Sets if this rule is a regular expression rule * * @param isRegEx True if regular expression, otherwise false */ - inline void setIsRegEx(bool isRegEx) { + inline void setIsRegEx(bool isRegEx) + { _isRegEx = isRegEx; _cacheInvalid = true; } @@ -150,15 +150,14 @@ private: * * @return True if case sensitive, otherwise false */ - inline bool isCaseSensitive() const { - return _isCaseSensitive; - } + inline bool isCaseSensitive() const { return _isCaseSensitive; } /** * Sets if this rule is case sensitive * * @param isCaseSensitive True if case sensitive, otherwise false */ - inline void setIsCaseSensitive(bool isCaseSensitive) { + inline void setIsCaseSensitive(bool isCaseSensitive) + { _isCaseSensitive = isCaseSensitive; _cacheInvalid = true; } @@ -168,17 +167,13 @@ private: * * @return True if enabled, otherwise false */ - inline bool isEnabled() const { - return _isEnabled; - } + inline bool isEnabled() const { return _isEnabled; } /** * Sets if this rule is enabled and active * * @param isEnabled True if enabled, otherwise false */ - inline void setIsEnabled(bool isEnabled) { - _isEnabled = isEnabled; - } + inline void setIsEnabled(bool isEnabled) { _isEnabled = isEnabled; } /** * Gets the channel name this rule matches @@ -187,15 +182,14 @@ private: * * @return String representing a phrase or expression to match */ - inline QString chanName() const { - return _chanName; - } + inline QString chanName() const { return _chanName; } /** * Sets the channel name this rule matches * * @param chanName String representing a phrase or expression to match */ - inline void setChanName(const QString &chanName) { + inline void setChanName(const QString& chanName) + { _chanName = chanName; _cacheInvalid = true; } @@ -205,7 +199,8 @@ private: * * @return Expression matcher to compare with message contents */ - inline ExpressionMatch contentsMatcher() const { + inline ExpressionMatch contentsMatcher() const + { if (_cacheInvalid) { determineExpressions(); } @@ -217,14 +212,15 @@ private: * * @return Expression matcher to compare with channel name */ - inline ExpressionMatch chanNameMatcher() const { + inline ExpressionMatch chanNameMatcher() const + { if (_cacheInvalid) { determineExpressions(); } return _chanNameMatch; } - bool operator!=(const LegacyHighlightRule &other) const; + bool operator!=(const LegacyHighlightRule& other) const; private: /** @@ -240,31 +236,30 @@ private: // These represent internal cache and should be safe to mutate in 'const' functions // See https://stackoverflow.com/questions/3141087/what-is-meant-with-const-at-end-of-function-declaration - mutable bool _cacheInvalid = true; ///< If true, match cache needs redone - mutable ExpressionMatch _contentsMatch = {}; ///< Expression match cache for message content - mutable ExpressionMatch _chanNameMatch = {}; ///< Expression match cache for channel name + mutable bool _cacheInvalid = true; ///< If true, match cache needs redone + mutable ExpressionMatch _contentsMatch = {}; ///< Expression match cache for message content + mutable ExpressionMatch _chanNameMatch = {}; ///< Expression match cache for channel name }; using LegacyHighlightRuleList = QList; - void checkForHighlight(Message &msg); + void checkForHighlight(Message& msg); void startProcessing(); using HighlightNickType = NotificationSettings::HighlightNickType; - LegacyHighlightRuleList _highlightRuleList; ///< Custom highlight rule list - NickHighlightMatcher _nickMatcher = {}; ///< Nickname highlight matcher + LegacyHighlightRuleList _highlightRuleList; ///< Custom highlight rule list + NickHighlightMatcher _nickMatcher = {}; ///< Nickname highlight matcher /// Nickname highlighting mode HighlightNickType _highlightNick = HighlightNickType::CurrentNick; - bool _nicksCaseSensitive = false; ///< If true, match nicknames with exact case + bool _nicksCaseSensitive = false; ///< If true, match nicknames with exact case - QList > _processQueue; + QList> _processQueue; QList _currentBatch; QTimer _processTimer; bool _processing; Mode _processMode; }; - #endif