From 01ec4d87b2e28de5eb3c23ec469c6c746f573520 Mon Sep 17 00:00:00 2001 From: David Barchiesi 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