File indexing completed on 2024-09-22 04:50:01

0001 /*
0002  * SPDX-FileCopyrightText: 1996-1998 Stefan Taferner <taferner@kde.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  *
0006  */
0007 
0008 #pragma once
0009 
0010 #include "filteraction.h"
0011 
0012 namespace MailCommon
0013 {
0014 //=============================================================================
0015 // FilterActionSetTransport - set transport to...
0016 // Specify mail transport (smtp server) to be used when replying to a message
0017 //=============================================================================
0018 class FilterActionSetTransport : public FilterAction
0019 {
0020     Q_OBJECT
0021 public:
0022     explicit FilterActionSetTransport(QObject *parent = nullptr);
0023     ReturnCode process(ItemContext &context, bool applyOnOutbound) const override;
0024     [[nodiscard]] SearchRule::RequiredPart requiredPart() const override;
0025     static FilterAction *newAction();
0026     QWidget *createParamWidget(QWidget *parent) const override;
0027     /**
0028      * @copydoc FilterAction::applyParamWidgetValue
0029      */
0030     void applyParamWidgetValue(QWidget *paramWidget) override;
0031 
0032     /**
0033      * @copydoc FilterAction::setParamWidgetValue
0034      */
0035     void setParamWidgetValue(QWidget *paramWidget) const override;
0036 
0037     /**
0038      * @copydoc FilterAction::clearParamWidget
0039      */
0040     void clearParamWidget(QWidget *paramWidget) const override;
0041 
0042     [[nodiscard]] bool argsFromStringInteractive(const QString &argsStr, const QString &filterName) override;
0043 
0044     /**
0045      * @copydoc FilterAction::argsFromString
0046      */
0047     void argsFromString(const QString &argsStr) override;
0048     /**
0049      * @copydoc FilterAction::isEmpty
0050      */
0051     [[nodiscard]] bool isEmpty() const override;
0052     /**
0053      * @copydoc FilterAction::argsAsString
0054      */
0055     [[nodiscard]] QString argsAsString() const override;
0056 
0057     /**
0058      * @copydoc FilterAction::displayString
0059      */
0060     [[nodiscard]] QString displayString() const override;
0061     [[nodiscard]] QString informationAboutNotValidAction() const override;
0062 
0063 protected:
0064     int mParameter;
0065     mutable QString mTransportName;
0066 };
0067 }