• 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
  • collectionpage
  • attributes
expirecollectionattribute.cpp
Go to the documentation of this file.
1 /* -*- mode: C++; c-file-style: "gnu" -*-
2 
3  Copyright (c) 2011-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 "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  static const QByteArray sType( "expirationcollectionattribute" );
41  return sType;
42 }
43 
44 ExpireCollectionAttribute *ExpireCollectionAttribute::clone() const
45 {
46  ExpireCollectionAttribute *expireAttr = new ExpireCollectionAttribute();
47  expireAttr->setAutoExpire(mExpireMessages);
48  expireAttr->setUnreadExpireAge( mUnreadExpireAge );
49  expireAttr->setUnreadExpireUnits( mUnreadExpireUnits );
50  expireAttr->setReadExpireAge( mReadExpireAge );
51  expireAttr->setReadExpireUnits( mReadExpireUnits );
52  expireAttr->setExpireAction( mExpireAction );
53  expireAttr->setExpireToFolderId(mExpireToFolderId);
54  return expireAttr;
55 }
56 
57 void ExpireCollectionAttribute::setAutoExpire( bool enabled )
58 {
59  mExpireMessages = enabled;
60 }
61 
62 bool ExpireCollectionAttribute::isAutoExpire() const
63 {
64  return mExpireMessages;
65 }
66 
67 void ExpireCollectionAttribute::setUnreadExpireAge( int age )
68 {
69  if ( age >= 0 && age != mUnreadExpireAge ) {
70  mUnreadExpireAge = age;
71  }
72 }
73 
74 int ExpireCollectionAttribute::unreadExpireAge() const
75 {
76  return mUnreadExpireAge;
77 }
78 
79 void ExpireCollectionAttribute::setUnreadExpireUnits( ExpireUnits units )
80 {
81  if ( units >= ExpireNever && units < ExpireMaxUnits ) {
82  mUnreadExpireUnits = units;
83  }
84 }
85 
86 void ExpireCollectionAttribute::setReadExpireAge( int age )
87 {
88  if ( age >= 0 && age != mReadExpireAge ) {
89  mReadExpireAge = age;
90  }
91 }
92 
93 int ExpireCollectionAttribute::readExpireAge() const
94 {
95  return mReadExpireAge;
96 }
97 
98 void ExpireCollectionAttribute::setReadExpireUnits( ExpireUnits units )
99 {
100  if ( units >= ExpireNever && units <= ExpireMaxUnits ) {
101  mReadExpireUnits = units;
102  }
103 }
104 
105 void ExpireCollectionAttribute::setExpireAction( ExpireAction a )
106 {
107  mExpireAction = a;
108 }
109 
110 ExpireCollectionAttribute::ExpireAction ExpireCollectionAttribute::expireAction() const
111 {
112  return mExpireAction;
113 }
114 
115 void ExpireCollectionAttribute::setExpireToFolderId( Akonadi::Collection::Id id )
116 {
117  mExpireToFolderId = id;
118 }
119 
120 Akonadi::Collection::Id ExpireCollectionAttribute::expireToFolderId() const
121 {
122  return mExpireToFolderId;
123 }
124 
125 ExpireCollectionAttribute::ExpireUnits ExpireCollectionAttribute::unreadExpireUnits() const
126 {
127  return mUnreadExpireUnits;
128 }
129 
130 ExpireCollectionAttribute::ExpireUnits ExpireCollectionAttribute::readExpireUnits() const
131 {
132  return mReadExpireUnits;
133 }
134 
135 bool ExpireCollectionAttribute::operator==(const ExpireCollectionAttribute &other) const
136 {
137  return (mExpireMessages == other.isAutoExpire()) &&
138  (mUnreadExpireAge == other.unreadExpireAge()) &&
139  (mReadExpireAge == other.readExpireAge()) &&
140  (mUnreadExpireUnits == other.unreadExpireUnits()) &&
141  (mReadExpireUnits == other.readExpireUnits()) &&
142  (mExpireAction == other.expireAction()) &&
143  (mExpireToFolderId == other.expireToFolderId());
144 }
145 
146 int ExpireCollectionAttribute::daysToExpire( int number,
147  ExpireCollectionAttribute::ExpireUnits units )
148 {
149  switch (units) {
150  case ExpireCollectionAttribute::ExpireDays: // Days
151  return number;
152  case ExpireCollectionAttribute::ExpireWeeks: // Weeks
153  return number * 7;
154  case ExpireCollectionAttribute::ExpireMonths: // Months - this could be better
155  // rather than assuming 31day months.
156  return number * 31;
157  default: // this avoids a compiler warning (not handled enumeration values)
158  ;
159  }
160  return -1;
161 }
162 
163 void ExpireCollectionAttribute::daysToExpire( int &unreadDays, int &readDays )
164 {
165  unreadDays = ExpireCollectionAttribute::daysToExpire( unreadExpireAge(), unreadExpireUnits() );
166  readDays = ExpireCollectionAttribute::daysToExpire( readExpireAge(), readExpireUnits() );
167 }
168 
169 QByteArray ExpireCollectionAttribute::serialized() const
170 {
171  QByteArray result;
172  QDataStream s( &result, QIODevice::WriteOnly );
173 
174  s << mExpireToFolderId;
175  s << ( int )mExpireAction;
176  s << ( int )mReadExpireUnits;
177  s << mReadExpireAge;
178  s << ( int )mUnreadExpireUnits;
179  s << mUnreadExpireAge;
180  s << mExpireMessages;
181 
182  return result;
183 }
184 
185 void ExpireCollectionAttribute::deserialize( const QByteArray &data )
186 {
187  QDataStream s( data );
188  s >> mExpireToFolderId;
189  int action;
190  s >> action;
191  mExpireAction = ( ExpireCollectionAttribute::ExpireAction )action;
192  int valUnitRead;
193  s >> valUnitRead;
194  mReadExpireUnits = ( ExpireCollectionAttribute::ExpireUnits )valUnitRead;
195  s >> mReadExpireAge;
196  int valUnitUread;
197  s >> valUnitUread;
198  mUnreadExpireUnits = ( ExpireCollectionAttribute::ExpireUnits )valUnitUread;
199  s >> mUnreadExpireAge;
200  s >> mExpireMessages;
201 }
202 
MailCommon::ExpireCollectionAttribute::ExpireMaxUnits
Definition: expirecollectionattribute.h:44
MailCommon::ExpireCollectionAttribute::readExpireUnits
ExpireUnits readExpireUnits() const
Units getReadExpireAge() is returned in.
Definition: expirecollectionattribute.cpp:130
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:93
MailCommon::ExpireCollectionAttribute::ExpireMonths
Definition: expirecollectionattribute.h:43
QByteArray
QDataStream
MailCommon::ExpireCollectionAttribute::setUnreadExpireUnits
void setUnreadExpireUnits(ExpireUnits units)
Sets the units to use for expiry of unread messages.
Definition: expirecollectionattribute.cpp:79
MailCommon::ExpireCollectionAttribute::unreadExpireUnits
ExpireUnits unreadExpireUnits() const
Units getUnreadExpireAge() is returned in.
Definition: expirecollectionattribute.cpp:125
MailCommon::ExpireCollectionAttribute::setReadExpireUnits
void setReadExpireUnits(ExpireUnits units)
Sets the units to use for expiry of read messages.
Definition: expirecollectionattribute.cpp:98
MailCommon::ExpireCollectionAttribute
Definition: expirecollectionattribute.h:29
id
SearchRule::Function id
Definition: daterulewidgethandler.cpp:34
MailCommon::ExpireCollectionAttribute::clone
ExpireCollectionAttribute * clone() const
Definition: expirecollectionattribute.cpp:44
MailCommon::ExpireCollectionAttribute::setAutoExpire
void setAutoExpire(bool enabled)
Sets whether this folder automatically expires messages.
Definition: expirecollectionattribute.cpp:57
MailCommon::ExpireCollectionAttribute::operator==
bool operator==(const ExpireCollectionAttribute &other) const
Definition: expirecollectionattribute.cpp:135
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:110
MailCommon::ExpireCollectionAttribute::isAutoExpire
bool isAutoExpire() const
Returns true if this folder automatically expires old messages.
Definition: expirecollectionattribute.cpp:62
MailCommon::ExpireCollectionAttribute::type
QByteArray type() const
Definition: expirecollectionattribute.cpp:38
MailCommon::ExpireCollectionAttribute::serialized
QByteArray serialized() const
Definition: expirecollectionattribute.cpp:169
MailCommon::ExpireCollectionAttribute::ExpireNever
Definition: expirecollectionattribute.h:40
MailCommon::ExpireCollectionAttribute::unreadExpireAge
int unreadExpireAge() const
Returns the age at which unread messages are expired.
Definition: expirecollectionattribute.cpp:74
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:86
MailCommon::ExpireCollectionAttribute::expireToFolderId
Akonadi::Collection::Id expireToFolderId() const
If expiry should move to folder, return the ID of that folder.
Definition: expirecollectionattribute.cpp:120
MailCommon::ExpireCollectionAttribute::setExpireToFolderId
void setExpireToFolderId(Akonadi::Collection::Id id)
Definition: expirecollectionattribute.cpp:115
MailCommon::ExpireCollectionAttribute::setExpireAction
void setExpireAction(ExpireAction a)
Definition: expirecollectionattribute.cpp:105
MailCommon::ExpireCollectionAttribute::deserialize
void deserialize(const QByteArray &data)
Definition: expirecollectionattribute.cpp:185
MailCommon::ExpireCollectionAttribute::setUnreadExpireAge
void setUnreadExpireAge(int age)
Sets the maximum age for unread messages in this folder.
Definition: expirecollectionattribute.cpp:67
MailCommon::ExpireCollectionAttribute::daysToExpire
void daysToExpire(int &unreadDays, int &readDays)
Definition: expirecollectionattribute.cpp:163
MailCommon::ExpireCollectionAttribute::ExpireDays
Definition: expirecollectionattribute.h:41
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