File indexing completed on 2024-05-19 05:11:17

0001 /**
0002   This file is part of the akonadi-calendar library.
0003 
0004   SPDX-FileCopyrightText: 2013 Sérgio Martins <iamsergio@gmail.com>
0005 
0006   SPDX-License-Identifier: LGPL-2.0-or-later
0007 */
0008 
0009 #pragma once
0010 
0011 #include "icalimporter.h"
0012 #include "incidencechanger.h"
0013 
0014 #include <Akonadi/Collection>
0015 #include <Akonadi/Item>
0016 
0017 #include <QList>
0018 #include <QObject>
0019 #include <QString>
0020 
0021 class KJob;
0022 class QTemporaryFile;
0023 class QByteArray;
0024 namespace KIO
0025 {
0026 class Job;
0027 }
0028 
0029 namespace Akonadi
0030 {
0031 class ICalImporterPrivate : public QObject
0032 {
0033     Q_OBJECT
0034 public:
0035     ICalImporterPrivate(Akonadi::IncidenceChanger *changer, ICalImporter *qq);
0036     ~ICalImporterPrivate() override;
0037     void setErrorMessage(const QString &message);
0038 
0039     ICalImporter *const q;
0040     Akonadi::IncidenceChanger *m_changer = nullptr;
0041     int m_numIncidences = 0;
0042     QList<int> m_pendingRequests;
0043 
0044     QString m_lastErrorMessage;
0045     bool m_working = false;
0046     QTemporaryFile *m_temporaryFile = nullptr;
0047     Akonadi::Collection m_collection;
0048 public Q_SLOTS:
0049     void resourceCreated(KJob *job);
0050     void remoteDownloadFinished(KIO::Job *job, const QByteArray &data);
0051     void onIncidenceCreated(int changeId, const Akonadi::Item &item, Akonadi::IncidenceChanger::ResultCode resultCode, const QString &errorString);
0052 };
0053 }