File indexing completed on 2024-09-22 04:49:59
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 "filteractionwithstringlist.h" 0011 0012 namespace MailCommon 0013 { 0014 //============================================================================= 0015 // FilterActionAddToAddressBook 0016 // - add email address from header to address book 0017 //============================================================================= 0018 class FilterActionAddToAddressBook : public FilterActionWithStringList 0019 { 0020 Q_OBJECT 0021 public: 0022 explicit FilterActionAddToAddressBook(QObject *parent = nullptr); 0023 [[nodiscard]] ReturnCode process(ItemContext &context, bool applyOnOutbound) const override; 0024 static FilterAction *newAction(); 0025 0026 [[nodiscard]] SearchRule::RequiredPart requiredPart() const override; 0027 0028 [[nodiscard]] bool isEmpty() const override; 0029 0030 [[nodiscard]] QWidget *createParamWidget(QWidget *parent) const override; 0031 void setParamWidgetValue(QWidget *paramWidget) const override; 0032 void applyParamWidgetValue(QWidget *paramWidget) override; 0033 void clearParamWidget(QWidget *paramWidget) const override; 0034 0035 [[nodiscard]] QString argsAsString() const override; 0036 void argsFromString(const QString &argsStr) override; 0037 0038 [[nodiscard]] QString informationAboutNotValidAction() const override; 0039 0040 private: 0041 enum HeaderType { FromHeader, ToHeader, CcHeader, BccHeader, UnknownHeader }; 0042 0043 const QString mFromStr, mToStr, mCCStr, mBCCStr; 0044 HeaderType mHeaderType; 0045 Akonadi::Collection::Id mCollectionId; 0046 QString mCategory; 0047 }; 0048 }