• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdepim API Reference
  • KDE Home
  • Contact Us
 

mailcommon

  • sources
  • kde-4.14
  • kdepim
  • mailcommon
  • search
  • searchrule
searchrule.h
Go to the documentation of this file.
1 /*
2  Copyright (c) 2015 Montel Laurent <montel@kde.org>
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License, version 2, as
6  published by the Free Software Foundation.
7 
8  This program is distributed in the hope that it will be useful, but
9  WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11  General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License along
14  with this program; if not, write to the Free Software Foundation, Inc.,
15  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 */
17 #ifndef SEARCHRULE_H
18 #define SEARCHRULE_H
19 
20 
21 #include "mailcommon_export.h"
22 #ifndef Q_MOC_RUN
23 #include <boost/shared_ptr.hpp>
24 #endif
25 #include <akonadi/searchquery.h>
26 
27 #include <Akonadi/Item>
28 
29 class KConfigGroup;
30 namespace MailCommon {
38 class MAILCOMMON_EXPORT SearchRule
39 {
40 public:
44  typedef boost::shared_ptr<SearchRule> Ptr;
45 
55  enum Function {
56  FuncNone = -1,
57  FuncContains = 0,
58  FuncContainsNot,
59  FuncEquals,
60  FuncNotEqual,
61  FuncRegExp,
62  FuncNotRegExp,
63  FuncIsGreater,
64  FuncIsLessOrEqual,
65  FuncIsLess,
66  FuncIsGreaterOrEqual,
67  FuncIsInAddressbook,
68  FuncIsNotInAddressbook,
69  FuncIsInCategory,
70  FuncIsNotInCategory,
71  FuncHasAttachment,
72  FuncHasNoAttachment,
73  FuncStartWith,
74  FuncNotStartWith,
75  FuncEndWith,
76  FuncNotEndWith
77  };
78 
79  enum RequiredPart {
80  Envelope = 0,
81  Header,
82  CompleteMessage
83  };
84 
92  explicit SearchRule ( const QByteArray &field = QByteArray(), Function function = FuncContains,
93  const QString &contents = QString() );
94 
98  SearchRule( const SearchRule &other );
99 
103  const SearchRule &operator=( const SearchRule &other );
104 
113  static SearchRule::Ptr createInstance( const QByteArray &field = 0,
114  Function function = FuncContains,
115  const QString &contents = QString() );
116 
125  static SearchRule::Ptr createInstance( const QByteArray &field,
126  const char *function,
127  const QString &contents );
128 
132  static SearchRule::Ptr createInstance( const SearchRule &other );
133 
137  static SearchRule::Ptr createInstance( QDataStream &stream );
138 
150  static SearchRule::Ptr createInstanceFromConfig( const KConfigGroup &group, int index );
151 
155  virtual ~SearchRule();
156 
165  virtual bool matches( const Akonadi::Item &item ) const = 0;
166 
173  virtual bool isEmpty() const = 0;
174 
178  virtual SearchRule::RequiredPart requiredPart() const = 0;
179 
189  void writeConfig( KConfigGroup &group, int index ) const;
190 
191  void generateSieveScript(QStringList &requires, QString &code);
192 
196  void setFunction( Function function );
197 
201  Function function() const;
202 
208  void setField( const QByteArray &name );
209 
223  QByteArray field() const;
224 
231  void setContents( const QString &contents );
232 
236  QString contents() const;
237 
241  const QString asString() const;
242 
246  virtual void addQueryTerms( Akonadi::SearchTerm &groupTerm, bool &emptyIsNotAnError ) const { }
247 
248 
249  QDataStream &operator>>( QDataStream & ) const;
250  virtual QString informationAboutNotValidRules() const { return QString(); }
251 
252 protected:
256  bool isNegated() const;
257 
261  Akonadi::SearchTerm::Condition akonadiComparator() const;
262 
263 protected:
264  QString quote( const QString &content ) const;
265 private:
266  static Function configValueToFunc( const char * );
267  static QString functionToString( Function );
268  QString conditionToString(Function function);
269 
270  QByteArray mField;
271  Function mFunction;
272  QString mContents;
273 };
274 }
275 
276 #endif // SEARCHRULE_H
MailCommon::SearchRule::FuncIsInAddressbook
Definition: searchrule.h:67
MailCommon::SearchRule::FuncEndWith
Definition: searchrule.h:75
MailCommon::SearchRule::FuncIsGreaterOrEqual
Definition: searchrule.h:66
QByteArray
MailCommon::SearchRule::FuncContainsNot
Definition: searchrule.h:58
MailCommon::SearchRule::FuncIsNotInAddressbook
Definition: searchrule.h:68
MailCommon::SearchRule::FuncIsInCategory
Definition: searchrule.h:69
QDataStream
MailCommon::SearchRule::FuncNotStartWith
Definition: searchrule.h:74
MailCommon::SearchRule::FuncHasAttachment
Definition: searchrule.h:71
MailCommon::SearchRule::Ptr
boost::shared_ptr< SearchRule > Ptr
Defines a pointer to a search rule.
Definition: searchrule.h:44
MailCommon::SearchRule::informationAboutNotValidRules
virtual QString informationAboutNotValidRules() const
Definition: searchrule.h:250
MailCommon::SearchRule::FuncStartWith
Definition: searchrule.h:73
MailCommon::SearchRule::FuncNotRegExp
Definition: searchrule.h:62
MailCommon::SearchRule::Function
Function
Describes operators for comparison of field and contents.
Definition: searchrule.h:55
MailCommon::SearchRule::FuncNotEqual
Definition: searchrule.h:60
mailcommon_export.h
MailCommon::SearchRule::RequiredPart
RequiredPart
Definition: searchrule.h:79
QString
MailCommon::SearchRule::FuncHasNoAttachment
Definition: searchrule.h:72
QStringList
MailCommon::SearchRule::FuncRegExp
Definition: searchrule.h:61
MAILCOMMON_EXPORT
#define MAILCOMMON_EXPORT
Definition: mailcommon_export.h:35
MailCommon::SearchRule
This class represents one search pattern rule.
Definition: searchrule.h:38
MailCommon::SearchRule::FuncIsNotInCategory
Definition: searchrule.h:70
MailCommon::operator>>
MAILCOMMON_EXPORT QDataStream & operator>>(QDataStream &stream, MailFilter &filter)
Definition: mailfilter.cpp:668
MailCommon::SearchRule::FuncIsGreater
Definition: searchrule.h:63
MailCommon::SearchRule::addQueryTerms
virtual void addQueryTerms(Akonadi::SearchTerm &groupTerm, bool &emptyIsNotAnError) const
Adds query terms to the given term group.
Definition: searchrule.h:246
MailCommon::SearchRule::FuncIsLessOrEqual
Definition: searchrule.h:64
MailCommon::SearchRule::Header
Definition: searchrule.h:81
MailCommon::SearchRule::FuncIsLess
Definition: searchrule.h:65
MailCommon::SearchRule::FuncEquals
Definition: searchrule.h:59
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:31:41 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

mailcommon

Skip menu "mailcommon"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdepim API Reference

Skip menu "kdepim API Reference"
  • akonadi_next
  • akregator
  • blogilo
  • calendarsupport
  • console
  •   kabcclient
  •   konsolekalendar
  • kaddressbook
  • kalarm
  •   lib
  • kdgantt2
  • kjots
  • kleopatra
  • kmail
  • knode
  • knotes
  • kontact
  • korgac
  • korganizer
  • ktimetracker
  • libkdepim
  • libkleo
  • libkpgp
  • mailcommon
  • messagelist
  • messageviewer
  • pimprint

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal