Akonadi

collectionquotaattribute.cpp
1 /*
2  Copyright (C) 2009 Kevin Ottens <[email protected]>
3 
4  This library is free software; you can redistribute it and/or modify it
5  under the terms of the GNU Library General Public License as published by
6  the Free Software Foundation; either version 2 of the License, or (at your
7  option) any later version.
8 
9  This library is distributed in the hope that it will be useful, but WITHOUT
10  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public
12  License for more details.
13 
14  You should have received a copy of the GNU Library General Public License
15  along with this library; see the file COPYING.LIB. If not, write to the
16  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
17  02110-1301, USA.
18 */
19 
20 #include "collectionquotaattribute.h"
21 
22 #include <QByteArray>
23 
24 using namespace Akonadi;
25 
26 class Q_DECL_HIDDEN CollectionQuotaAttribute::Private
27 {
28 public:
29  Private(qint64 currentValue, qint64 maxValue)
30  : mCurrentValue(currentValue)
31  , mMaximumValue(maxValue)
32  {
33  }
34 
35  qint64 mCurrentValue;
36  qint64 mMaximumValue;
37 };
38 
40  : d(new Private(-1, -1))
41 {
42 }
43 
45  : d(new Private(currentValue, maxValue))
46 {
47 }
48 
50 {
51  delete d;
52 }
53 
55 {
56  d->mCurrentValue = value;
57 }
58 
60 {
61  d->mMaximumValue = value;
62 }
63 
65 {
66  return d->mCurrentValue;
67 }
68 
70 {
71  return d->mMaximumValue;
72 }
73 
75 {
76  static const QByteArray sType("collectionquota");
77  return sType;
78 }
79 
81 {
82  return new CollectionQuotaAttribute(d->mCurrentValue, d->mMaximumValue);
83 }
84 
86 {
87  return QByteArray::number(d->mCurrentValue)
88  + ' '
89  + QByteArray::number(d->mMaximumValue);
90 }
91 
93 {
94  d->mCurrentValue = -1;
95  d->mMaximumValue = -1;
96 
97  const QList<QByteArray> items = data.simplified().split(' ');
98 
99  if (items.isEmpty()) {
100  return;
101  }
102 
103  d->mCurrentValue = items[0].toLongLong();
104 
105  if (items.size() < 2) {
106  return;
107  }
108 
109  d->mMaximumValue = items[1].toLongLong();
110 }
QList< QByteArray > split(char sep) const const
~CollectionQuotaAttribute() override
Destroys the collection quota attribute.
Attribute * clone() const override
Creates a copy of this attribute.
void setCurrentValue(qint64 value)
Sets the current quota value for the collection.
Provides interface for custom attributes for Entity.
Definition: attribute.h:139
int size() const const
void setMaximumValue(qint64 value)
Sets the maximum quota value for the collection.
QByteArray type() const override
Returns the type of the attribute.
qint64 currentValue() const
Returns the current quota value in bytes.
bool isEmpty() const const
CollectionQuotaAttribute()
Creates a new collection quota attribute.
QByteArray number(int n, int base)
qint64 maximumValue() const
Returns the maximum quota value in bytes.
QByteArray simplified() const const
Helper integration between Akonadi and Qt.
void deserialize(const QByteArray &data) override
Sets the data of this attribute, using the same encoding as returned by toByteArray().
QByteArray serialized() const override
Returns a QByteArray representation of the attribute which will be storaged.
Attribute that provides quota information for a collection.
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Fri Jun 5 2020 23:08:54 by doxygen 1.8.11 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.