1 /*************************************************************************** 2 * Copyright (C) 2005-2020 by the Quassel Project * 3 * devel@quassel-irc.org * 4 * * 5 * This program is free software; you can redistribute it and/or modify * 6 * it under the terms of the GNU General Public License as published by * 7 * the Free Software Foundation; either version 2 of the License, or * 8 * (at your option) version 3. * 9 * * 10 * This program is distributed in the hope that it will be useful, * 11 * but WITHOUT ANY WARRANTY; without even the implied warranty of * 12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * 13 * GNU General Public License for more details. * 14 * * 15 * You should have received a copy of the GNU General Public License * 16 * along with this program; if not, write to the * 17 * Free Software Foundation, Inc., * 18 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * 19 ***************************************************************************/ 20 21 #pragma once 22 23 #include "highlightrulemanager.h" 24 25 class CoreSession; 26 struct RawMessage; 27 28 /** 29 * Core-side specialization for HighlightRuleManager. 30 * 31 * Adds the ability to load/save the settings from/to the database. 32 */ 33 class CoreHighlightRuleManager : public HighlightRuleManager 34 { 35 Q_OBJECT 36 37 using HighlightRuleManager::match; 38 39 public: 40 /** 41 * Constructor. 42 * 43 * @param[in] session Pointer to the parent CoreSession (takes ownership) 44 */ 45 explicit CoreHighlightRuleManager(CoreSession* session); 46 47 bool match(const RawMessage& msg, const QString& currentNick, const QStringList& identityNicks); 48 49 public slots: requestToggleHighlightRule(int highlightRule)50 inline void requestToggleHighlightRule(int highlightRule) override { toggleHighlightRule(highlightRule); } requestRemoveHighlightRule(int highlightRule)51 inline void requestRemoveHighlightRule(int highlightRule) override { removeHighlightRule(highlightRule); } requestAddHighlightRule(int id,const QString & name,bool isRegEx,bool isCaseSensitive,bool isEnabled,bool isInverse,const QString & sender,const QString & chanName)52 inline void requestAddHighlightRule(int id, 53 const QString& name, 54 bool isRegEx, 55 bool isCaseSensitive, 56 bool isEnabled, 57 bool isInverse, 58 const QString& sender, 59 const QString& chanName) override 60 { 61 addHighlightRule(id, name, isRegEx, isCaseSensitive, isEnabled, isInverse, sender, chanName); 62 } 63 64 private slots: 65 /** 66 * Saves the config to the database. 67 */ 68 void save(); 69 70 private: 71 CoreSession* _coreSession{nullptr}; ///< Pointer to the parent CoreSession 72 }; 73