File indexing completed on 2024-06-23 05:17:59

0001 /*
0002   SPDX-FileCopyrightText: 2013-2024 Laurent Montel <montel@kde.org>
0003 
0004   SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "interfaces/rulewidgethandler.h"
0010 
0011 namespace MailCommon
0012 {
0013 class TextRuleWidgetHandler : public MailCommon::RuleWidgetHandler
0014 {
0015 public:
0016     TextRuleWidgetHandler()
0017         : MailCommon::RuleWidgetHandler()
0018     {
0019     }
0020 
0021     ~TextRuleWidgetHandler() override = default;
0022 
0023     QWidget *createFunctionWidget(int number, QStackedWidget *functionStack, const QObject *receiver, bool isBalooSearch) const override;
0024 
0025     QWidget *createValueWidget(int number, QStackedWidget *valueStack, const QObject *receiver) const override;
0026 
0027     SearchRule::Function function(const QByteArray &field, const QStackedWidget *functionStack) const override;
0028 
0029     QString value(const QByteArray &field, const QStackedWidget *functionStack, const QStackedWidget *valueStack) const override;
0030 
0031     QString prettyValue(const QByteArray &field, const QStackedWidget *functionStack, const QStackedWidget *valueStack) const override;
0032 
0033     bool handlesField(const QByteArray &field) const override;
0034 
0035     void reset(QStackedWidget *functionStack, QStackedWidget *valueStack) const override;
0036 
0037     bool setRule(QStackedWidget *functionStack, QStackedWidget *valueStack, const SearchRule::Ptr rule, bool isBalooSearch) const override;
0038 
0039     bool update(const QByteArray &field, QStackedWidget *functionStack, QStackedWidget *valueStack) const override;
0040 
0041 private:
0042     SearchRule::Function currentFunction(const QStackedWidget *functionStack) const;
0043     QString currentValue(const QStackedWidget *valueStack, SearchRule::Function func) const;
0044 };
0045 }