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

mailcommon

  • sources
  • kde-4.12
  • kdepim
  • mailcommon
  • filter
  • filterimporter
filterimporterabstract.cpp
Go to the documentation of this file.
1 /*
2  Copyright (c) 2012, 2013 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 
18 #include "filterimporterabstract_p.h"
19 
20 #include "filteractiondict.h"
21 #include "filtermanager.h"
22 #include "mailfilter.h"
23 
24 #include <QFile>
25 
26 using namespace MailCommon;
27 
28 FilterImporterAbstract::FilterImporterAbstract(bool interactive)
29  : mInteractive(interactive)
30 {
31 }
32 
33 FilterImporterAbstract::~FilterImporterAbstract()
34 {
35 }
36 
37 QList<MailFilter*> FilterImporterAbstract::importFilter() const
38 {
39  return mListMailFilter;
40 }
41 
42 QStringList FilterImporterAbstract::emptyFilter() const
43 {
44  return mEmptyFilter;
45 }
46 
47 void FilterImporterAbstract::appendFilter( MailCommon::MailFilter *filter )
48 {
49  if ( !filter )
50  return;
51 
52  filter->purify();
53  if ( !filter->isEmpty() ) {
54  // the filter is valid:
55  mListMailFilter << filter;
56  } else {
57  mEmptyFilter << filter->name();
58  // the filter is invalid:
59  qDebug()<<" Empty filter";
60  delete filter;
61  }
62 }
63 
64 void FilterImporterAbstract::createFilterAction( MailCommon::MailFilter *filter,
65  const QString &actionName,
66  const QString &value )
67 {
68  if ( !actionName.isEmpty() ) {
69  FilterActionDesc *desc = MailCommon::FilterManager::filterActionDict()->value( actionName );
70  if ( desc ) {
71  FilterAction *fa = desc->create();
72  //...create an instance...
73  if (mInteractive)
74  fa->argsFromStringInteractive( value, filter->name() );
75  else
76  fa->argsFromString( value );
77 
78  //...check if it's empty and...
79  if ( !fa->isEmpty() ) {
80  //...append it if it's not and...
81  filter->actions()->append( fa );
82  } else {
83  //...delete is else.
84  delete fa;
85  }
86  }
87  }
88 }
89 
90 bool FilterImporterAbstract::loadDomElement( QDomDocument &doc, QFile *file )
91 {
92  QString errorMsg;
93  int errorRow;
94  int errorCol;
95  if ( !doc.setContent( file, &errorMsg, &errorRow, &errorCol ) ) {
96  kDebug() << "Unable to load document.Parse error in line " << errorRow
97  << ", col " << errorCol << ": " << errorMsg;
98  return false;
99  }
100  return true;
101 }
MailCommon::FilterImporterAbstract::importFilter
QList< MailFilter * > importFilter() const
Definition: filterimporterabstract.cpp:37
MailCommon::MailFilter::isEmpty
bool isEmpty() const
Check for empty pattern and action list.
Definition: mailfilter.cpp:563
MailCommon::FilterImporterAbstract::~FilterImporterAbstract
~FilterImporterAbstract()
Definition: filterimporterabstract.cpp:33
filterimporterabstract_p.h
mailfilter.h
MailCommon::MailFilter::actions
QList< FilterAction * > * actions()
Provides a reference to the internal action list.
Definition: mailfilter.cpp:172
MailCommon::FilterImporterAbstract::mListMailFilter
QList< MailFilter * > mListMailFilter
Definition: filterimporterabstract_p.h:47
MailCommon::MailFilter::purify
void purify()
Remove empty rules (and actions one day).
Definition: mailfilter.cpp:538
MailCommon::FilterAction
Abstract base class for mail filter actions.
Definition: filteraction.h:52
MailCommon::FilterAction::argsFromStringInteractive
virtual bool argsFromStringInteractive(const QString &argsStr, const QString &filterName)
Read extra arguments from given string.
Definition: filteraction.cpp:82
MailCommon::FilterAction::isEmpty
virtual bool isEmpty() const
Determines whether this action is valid.
Definition: filteraction.cpp:55
MailCommon::FilterActionDesc
Auxiliary struct for FilterActionDict.
Definition: filteractiondict.h:36
MailCommon::FilterManager::filterActionDict
static FilterActionDict * filterActionDict()
Returns the global filter action dictionary.
Definition: filtermanager.cpp:109
MailCommon::FilterImporterAbstract::appendFilter
void appendFilter(MailCommon::MailFilter *filter)
Definition: filterimporterabstract.cpp:47
MailCommon::FilterAction::argsFromString
virtual void argsFromString(const QString &argsStr)=0
Read extra arguments from given string.
MailCommon::MailFilter::name
QString name() const
Equivalent to ()->name().
Definition: mailfilter.cpp:123
MailCommon::FilterImporterAbstract::loadDomElement
bool loadDomElement(QDomDocument &doc, QFile *file)
Definition: filterimporterabstract.cpp:90
MailCommon::FilterActionDesc::create
FilterActionNewFunc create
Definition: filteractiondict.h:39
MailCommon::FilterImporterAbstract::emptyFilter
QStringList emptyFilter() const
Definition: filterimporterabstract.cpp:42
filtermanager.h
MailCommon::FilterImporterAbstract::FilterImporterAbstract
FilterImporterAbstract(bool interactive=true)
Definition: filterimporterabstract.cpp:28
MailCommon::MailFilter
Definition: mailfilter.h:42
MailCommon::FilterImporterAbstract::createFilterAction
void createFilterAction(MailCommon::MailFilter *filter, const QString &actionName, const QString &value)
Definition: filterimporterabstract.cpp:64
MailCommon::FilterImporterAbstract::mEmptyFilter
QStringList mEmptyFilter
Definition: filterimporterabstract_p.h:48
filteractiondict.h
QList
This file is part of the KDE documentation.
Documentation copyright © 1996-2014 The KDE developers.
Generated on Tue Oct 14 2014 22:55:14 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

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