122 lines
5.4 KiB
Diff
122 lines
5.4 KiB
Diff
|
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
|
||
|
|