• 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
  • collectionpage
expirecollectionattribute.cpp
Go to the documentation of this file.
1 /* -*- mode: C++; c-file-style: "gnu" -*-
2 
3  Copyright (c) 2011, 2012, 2013 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 "expirecollectionattribute.h"
20 #include "foldercollection.h"
21 #include "kernel/mailkernel.h"
22 
23 #include <KConfigGroup>
24 
25 using namespace MailCommon;
26 
27 ExpireCollectionAttribute::ExpireCollectionAttribute()
28  : mExpireMessages( false ),
29  mUnreadExpireAge( 28 ),
30  mReadExpireAge( 14 ),
31  mUnreadExpireUnits( ExpireNever ),
32  mReadExpireUnits( ExpireNever ),
33  mExpireAction( ExpireDelete ),
34  mExpireToFolderId( -1 )
35 {
36 }
37 
38 QByteArray ExpireCollectionAttribute::type() const
39 {
40  return "expirationcollectionattribute";
41 }
42 
43 Akonadi::Attribute *ExpireCollectionAttribute::clone() const
44 {
45  ExpireCollectionAttribute *expireAttr = new ExpireCollectionAttribute();
46  expireAttr->setAutoExpire(mExpireMessages);
47  expireAttr->setUnreadExpireAge( mUnreadExpireAge );
48  expireAttr->setUnreadExpireUnits( mUnreadExpireUnits );
49  expireAttr->setReadExpireAge( mReadExpireAge );
50  expireAttr->setReadExpireUnits( mReadExpireUnits );
51  expireAttr->setExpireAction( mExpireAction );
52  expireAttr->setExpireToFolderId(mExpireToFolderId);
53  return expireAttr;
54 }
55 
56 void ExpireCollectionAttribute::loadFromConfig( const Akonadi::Collection &collection )
57 {
58  KConfigGroup configGroup( KernelIf->config(),
59  MailCommon::FolderCollection::configGroupName( collection ) );
60 
61  if ( configGroup.hasKey( "ExpireMessages" ) ) {
62  mExpireMessages = configGroup.readEntry( "ExpireMessages", false );
63 
64  mReadExpireAge = configGroup.readEntry( "ReadExpireAge", 3 );
65 
66  mReadExpireUnits = (ExpireUnits)configGroup.readEntry( "ReadExpireUnits", (int)ExpireMonths );
67 
68  mUnreadExpireAge = configGroup.readEntry( "UnreadExpireAge", 12 );
69 
70  mUnreadExpireUnits =
71  (ExpireUnits)configGroup.readEntry( "UnreadExpireUnits", (int)ExpireNever );
72 
73  mExpireAction = configGroup.readEntry( "ExpireAction", "Delete" ) == QLatin1String( "Move" ) ?
74  ExpireMove :
75  ExpireDelete;
76 
77  mExpireToFolderId = configGroup.readEntry( "ExpireToFolder", -1 );
78  }
79 }
80 
81 void ExpireCollectionAttribute::setAutoExpire( bool enabled )
82 {
83  mExpireMessages = enabled;
84 }
85 
86 bool ExpireCollectionAttribute::isAutoExpire() const
87 {
88  return mExpireMessages;
89 }
90 
91 void ExpireCollectionAttribute::setUnreadExpireAge( int age )
92 {
93  if ( age >= 0 && age != mUnreadExpireAge ) {
94  mUnreadExpireAge = age;
95  }
96 }
97 
98 int ExpireCollectionAttribute::unreadExpireAge() const
99 {
100  return mUnreadExpireAge;
101 }
102 
103 void ExpireCollectionAttribute::setUnreadExpireUnits( ExpireUnits units )
104 {
105  if ( units >= ExpireNever && units < ExpireMaxUnits ) {
106  mUnreadExpireUnits = units;
107  }
108 }
109 
110 void ExpireCollectionAttribute::setReadExpireAge( int age )
111 {
112  if ( age >= 0 && age != mReadExpireAge ) {
113  mReadExpireAge = age;
114  }
115 }
116 
117 int ExpireCollectionAttribute::readExpireAge() const
118 {
119  return mReadExpireAge;
120 }
121 
122 void ExpireCollectionAttribute::setReadExpireUnits( ExpireUnits units )
123 {
124  if ( units >= ExpireNever && units <= ExpireMaxUnits ) {
125  mReadExpireUnits = units;
126  }
127 }
128 
129 void ExpireCollectionAttribute::setExpireAction( ExpireAction a )
130 {
131  mExpireAction = a;
132 }
133 
134 ExpireCollectionAttribute::ExpireAction ExpireCollectionAttribute::expireAction() const
135 {
136  return mExpireAction;
137 }
138 
139 void ExpireCollectionAttribute::setExpireToFolderId( Akonadi::Collection::Id id )
140 {
141  mExpireToFolderId = id;
142 }
143 
144 Akonadi::Collection::Id ExpireCollectionAttribute::expireToFolderId() const
145 {
146  return mExpireToFolderId;
147 }
148 
149 ExpireCollectionAttribute::ExpireUnits ExpireCollectionAttribute::unreadExpireUnits() const
150 {
151  return mUnreadExpireUnits;
152 }
153 
154 ExpireCollectionAttribute::ExpireUnits ExpireCollectionAttribute::readExpireUnits() const
155 {
156  return mReadExpireUnits;
157 }
158 
159 int ExpireCollectionAttribute::daysToExpire( int number,
160  ExpireCollectionAttribute::ExpireUnits units )
161 {
162  switch (units) {
163  case ExpireCollectionAttribute::ExpireDays: // Days
164  return number;
165  case ExpireCollectionAttribute::ExpireWeeks: // Weeks
166  return number * 7;
167  case ExpireCollectionAttribute::ExpireMonths: // Months - this could be better
168  // rather than assuming 31day months.
169  return number * 31;
170  default: // this avoids a compiler warning (not handled enumeration values)
171  ;
172  }
173  return -1;
174 }
175 
176 void ExpireCollectionAttribute::daysToExpire( int &unreadDays, int &readDays )
177 {
178  unreadDays = ExpireCollectionAttribute::daysToExpire( unreadExpireAge(), unreadExpireUnits() );
179  readDays = ExpireCollectionAttribute::daysToExpire( readExpireAge(), readExpireUnits() );
180 }
181 
182 ExpireCollectionAttribute *ExpireCollectionAttribute::expirationCollectionAttribute(
183  const Akonadi::Collection &collection, bool &mustDeleteExpirationAttribute )
184 {
185  MailCommon::ExpireCollectionAttribute *attr = 0;
186  if ( collection.hasAttribute<MailCommon::ExpireCollectionAttribute>() ) {
187  attr = collection.attribute<MailCommon::ExpireCollectionAttribute>();
188  mustDeleteExpirationAttribute = false;
189  } else {
190  attr = new MailCommon::ExpireCollectionAttribute();
191  attr->loadFromConfig( collection );
192  mustDeleteExpirationAttribute = true;
193  }
194  return attr;
195 }
196 
197 QByteArray ExpireCollectionAttribute::serialized() const
198 {
199  QByteArray result;
200  QDataStream s( &result, QIODevice::WriteOnly );
201 
202  s << mExpireToFolderId;
203  s << ( int )mExpireAction;
204  s << ( int )mReadExpireUnits;
205  s << mReadExpireAge;
206  s << ( int )mUnreadExpireUnits;
207  s << mUnreadExpireAge;
208  s << mExpireMessages;
209 
210  return result;
211 }
212 
213 void ExpireCollectionAttribute::deserialize( const QByteArray &data )
214 {
215  QDataStream s( data );
216  s >> mExpireToFolderId;
217  int action;
218  s >> action;
219  mExpireAction = ( ExpireCollectionAttribute::ExpireAction )action;
220  int valUnitRead;
221  s >> valUnitRead;
222  mReadExpireUnits = ( ExpireCollectionAttribute::ExpireUnits )valUnitRead;
223  s >> mReadExpireAge;
224  int valUnitUread;
225  s >> valUnitUread;
226  mUnreadExpireUnits = ( ExpireCollectionAttribute::ExpireUnits )valUnitUread;
227  s >> mUnreadExpireAge;
228  s >> mExpireMessages;
229 }
230 
MailCommon::ExpireCollectionAttribute::ExpireMaxUnits
Definition: expirecollectionattribute.h:44
MailCommon::ExpireCollectionAttribute::readExpireUnits
ExpireUnits readExpireUnits() const
Units getReadExpireAge() is returned in.
Definition: expirecollectionattribute.cpp:154
MailCommon::ExpireCollectionAttribute::ExpireCollectionAttribute
ExpireCollectionAttribute()
Definition: expirecollectionattribute.cpp:27
expirecollectionattribute.h
MailCommon::ExpireCollectionAttribute::ExpireWeeks
Definition: expirecollectionattribute.h:42
foldercollection.h
MailCommon::ExpireCollectionAttribute::readExpireAge
int readExpireAge() const
Returns the age at which read messages are expired.
Definition: expirecollectionattribute.cpp:117
KernelIf
#define KernelIf
Definition: mailkernel.h:186
MailCommon::ExpireCollectionAttribute::expirationCollectionAttribute
static ExpireCollectionAttribute * expirationCollectionAttribute(const Akonadi::Collection &collection, bool &mustDeleteExpirationAttribute)
Definition: expirecollectionattribute.cpp:182
MailCommon::ExpireCollectionAttribute::ExpireMonths
Definition: expirecollectionattribute.h:43
MailCommon::ExpireCollectionAttribute::setUnreadExpireUnits
void setUnreadExpireUnits(ExpireUnits units)
Sets the units to use for expiry of unread messages.
Definition: expirecollectionattribute.cpp:103
MailCommon::ExpireCollectionAttribute::unreadExpireUnits
ExpireUnits unreadExpireUnits() const
Units getUnreadExpireAge() is returned in.
Definition: expirecollectionattribute.cpp:149
MailCommon::ExpireCollectionAttribute::setReadExpireUnits
void setReadExpireUnits(ExpireUnits units)
Sets the units to use for expiry of read messages.
Definition: expirecollectionattribute.cpp:122
MailCommon::ExpireCollectionAttribute::loadFromConfig
void loadFromConfig(const Akonadi::Collection &collection)
Definition: expirecollectionattribute.cpp:56
MailCommon::ExpireCollectionAttribute
Definition: expirecollectionattribute.h:29
MailCommon::ExpireCollectionAttribute::ExpireMove
Definition: expirecollectionattribute.h:49
id
SearchRule::Function id
Definition: daterulewidgethandler.cpp:34
MailCommon::ExpireCollectionAttribute::setAutoExpire
void setAutoExpire(bool enabled)
Sets whether this folder automatically expires messages.
Definition: expirecollectionattribute.cpp:81
MailCommon::ExpireCollectionAttribute::clone
Attribute * clone() const
Definition: expirecollectionattribute.cpp:43
MailCommon::ExpireCollectionAttribute::daysToExpire
static int daysToExpire(int number, ExpireCollectionAttribute::ExpireUnits units)
Definition: expirecollectionattribute.cpp:159
MailCommon::ExpireCollectionAttribute::ExpireAction
ExpireAction
Definition: expirecollectionattribute.h:47
MailCommon::ExpireCollectionAttribute::expireAction
ExpireAction expireAction() const
What should expiry do? Delete or move to another folder?
Definition: expirecollectionattribute.cpp:134
MailCommon::ExpireCollectionAttribute::isAutoExpire
bool isAutoExpire() const
Returns true if this folder automatically expires old messages.
Definition: expirecollectionattribute.cpp:86
MailCommon::ExpireCollectionAttribute::type
QByteArray type() const
Definition: expirecollectionattribute.cpp:38
MailCommon::ExpireCollectionAttribute::serialized
QByteArray serialized() const
Definition: expirecollectionattribute.cpp:197
MailCommon::ExpireCollectionAttribute::ExpireNever
Definition: expirecollectionattribute.h:40
MailCommon::FolderCollection::configGroupName
static QString configGroupName(const Akonadi::Collection &col)
Definition: foldercollection.cpp:174
MailCommon::ExpireCollectionAttribute::unreadExpireAge
int unreadExpireAge() const
Returns the age at which unread messages are expired.
Definition: expirecollectionattribute.cpp:98
MailCommon::ExpireCollectionAttribute::ExpireDelete
Definition: expirecollectionattribute.h:48
MailCommon::ExpireCollectionAttribute::ExpireUnits
ExpireUnits
Definition: expirecollectionattribute.h:39
mailkernel.h
MailCommon::ExpireCollectionAttribute::setReadExpireAge
void setReadExpireAge(int age)
Sets the maximum age for read messages in this folder.
Definition: expirecollectionattribute.cpp:110
MailCommon::ExpireCollectionAttribute::expireToFolderId
Akonadi::Collection::Id expireToFolderId() const
If expiry should move to folder, return the ID of that folder.
Definition: expirecollectionattribute.cpp:144
MailCommon::ExpireCollectionAttribute::setExpireToFolderId
void setExpireToFolderId(Akonadi::Collection::Id id)
Definition: expirecollectionattribute.cpp:139
MailCommon::ExpireCollectionAttribute::setExpireAction
void setExpireAction(ExpireAction a)
Definition: expirecollectionattribute.cpp:129
MailCommon::ExpireCollectionAttribute::deserialize
void deserialize(const QByteArray &data)
Definition: expirecollectionattribute.cpp:213
MailCommon::ExpireCollectionAttribute::setUnreadExpireAge
void setUnreadExpireAge(int age)
Sets the maximum age for unread messages in this folder.
Definition: expirecollectionattribute.cpp:91
MailCommon::ExpireCollectionAttribute::ExpireDays
Definition: expirecollectionattribute.h:41
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