File indexing completed on 2024-05-12 05:10:49

0001 /*
0002   This file is part of KOrganizer.
0003 
0004   SPDX-FileCopyrightText: 2015 Sandro Knauß <knauss@kolabsys.com>
0005 
0006   SPDX-License-Identifier: GPL-2.0-or-later WITH Qt-Commercial-exception-1.0
0007 */
0008 
0009 #pragma once
0010 
0011 #include "akonadi-calendar_export.h"
0012 
0013 #include <QObject>
0014 #include <QString>
0015 
0016 #include <Akonadi/Collection>
0017 #include <KCalendarCore/Attendee>
0018 #include <KIdentityManagementCore/IdentityManager>
0019 
0020 class KJob;
0021 
0022 namespace Akonadi
0023 {
0024 /// Helper class to initialise the search collections
0025 class AKONADI_CALENDAR_EXPORT SearchCollectionHelper : public QObject
0026 {
0027     Q_OBJECT
0028 public:
0029     explicit SearchCollectionHelper(QObject *parent = nullptr);
0030 
0031 private:
0032     void onSearchCollectionsFetched(KJob *job);
0033     void updateOpenInvitation();
0034     void updateDeclinedInvitation();
0035 
0036     void createSearchJobFinished(KJob *job);
0037     void modifyResult(KJob *job);
0038 
0039     void setupSearchCollections();
0040     void updateSearchCollection(Akonadi::Collection col, KCalendarCore::Attendee::PartStat status, const QString &name, const QString &displayName);
0041 
0042 private:
0043     KIdentityManagementCore::IdentityManager *const mIdentityManager;
0044     Akonadi::Collection mOpenInvitationCollection;
0045     Akonadi::Collection mDeclineCollection;
0046 };
0047 }