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

0001 /*
0002    SPDX-FileCopyrightText: 2013 Sérgio Martins <iamsergio@gmail.com>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #pragma once
0008 
0009 #include "incidencechanger.h"
0010 #include "todopurger.h"
0011 
0012 #include <QObject>
0013 #include <QString>
0014 
0015 namespace Akonadi
0016 {
0017 class IncidenceChanger;
0018 
0019 class TodoPurgerPrivate : public QObject
0020 {
0021     Q_OBJECT
0022 public:
0023     explicit TodoPurgerPrivate(TodoPurger *q);
0024     IncidenceChanger *m_changer = nullptr;
0025     QString m_lastError;
0026     CalendarBase::Ptr m_calendar;
0027     int m_currentChangeId = -1;
0028     int m_ignoredItems = 0;
0029     bool m_calendarOwnership = true; // If false it's not ours.
0030 
0031     void deleteTodos();
0032     [[nodiscard]] bool treeIsDeletable(const KCalendarCore::Todo::Ptr &todo);
0033 
0034 public Q_SLOTS:
0035     void onCalendarLoaded(bool success, const QString &message);
0036     void onItemsDeleted(int changeId, const QList<Akonadi::Item::Id> &deletedItems, Akonadi::IncidenceChanger::ResultCode, const QString &message);
0037 
0038 private:
0039     TodoPurger *const q;
0040 };
0041 }