File indexing completed on 2024-05-12 05:22:12
0001 /* 0002 * This file is part of LibKGAPI library 0003 * 0004 * SPDX-FileCopyrightText: 2013 Daniel Vrátil <dvratil@redhat.com> 0005 * 0006 * SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL 0007 */ 0008 0009 #include "calendardeletejob.h" 0010 #include "calendar.h" 0011 #include "calendarservice.h" 0012 #include "private/queuehelper_p.h" 0013 0014 #include <QNetworkRequest> 0015 0016 using namespace KGAPI2; 0017 0018 class Q_DECL_HIDDEN CalendarDeleteJob::Private 0019 { 0020 public: 0021 QueueHelper<QString> calendarsIds; 0022 }; 0023 0024 CalendarDeleteJob::CalendarDeleteJob(const CalendarPtr &calendar, const AccountPtr &account, QObject *parent) 0025 : DeleteJob(account, parent) 0026 , d(new Private) 0027 { 0028 d->calendarsIds << calendar->uid(); 0029 } 0030 0031 CalendarDeleteJob::CalendarDeleteJob(const CalendarsList &calendars, const AccountPtr &account, QObject *parent) 0032 : DeleteJob(account, parent) 0033 , d(new Private) 0034 { 0035 for (const CalendarPtr &calendar : calendars) { 0036 d->calendarsIds << calendar->uid(); 0037 } 0038 } 0039 0040 CalendarDeleteJob::CalendarDeleteJob(const QString &calendarId, const AccountPtr &account, QObject *parent) 0041 : DeleteJob(account, parent) 0042 , d(new Private) 0043 { 0044 d->calendarsIds << calendarId; 0045 } 0046 0047 CalendarDeleteJob::CalendarDeleteJob(const QStringList &calendarsIds, const AccountPtr &account, QObject *parent) 0048 : DeleteJob(account, parent) 0049 , d(new Private) 0050 { 0051 d->calendarsIds = calendarsIds; 0052 } 0053 0054 CalendarDeleteJob::~CalendarDeleteJob() = default; 0055 0056 void CalendarDeleteJob::start() 0057 { 0058 if (d->calendarsIds.atEnd()) { 0059 emitFinished(); 0060 return; 0061 } 0062 0063 const QString calendarId = d->calendarsIds.current(); 0064 const auto request = CalendarService::prepareRequest(CalendarService::removeCalendarUrl(calendarId)); 0065 0066 enqueueRequest(request); 0067 } 0068 0069 void CalendarDeleteJob::handleReply(const QNetworkReply *reply, const QByteArray &rawData) 0070 { 0071 d->calendarsIds.currentProcessed(); 0072 0073 KGAPI2::DeleteJob::handleReply(reply, rawData); 0074 }