kio-gdrive/Adapt-to-LibKGAPI-setFields-changes.patch

122 lines
5.4 KiB
Diff
Raw Normal View History

From 01ec4d87b2e28de5eb3c23ec469c6c746f573520 Mon Sep 17 00:00:00 2001
From: David Barchiesi <david@barchie.si>
Date: Sun, 19 May 2019 12:38:24 +0200
Subject: Adapt to LibKGAPI setFields() changes.
Summary:
In the next release, LibKGAPI has changed the way it sets fields in `FileFetchJob` and in general allows setting response fields for all `Job`s (see [[ https://phabricator.kde.org/D20886 | D20886 Add fields standard query parameter to Job and use it in FileFetchJob ]]).
This patch adjusts KIO Gdrive to this change and limits the response in `AboutFetchJob`s.
Reviewers: dvratil, elvisangelaccio
Subscribers: #libkgapi, #kio_gdrive
Tags: #kio_gdrive, #libkgapi
Differential Revision: https://phabricator.kde.org/D20888
---
CMakeLists.txt | 2 +-
src/kio_gdrive.cpp | 30 ++++++++++++++++++------------
2 files changed, 19 insertions(+), 13 deletions(-)
diff --git a/CMakeLists.txt b/CMakeLists.txt
index a830925..680ae3e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -5,7 +5,7 @@ project(kio-gdrive VERSION ${GDRIVE_VERSION})
set(QT_MIN_VERSION 5.2.0)
set(KF5_MIN_VERSION 5.14.0)
-set(KGAPI_MIN_VERSION 5.5.0)
+set(KGAPI_MIN_VERSION 5.11.41)
set(KACCOUNTS_MIN_VERSION 17.04.0)
set(QTKEYCHAIN_MIN_VERSION 0.6.0)
diff --git a/src/kio_gdrive.cpp b/src/kio_gdrive.cpp
index 9ab146f..e01fef6 100644
--- a/src/kio_gdrive.cpp
+++ b/src/kio_gdrive.cpp
@@ -146,6 +146,12 @@ void KIOGDrive::fileSystemFreeSpace(const QUrl &url)
}
if (!gdriveUrl.isRoot()) {
AboutFetchJob aboutFetch(getAccount(accountId));
+ aboutFetch.setFields({
+ About::Fields::Kind,
+ About::Fields::QuotaBytesTotal,
+ About::Fields::QuotaBytesUsedAggregate,
+ About::Fields::CanCreateTeamDrives,
+ });
if (runJob(aboutFetch, url, accountId)) {
const AboutPtr about = aboutFetch.aboutData();
if (about) {
@@ -379,7 +385,7 @@ QString KIOGDrive::resolveFileIdFromPath(const QString &path, PathFlags flags)
const QString accountId = gdriveUrl.account();
FileFetchJob fetchJob(query, getAccount(accountId));
- fetchJob.setFields(FileFetchJob::Id | FileFetchJob::Title | FileFetchJob::Labels);
+ fetchJob.setFields({File::Fields::Id, File::Fields::Title, File::Fields::Labels});
if (!runJob(fetchJob, url, accountId)) {
return QString();
}
@@ -404,6 +410,7 @@ QString KIOGDrive::rootFolderId(const QString &accountId)
auto it = m_rootIds.constFind(accountId);
if (it == m_rootIds.cend()) {
AboutFetchJob aboutFetch(getAccount(accountId));
+ aboutFetch.setFields({About::Fields::Kind, About::Fields::RootFolderId});
QUrl url;
if (!runJob(aboutFetch, url, accountId)) {
return QString();
@@ -455,10 +462,13 @@ void KIOGDrive::listDir(const QUrl &url)
query.addQuery(FileSearchQuery::Trashed, FileSearchQuery::Equals, false);
query.addQuery(FileSearchQuery::Parents, FileSearchQuery::In, folderId);
FileFetchJob fileFetchJob(query, getAccount(accountId));
- fileFetchJob.setFields((FileFetchJob::BasicFields & ~FileFetchJob::Permissions)
- | FileFetchJob::Labels
- | FileFetchJob::ExportLinks
- | FileFetchJob::LastViewedByMeDate);
+ const auto extraFields =
+ KGAPI2::Drive::FileFetchJob::FieldShorthands::BasicFields +
+ QStringList({ KGAPI2::Drive::File::Fields::Labels,
+ KGAPI2::Drive::File::Fields::ExportLinks,
+ KGAPI2::Drive::File::Fields::LastViewedByMeDate,
+ });
+ fileFetchJob.setFields(KGAPI2::Drive::FileFetchJob::FieldShorthands::BasicFields + extraFields);
runJob(fileFetchJob, url, accountId);
ObjectsList objects = fileFetchJob.items();
@@ -607,10 +617,7 @@ void KIOGDrive::get(const QUrl &url)
}
FileFetchJob fileFetchJob(fileId, getAccount(accountId));
- fileFetchJob.setFields(FileFetchJob::Id
- | FileFetchJob::MimeType
- | FileFetchJob::ExportLinks
- | FileFetchJob::DownloadUrl);
+ fileFetchJob.setFields({File::Fields::Id, File::Fields::MimeType, File::Fields::ExportLinks, File::Fields::DownloadUrl});
runJob(fileFetchJob, url, accountId);
const ObjectsList objects = fileFetchJob.items();
@@ -866,8 +873,7 @@ void KIOGDrive::copy(const QUrl &src, const QUrl &dest, int permissions, KIO::Jo
return;
}
FileFetchJob sourceFileFetchJob(sourceFileId, getAccount(sourceAccountId));
- sourceFileFetchJob.setFields(FileFetchJob::Id | FileFetchJob::ModifiedDate |
- FileFetchJob::LastViewedByMeDate | FileFetchJob::Description);
+ sourceFileFetchJob.setFields({File::Fields::Id, File::Fields::ModifiedDate, File::Fields::LastViewedByMeDate, File::Fields::Description});
runJob(sourceFileFetchJob, src, sourceAccountId);
const ObjectsList objects = sourceFileFetchJob.items();
@@ -1086,7 +1092,7 @@ void KIOGDrive::mimetype(const QUrl &url)
const QString accountId = GDriveUrl(url).account();
FileFetchJob fileFetchJob(fileId, getAccount(accountId));
- fileFetchJob.setFields(FileFetchJob::Id | FileFetchJob::MimeType);
+ fileFetchJob.setFields({File::Fields::Id, File::Fields::MimeType});
runJob(fileFetchJob, url, accountId);
const ObjectsList objects = fileFetchJob.items();
--
cgit v1.1