Mailcommon

filteractiondict.cpp
1 /*
2  * SPDX-FileCopyrightText: 1996-1998 Stefan Taferner <[email protected]>
3  *
4  * SPDX-License-Identifier: GPL-2.0-or-later
5  *
6  */
7 
8 #include "filteractiondict.h"
9 
10 #include "filteractionaddheader.h"
11 #include "filteractionaddtag.h"
12 #include "filteractionaddtoaddressbook.h"
13 #include "filteractioncopy.h"
14 #include "filteractiondecrypt.h"
15 #include "filteractiondelete.h"
16 #include "filteractionencrypt.h"
17 #include "filteractionexec.h"
18 #include "filteractionmove.h"
19 #include "filteractionpipethrough.h"
20 #include "filteractionplaysound.h"
21 #include "filteractionredirect.h"
22 #include "filteractionremoveheader.h"
23 #include "filteractionreplyto.h"
24 #include "filteractionrewriteheader.h"
25 #include "filteractionsendfakedisposition.h"
26 #include "filteractionsendreceipt.h"
27 #include "filteractionsetidentity.h"
28 #include "filteractionsetstatus.h"
29 #include "filteractionsettransport.h"
30 #include "filteractionunsetstatus.h"
31 
32 using namespace MailCommon;
33 
34 //=============================================================================
35 //
36 // Filter Action Dictionary
37 //
38 //=============================================================================
40 {
41  qDeleteAll(mList);
42 }
43 
45 {
46  insert(FilterActionMove::newAction);
47  insert(FilterActionCopy::newAction);
48  insert(FilterActionSetIdentity::newAction);
49  insert(FilterActionSetStatus::newAction);
50  insert(FilterActionAddTag::newAction);
51  insert(FilterActionSendFakeDisposition::newAction);
52  insert(FilterActionSetTransport::newAction);
53  insert(FilterActionReplyTo::newAction);
54  // Laurent disable for the moment as async doesn't work
55  // PORT TO ASYNC insert(FilterActionForward::newAction);
56  insert(FilterActionRedirect::newAction);
57  insert(FilterActionSendReceipt::newAction);
58  insert(FilterActionExec::newAction);
59  insert(FilterActionPipeThrough::newAction);
60  insert(FilterActionRemoveHeader::newAction);
61  insert(FilterActionAddHeader::newAction);
62  insert(FilterActionRewriteHeader::newAction);
63  insert(FilterActionPlaySound::newAction);
64  insert(FilterActionAddToAddressBook::newAction);
65  insert(FilterActionDelete::newAction);
66  insert(FilterActionUnsetStatus::newAction);
67  insert(FilterActionEncrypt::newAction);
68  insert(FilterActionDecrypt::newAction);
69  // Register custom filter actions below this line.
70 }
71 
72 // The int in the QDict constructor (41) must be a prime
73 // and should be greater than the double number of FilterAction types
76 {
77  init();
78 }
79 
80 void FilterActionDict::insert(FilterActionNewFunc aNewFunc)
81 {
82  FilterAction *action = aNewFunc();
83  auto desc = new FilterActionDesc;
84  desc->name = action->name();
85  desc->label = action->label();
86  desc->create = aNewFunc;
87 
90  mList.append(desc);
91 
92  delete action;
93 }
94 
96 {
97  return mList;
98 }
typename QHash< Key, T >::iterator insert(const Key &key, const T &value)
MAILCOMMON_EXPORT void insert(FilterActionNewFunc aNewFunc)
Overloaded member function, provided for convenience.
QString name() const
Returns identifier name, ie.
Abstract base class for mail filter actions.
Definition: filteraction.h:38
QString label() const
Returns i18n'd label, ie.
const MAILCOMMON_EXPORT QList< FilterActionDesc * > & list() const
Provides read-only access to a list of all known filter actions.
MAILCOMMON_EXPORT FilterActionDict()
Creates the filter action dictionary.
Auxiliary struct for FilterActionDict.
virtual MAILCOMMON_EXPORT ~FilterActionDict()
Destroys the filter action dictionary.
The filter dialog.
virtual void init()
Populate the dictionary with all known FilterAction types.
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Tue Nov 28 2023 03:59:04 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.