• 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
filteractionstatus.cpp
Go to the documentation of this file.
1 /* -*- mode: C++; c-file-style: "gnu" -*-
2 
3  Copyright (c) 2012 Montel Laurent <montel@kde.org>
4 
5  This program is free software; you can redistribute it and/or modify it
6  under the terms of the GNU General Public License, version 2, as
7  published by the Free Software Foundation.
8 
9  This program is distributed in the hope that it will be useful, but
10  WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12  General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License along
15  with this program; if not, write to the Free Software Foundation, Inc.,
16  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17 */
18 
19 #include "filteractionstatus.h"
20 #include <KDE/Akonadi/KMime/MessageStatus>
21 #include <KDE/KLocale>
22 #include <QTextDocument>
23 using namespace MailCommon;
24 
25 Akonadi::MessageStatus MailCommon::FilterActionStatus::stati[] =
26 {
27  Akonadi::MessageStatus::statusImportant(),
28  Akonadi::MessageStatus::statusRead(),
29  Akonadi::MessageStatus::statusUnread(),
30  Akonadi::MessageStatus::statusReplied(),
31  Akonadi::MessageStatus::statusForwarded(),
32  Akonadi::MessageStatus::statusWatched(),
33  Akonadi::MessageStatus::statusIgnored(),
34  Akonadi::MessageStatus::statusSpam(),
35  Akonadi::MessageStatus::statusHam(),
36  Akonadi::MessageStatus::statusToAct()
37 };
38 
39 int MailCommon::FilterActionStatus::StatiCount = sizeof( MailCommon::FilterActionStatus::stati ) / sizeof( Akonadi::MessageStatus );
40 
41 FilterActionStatus::FilterActionStatus(const QString &name, const QString &label, QObject *parent )
42  : FilterActionWithStringList( name, label, parent )
43 {
44  // if you change this list, also update
45  // FilterActionSetStatus::stati above
46  mParameterList.append(QString() );
47  mParameterList.append( i18nc( "msg status", "Important" ) );
48  mParameterList.append( i18nc( "msg status", "Read" ) );
49  mParameterList.append( i18nc( "msg status", "Unread" ) );
50  mParameterList.append( i18nc( "msg status", "Replied" ) );
51  mParameterList.append( i18nc( "msg status", "Forwarded" ) );
52  mParameterList.append( i18nc( "msg status", "Watched" ) );
53  mParameterList.append( i18nc( "msg status", "Ignored" ) );
54  mParameterList.append( i18nc( "msg status", "Spam" ) );
55  mParameterList.append( i18nc( "msg status", "Ham" ) );
56  mParameterList.append( i18nc( "msg status", "Action Item" ) );
57 
58  mParameter = mParameterList.at( 0 );
59 }
60 
61 SearchRule::RequiredPart FilterActionStatus::requiredPart() const
62 {
63  return SearchRule::Envelope;
64 }
65 
66 bool FilterActionStatus::isEmpty() const
67 {
68  return false;
69 }
70 
71 QString FilterActionStatus::realStatusString( const QString &statusStr )
72 {
73  QString result( statusStr );
74 
75  if ( result.size() == 2 )
76  result.remove( QLatin1Char( 'U' ) );
77 
78  return result;
79 }
80 
81 
82 void FilterActionStatus::argsFromString( const QString &argsStr )
83 {
84  if ( argsStr.length() == 1 ) {
85  Akonadi::MessageStatus status;
86 
87  for ( int i = 0 ; i < FilterActionStatus::StatiCount; ++i ) {
88  status = stati[i];
89  if ( realStatusString( status.statusStr() ) == QLatin1String(argsStr.toLatin1()) ) {
90  mParameter = mParameterList.at( i + 1 );
91  return;
92  }
93  }
94  }
95 
96  mParameter = mParameterList.at( 0 );
97 }
98 
99 QString FilterActionStatus::argsAsString() const
100 {
101  const int index = mParameterList.indexOf( mParameter );
102  if ( index < 1 )
103  return QString();
104 
105  return realStatusString( FilterActionStatus::stati[index - 1].statusStr() );
106 }
107 
108 QString FilterActionStatus::displayString() const
109 {
110  return label() + QLatin1String( " \"" ) + mParameter + QLatin1String( "\"" );
111 }
112 
113 #include "filteractionstatus.moc"
MailCommon::FilterActionStatus::requiredPart
SearchRule::RequiredPart requiredPart() const
Returns the required part from the item that is needed for the action to operate. ...
Definition: filteractionstatus.cpp:61
MailCommon::FilterActionStatus::argsAsString
QString argsAsString() const
Return extra arguments as string.
Definition: filteractionstatus.cpp:99
MailCommon::FilterActionStatus::FilterActionStatus
FilterActionStatus(const QString &name, const QString &label, QObject *parent=0)
Definition: filteractionstatus.cpp:41
MailCommon::FilterActionWithStringList
Abstract base class for filter actions with a fixed set of string parameters.
Definition: filteractionwithstringlist.h:49
MailCommon::FilterActionStatus::displayString
QString displayString() const
Returns a translated string describing this filter for visualization purposes, e.g.
Definition: filteractionstatus.cpp:108
QObject
filteractionstatus.h
MailCommon::FilterActionWithStringList::mParameterList
QStringList mParameterList
Definition: filteractionwithstringlist.h:85
MailCommon::FilterActionStatus::realStatusString
static QString realStatusString(const QString &statusStr)
Definition: filteractionstatus.cpp:71
MailCommon::FilterActionStatus::stati
static Akonadi::MessageStatus stati[]
Definition: filteractionstatus.h:39
MailCommon::SearchRule::RequiredPart
RequiredPart
Definition: searchpattern.h:104
MailCommon::FilterAction::label
QString label() const
Returns i18n'd label, ie.
Definition: filteraction.cpp:45
MailCommon::SearchRule::Envelope
Definition: searchpattern.h:105
MailCommon::FilterActionWithString::mParameter
QString mParameter
Definition: filteractionwithstring.h:91
MailCommon::FilterActionStatus::isEmpty
bool isEmpty() const
Determines whether this action is valid.
Definition: filteractionstatus.cpp:66
MailCommon::FilterActionStatus::argsFromString
void argsFromString(const QString &argsStr)
Read extra arguments from given string.
Definition: filteractionstatus.cpp:82
MailCommon::FilterActionStatus::StatiCount
static int StatiCount
Definition: filteractionstatus.h:40
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