• 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
  • filter
  • filteractions
filteractionstatus.cpp
Go to the documentation of this file.
1 /* -*- mode: C++; c-file-style: "gnu" -*-
2 
3  Copyright (c) 2012-2015 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 using namespace MailCommon;
23 
24 Akonadi::MessageStatus MailCommon::FilterActionStatus::stati[] =
25 {
26  Akonadi::MessageStatus::statusImportant(),
27  Akonadi::MessageStatus::statusRead(),
28  Akonadi::MessageStatus::statusUnread(),
29  Akonadi::MessageStatus::statusReplied(),
30  Akonadi::MessageStatus::statusForwarded(),
31  Akonadi::MessageStatus::statusWatched(),
32  Akonadi::MessageStatus::statusIgnored(),
33  Akonadi::MessageStatus::statusSpam(),
34  Akonadi::MessageStatus::statusHam(),
35  Akonadi::MessageStatus::statusToAct()
36 };
37 
38 int MailCommon::FilterActionStatus::StatiCount = sizeof( MailCommon::FilterActionStatus::stati ) / sizeof( Akonadi::MessageStatus );
39 
40 FilterActionStatus::FilterActionStatus(const QString &name, const QString &label, QObject *parent )
41  : FilterActionWithStringList( name, label, parent )
42 {
43  // if you change this list, also update
44  // FilterActionSetStatus::stati above
45  mParameterList.append(QString() );
46  mParameterList.append( i18nc( "msg status", "Important" ) );
47  mParameterList.append( i18nc( "msg status", "Read" ) );
48  mParameterList.append( i18nc( "msg status", "Unread" ) );
49  mParameterList.append( i18nc( "msg status", "Replied" ) );
50  mParameterList.append( i18nc( "msg status", "Forwarded" ) );
51  mParameterList.append( i18nc( "msg status", "Watched" ) );
52  mParameterList.append( i18nc( "msg status", "Ignored" ) );
53  mParameterList.append( i18nc( "msg status", "Spam" ) );
54  mParameterList.append( i18nc( "msg status", "Ham" ) );
55  mParameterList.append( i18nc( "msg status", "Action Item" ) );
56 
57  mParameter = mParameterList.at( 0 );
58 }
59 
60 SearchRule::RequiredPart FilterActionStatus::requiredPart() const
61 {
62  return SearchRule::Envelope;
63 }
64 
65 bool FilterActionStatus::isEmpty() const
66 {
67  return mParameter.isEmpty();
68 }
69 
70 QString FilterActionStatus::realStatusString( const QString &statusStr )
71 {
72  QString result( statusStr );
73 
74  if ( result.size() == 2 )
75  result.remove( QLatin1Char( 'U' ) );
76 
77  return result;
78 }
79 
80 
81 void FilterActionStatus::argsFromString( const QString &argsStr )
82 {
83  if ( argsStr.length() == 1 ) {
84  Akonadi::MessageStatus status;
85 
86  for ( int i = 0 ; i < FilterActionStatus::StatiCount; ++i ) {
87  status = stati[i];
88  if ( realStatusString( status.statusStr() ) == QLatin1String(argsStr.toLatin1()) ) {
89  mParameter = mParameterList.at( i + 1 );
90  return;
91  }
92  }
93  }
94 
95  mParameter = mParameterList.at( 0 );
96 }
97 
98 QString FilterActionStatus::argsAsString() const
99 {
100  const int index = mParameterList.indexOf( mParameter );
101  if ( index < 1 )
102  return QString();
103 
104  return realStatusString( FilterActionStatus::stati[index - 1].statusStr() );
105 }
106 
107 QString FilterActionStatus::displayString() const
108 {
109  return label() + QLatin1String( " \"" ) + mParameter + QLatin1String( "\"" );
110 }
111 
112 QString FilterActionStatus::informationAboutNotValidAction() const
113 {
114  //KF5 add i18n
115  return QLatin1String("Status is missing.");
116 }
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:60
MailCommon::FilterActionStatus::argsAsString
QString argsAsString() const
Return extra arguments as string.
Definition: filteractionstatus.cpp:98
MailCommon::FilterActionStatus::FilterActionStatus
FilterActionStatus(const QString &name, const QString &label, QObject *parent=0)
Definition: filteractionstatus.cpp:40
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:107
QList::at
const T & at(int i) const
QString::size
int size() const
QString::remove
QString & remove(int position, int n)
filteractionstatus.h
QList::append
void append(const T &value)
MailCommon::FilterActionWithStringList::mParameterList
QStringList mParameterList
Definition: filteractionwithstringlist.h:85
MailCommon::FilterActionStatus::realStatusString
static QString realStatusString(const QString &statusStr)
Definition: filteractionstatus.cpp:70
QObject
QString::isEmpty
bool isEmpty() const
MailCommon::FilterActionStatus::stati
static Akonadi::MessageStatus stati[]
Definition: filteractionstatus.h:39
MailCommon::SearchRule::RequiredPart
RequiredPart
Definition: searchrule.h:79
QString
MailCommon::FilterAction::label
QString label() const
Returns i18n'd label, ie.
Definition: filteraction.cpp:45
QLatin1Char
MailCommon::SearchRule::Envelope
Definition: searchrule.h:80
MailCommon::FilterActionWithString::mParameter
QString mParameter
Definition: filteractionwithstring.h:91
QString::toLatin1
QByteArray toLatin1() const
QLatin1String
MailCommon::FilterActionStatus::isEmpty
bool isEmpty() const
Determines whether this action is valid.
Definition: filteractionstatus.cpp:65
QString::length
int length() const
MailCommon::FilterActionStatus::informationAboutNotValidAction
QString informationAboutNotValidAction() const
Definition: filteractionstatus.cpp:112
QStringList::indexOf
int indexOf(const QRegExp &rx, int from) const
MailCommon::FilterActionStatus::argsFromString
void argsFromString(const QString &argsStr)
Read extra arguments from given string.
Definition: filteractionstatus.cpp:81
MailCommon::FilterActionStatus::StatiCount
static int StatiCount
Definition: filteractionstatus.h:40
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:31:40 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