File indexing completed on 2024-05-12 05:22:21
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 "parentreferencedeletejob.h" 0010 #include "driveservice.h" 0011 #include "parentreference.h" 0012 0013 #include <QNetworkRequest> 0014 0015 using namespace KGAPI2; 0016 using namespace KGAPI2::Drive; 0017 0018 class Q_DECL_HIDDEN ParentReferenceDeleteJob::Private 0019 { 0020 public: 0021 QString fileId; 0022 QStringList referencesIds; 0023 }; 0024 0025 ParentReferenceDeleteJob::ParentReferenceDeleteJob(const QString &fileId, const QString &referenceId, const AccountPtr &account, QObject *parent) 0026 : DeleteJob(account, parent) 0027 , d(new Private) 0028 { 0029 d->fileId = fileId; 0030 d->referencesIds << referenceId; 0031 } 0032 0033 ParentReferenceDeleteJob::ParentReferenceDeleteJob(const QString &fileId, const QStringList &referencesIds, const AccountPtr &account, QObject *parent) 0034 : DeleteJob(account, parent) 0035 , d(new Private) 0036 { 0037 d->fileId = fileId; 0038 d->referencesIds << referencesIds; 0039 } 0040 0041 ParentReferenceDeleteJob::ParentReferenceDeleteJob(const QString &fileId, const ParentReferencePtr &reference, const AccountPtr &account, QObject *parent) 0042 : DeleteJob(account, parent) 0043 , d(new Private) 0044 { 0045 d->fileId = fileId; 0046 d->referencesIds << reference->id(); 0047 } 0048 0049 ParentReferenceDeleteJob::ParentReferenceDeleteJob(const QString &fileId, const ParentReferencesList &references, const AccountPtr &account, QObject *parent) 0050 : DeleteJob(account, parent) 0051 , d(new Private) 0052 { 0053 d->fileId = fileId; 0054 for (const ParentReferencePtr &reference : references) { 0055 d->referencesIds << reference->id(); 0056 } 0057 } 0058 0059 ParentReferenceDeleteJob::~ParentReferenceDeleteJob() 0060 { 0061 delete d; 0062 } 0063 0064 void ParentReferenceDeleteJob::start() 0065 { 0066 if (d->referencesIds.isEmpty()) { 0067 emitFinished(); 0068 return; 0069 } 0070 0071 const QString referenceId = d->referencesIds.takeFirst(); 0072 const QUrl url = DriveService::deleteParentReferenceUrl(d->fileId, referenceId); 0073 0074 QNetworkRequest request(url); 0075 0076 enqueueRequest(request); 0077 } 0078 0079 #include "moc_parentreferencedeletejob.cpp"