20 #include "messagethreadingattribute.h"
22 using namespace Akonadi;
24 class Akonadi::MessageThreadingAttribute::Private
27 QList<Item::Id> perfectParents;
28 QList<Item::Id> unperfectParents;
29 QList<Item::Id> subjectParents;
39 d( new Private( *(other.d) ) )
50 return "MESSAGETHREADING";
61 foreach (
const Item::Id id, d->perfectParents )
62 rv += QByteArray::number(
id ) +
',';
63 if ( !d->perfectParents.isEmpty() )
64 rv[rv.size() - 1] =
';';
67 foreach (
const Item::Id id, d->unperfectParents )
68 rv += QByteArray::number(
id ) +
',';
69 if ( !d->unperfectParents.isEmpty() )
70 rv[rv.size() - 1] =
';';
73 foreach (
const Item::Id id, d->subjectParents )
74 rv += QByteArray::number(
id ) +
',';
75 if ( !d->perfectParents.isEmpty() )
81 static void parseIdList(
const QByteArray &data, QList<Item::Id> &result )
84 foreach(
const QByteArray &s, data.split(
',' ) ) {
94 d->perfectParents.clear();
95 d->unperfectParents.clear();
96 d->subjectParents.clear();
98 QList<QByteArray> lists = data.split(
';' );
99 if ( lists.size() != 3 )
102 parseIdList( lists[0], d->perfectParents );
103 parseIdList( lists[1], d->unperfectParents );
104 parseIdList( lists[2], d->subjectParents );
109 return d->perfectParents;
114 d->perfectParents = parents;
119 return d->unperfectParents;
124 d->unperfectParents = parents;
129 return d->subjectParents;
134 d->subjectParents = parents;