1 /*
2     SPDX-FileCopyrightText: 2014 Christian Mollekopf <mollekopf@kolabsys.com>
3 
4     SPDX-License-Identifier: LGPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "pimkolab/kolabformat/formathelpers.h" //libkolab
10 #include "pimkolab/kolabformat/kolabdefinitions.h" //libkolab
11 #include <Akonadi/Item>
12 
13 #define KOLAB_COLOR_ANNOTATION "/vendor/kolab/color"
14 
15 class QColor;
16 
17 class KolabHelpers
18 {
19 public:
20     static bool checkForErrors(const Akonadi::Item &affectedItem);
21     static Akonadi::Item translateFromImap(Kolab::FolderType folderType, const Akonadi::Item &item, bool &ok);
22     static Akonadi::Item::List translateToImap(const Akonadi::Item::List &items, bool &ok);
23     static Akonadi::Item translateToImap(const Akonadi::Item &item, bool &ok);
24     static Kolab::FolderType folderTypeFromString(const QByteArray &folderTypeName);
25     static QByteArray getFolderTypeAnnotation(const QMap<QByteArray, QByteArray> &annotations);
26     static void setFolderTypeAnnotation(QMap<QByteArray, QByteArray> &annotations, const QByteArray &value);
27     static QColor getFolderColor(const QMap<QByteArray, QByteArray> &annotations);
28     static void setFolderColor(QMap<QByteArray, QByteArray> &annotations, const QColor &color);
29     static Kolab::ObjectType getKolabTypeFromMimeType(const QString &type);
30     static QByteArray kolabTypeForMimeType(const QStringList &contentMimeTypes);
31     static QStringList getContentMimeTypes(Kolab::FolderType type);
32     static QString getIcon(Kolab::FolderType type);
33     // Returns true if the folder type shouldn't be ignored
34     static bool isHandledType(Kolab::FolderType type);
35     static QString getMimeType(Kolab::FolderType type);
36     static QList<QByteArray> ancestorChain(const Akonadi::Collection &col);
37     static QString createMemberUrl(const Akonadi::Item &item, const QString &user);
38 };
39 
40