File indexing completed on 2024-05-12 05:22:19

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 "fileabstractdatajob.h"
0010 #include "debug.h"
0011 #include "utils.h"
0012 
0013 #include <QUrlQuery>
0014 
0015 using namespace KGAPI2;
0016 using namespace KGAPI2::Drive;
0017 
0018 class Q_DECL_HIDDEN FileAbstractDataJob::Private
0019 {
0020 public:
0021     Private();
0022 
0023     bool convert = false;
0024     bool enforceSingleParent = false;
0025     QString includePermissionsForView;
0026     bool ocr = false;
0027     QString ocrLanguage;
0028     bool pinned = false;
0029     bool supportsAllDrives = true;
0030     QString timedTextLanguage;
0031     QString timedTextTrackName;
0032     bool useContentAsIndexableText = false;
0033 };
0034 
0035 FileAbstractDataJob::Private::Private()
0036 {
0037 }
0038 
0039 FileAbstractDataJob::FileAbstractDataJob(const AccountPtr &account, QObject *parent)
0040     : Job(account, parent)
0041     , d(new Private)
0042 {
0043 }
0044 
0045 FileAbstractDataJob::~FileAbstractDataJob()
0046 {
0047     delete d;
0048 }
0049 
0050 bool FileAbstractDataJob::convert() const
0051 {
0052     return d->convert;
0053 }
0054 
0055 void FileAbstractDataJob::setConvert(bool convert)
0056 {
0057     if (isRunning()) {
0058         qCWarning(KGAPIDebug) << "Can't modify setConvert property when job is running";
0059         return;
0060     }
0061 
0062     d->convert = convert;
0063 }
0064 
0065 bool FileAbstractDataJob::enforceSingleParent() const
0066 {
0067     return d->enforceSingleParent;
0068 }
0069 
0070 void FileAbstractDataJob::setEnforceSingleParent(bool enforceSingleParent)
0071 {
0072     if (isRunning()) {
0073         qCWarning(KGAPIDebug) << "Can't modify enforceSingleParent property when job is running";
0074         return;
0075     }
0076 
0077     d->enforceSingleParent = enforceSingleParent;
0078 }
0079 
0080 QString FileAbstractDataJob::includePermissionsForView() const
0081 {
0082     return d->includePermissionsForView;
0083 }
0084 
0085 void FileAbstractDataJob::setIncludePermissionsForView(const QString &includePermissionsForView)
0086 {
0087     if (isRunning()) {
0088         qCWarning(KGAPIDebug) << "Can't modify includePermissionsForView property when job is running";
0089         return;
0090     }
0091 
0092     d->includePermissionsForView = includePermissionsForView;
0093 }
0094 
0095 bool FileAbstractDataJob::ocr() const
0096 {
0097     return d->ocr;
0098 }
0099 
0100 void FileAbstractDataJob::setOcr(bool ocr)
0101 {
0102     if (isRunning()) {
0103         qCWarning(KGAPIDebug) << "Can't modify ocr property when job is running";
0104         return;
0105     }
0106 
0107     d->ocr = ocr;
0108 }
0109 
0110 QString FileAbstractDataJob::ocrLanguage() const
0111 {
0112     return d->ocrLanguage;
0113 }
0114 
0115 void FileAbstractDataJob::setOcrLanguage(const QString &ocrLanguage)
0116 {
0117     if (isRunning()) {
0118         qCWarning(KGAPIDebug) << "Can't modify ocrLanguage property when job is running";
0119         return;
0120     }
0121 
0122     d->ocrLanguage = ocrLanguage;
0123 }
0124 
0125 bool FileAbstractDataJob::pinned() const
0126 {
0127     return d->pinned;
0128 }
0129 
0130 void FileAbstractDataJob::setPinned(bool pinned)
0131 {
0132     if (isRunning()) {
0133         qCWarning(KGAPIDebug) << "Can't modify pinned property when job is running";
0134         return;
0135     }
0136 
0137     d->pinned = pinned;
0138 }
0139 
0140 bool FileAbstractDataJob::supportsAllDrives() const
0141 {
0142     return d->supportsAllDrives;
0143 }
0144 
0145 void FileAbstractDataJob::setSupportsAllDrives(bool supportsAllDrives)
0146 {
0147     d->supportsAllDrives = supportsAllDrives;
0148 }
0149 
0150 QString FileAbstractDataJob::timedTextLanguage() const
0151 {
0152     return d->timedTextLanguage;
0153 }
0154 
0155 void FileAbstractDataJob::setTimedTextLanguage(const QString &timedTextLanguage)
0156 {
0157     if (isRunning()) {
0158         qCWarning(KGAPIDebug) << "Can't modify timedTextLanguage property when job is running";
0159         return;
0160     }
0161 
0162     d->timedTextLanguage = timedTextLanguage;
0163 }
0164 
0165 QString FileAbstractDataJob::timedTextTrackName() const
0166 {
0167     return d->timedTextLanguage;
0168 }
0169 
0170 void FileAbstractDataJob::setTimedTextTrackName(const QString &timedTextTrackName)
0171 {
0172     if (isRunning()) {
0173         qCWarning(KGAPIDebug) << "Can't modify timedTextTrackName property when job is running";
0174         return;
0175     }
0176 
0177     d->timedTextTrackName = timedTextTrackName;
0178 }
0179 
0180 void FileAbstractDataJob::setUseContentAsIndexableText(bool useContentAsIndexableText)
0181 {
0182     if (isRunning()) {
0183         qCWarning(KGAPIDebug) << "Can't modify useContentAsIndexableText property when job is running";
0184         return;
0185     }
0186 
0187     d->useContentAsIndexableText = useContentAsIndexableText;
0188 }
0189 
0190 bool FileAbstractDataJob::useContentAsIndexableText() const
0191 {
0192     return d->useContentAsIndexableText;
0193 }
0194 
0195 QUrl FileAbstractDataJob::updateUrl(QUrl &url)
0196 {
0197     QUrlQuery query(url);
0198     query.removeQueryItem(QStringLiteral("convert"));
0199     query.addQueryItem(QStringLiteral("convert"), Utils::bool2Str(d->convert));
0200 
0201     query.removeQueryItem(QStringLiteral("enforceSingleParent"));
0202     query.removeQueryItem(QStringLiteral("includePermissionsForView"));
0203     query.addQueryItem(QStringLiteral("enforceSingleParent"), Utils::bool2Str(d->enforceSingleParent));
0204     if (!d->includePermissionsForView.isEmpty()) {
0205         query.addQueryItem(QStringLiteral("includePermissionsForView"), d->includePermissionsForView);
0206     }
0207 
0208     query.removeQueryItem(QStringLiteral("ocr"));
0209     query.removeQueryItem(QStringLiteral("ocrLanguage"));
0210     query.addQueryItem(QStringLiteral("ocr"), Utils::bool2Str(d->ocr));
0211     if (d->ocr && !d->ocrLanguage.isEmpty()) {
0212         query.addQueryItem(QStringLiteral("ocrLanguage"), d->ocrLanguage);
0213     }
0214 
0215     query.removeQueryItem(QStringLiteral("pinned"));
0216     query.addQueryItem(QStringLiteral("pinned"), Utils::bool2Str(d->pinned));
0217 
0218     query.removeQueryItem(QStringLiteral("timedTextLanguage"));
0219     if (!d->timedTextLanguage.isEmpty()) {
0220         query.addQueryItem(QStringLiteral("timedTextLanguage"), d->timedTextLanguage);
0221     }
0222 
0223     query.removeQueryItem(QStringLiteral("timedTextTrackName"));
0224     if (!d->timedTextTrackName.isEmpty()) {
0225         query.addQueryItem(QStringLiteral("timedTextTrackName"), d->timedTextTrackName);
0226     }
0227 
0228     query.removeQueryItem(QStringLiteral("useContentAsIndexableText"));
0229     query.addQueryItem(QStringLiteral("useContentAsIndexableText"), Utils::bool2Str(d->useContentAsIndexableText));
0230 
0231     query.removeQueryItem(QStringLiteral("supportsAllDrives"));
0232     query.addQueryItem(QStringLiteral("supportsAllDrives"), Utils::bool2Str(d->supportsAllDrives));
0233 
0234     url.setQuery(query);
0235     return url;
0236 }
0237 
0238 #include "moc_fileabstractdatajob.cpp"