1 /*
2   SPDX-FileCopyrightText: 2013-2021 Laurent Montel <montel@kde.org>
3 
4   SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "interfaces/rulewidgethandler.h"
10 
11 namespace MailCommon
12 {
13 class MessageRuleWidgetHandler : public MailCommon::RuleWidgetHandler
14 {
15 public:
MessageRuleWidgetHandler()16     MessageRuleWidgetHandler()
17         : MailCommon::RuleWidgetHandler()
18     {
19     }
20 
~MessageRuleWidgetHandler()21     ~MessageRuleWidgetHandler() override
22     {
23     }
24 
25     QWidget *createFunctionWidget(int number, QStackedWidget *functionStack, const QObject *receiver, bool isBalooSearch) const override;
26 
27     QWidget *createValueWidget(int number, QStackedWidget *valueStack, const QObject *receiver) const override;
28 
29     SearchRule::Function function(const QByteArray &field, const QStackedWidget *functionStack) const override;
30 
31     QString value(const QByteArray &field, const QStackedWidget *functionStack, const QStackedWidget *valueStack) const override;
32 
33     QString prettyValue(const QByteArray &field, const QStackedWidget *functionStack, const QStackedWidget *valueStack) const override;
34 
35     bool handlesField(const QByteArray &field) const override;
36 
37     void reset(QStackedWidget *functionStack, QStackedWidget *valueStack) const override;
38 
39     bool setRule(QStackedWidget *functionStack, QStackedWidget *valueStack, const SearchRule::Ptr rule, bool isBalooSearch) const override;
40 
41     bool update(const QByteArray &field, QStackedWidget *functionStack, QStackedWidget *valueStack) const override;
42 
43 private:
44     SearchRule::Function currentFunction(const QStackedWidget *functionStack) const;
45     QString currentValue(const QStackedWidget *valueStack, SearchRule::Function func) const;
46 };
47 }
48 
49