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"