KIO
previewjob.cpp
96 thumbRoot = QStandardPaths::writableLocation(QStandardPaths::GenericCacheLocation) + QLatin1String("/thumbnails/");
186 jsonMetaDataPlugins = KPluginMetaData::findPlugins(QStringLiteral("kf" QT_STRINGIFY(QT_VERSION_MAJOR) "/thumbcreator"));
195 const KService::List plugins = KServiceTypeTrader::self()->query(QStringLiteral("ThumbCreator"));
202 // Hack for directory thumbnailer: It has a hardcoded plugin id in the KIO worker and not any C++ plugin
204 const QString path = QStandardPaths::locate(QStandardPaths::GenericDataLocation, QLatin1String("kservices5/") + plugin->entryPath());
230 PreviewJob::PreviewJob(const KFileItemList &items, int width, int height, int iconSize, int iconAlpha, bool scale, bool save, const QStringList *enabledPlugins)
247 PreviewJob::PreviewJob(const KFileItemList &items, const QSize &size, const QStringList *enabledPlugins)
258 QStringList{QStringLiteral("directorythumbnail"), QStringLiteral("imagethumbnail"), QStringLiteral("jpegthumbnail")});
427 if (!url.isLocalFile() || !url.adjusted(QUrl::RemoveFilename).toLocalFile().startsWith(thumbRoot)) {
521 return d_func()->thumbnailWorkerMetaData.value(QStringLiteral("sequenceIndexWraparoundPoint"), QStringLiteral("-1.0")).toFloat();
526 return d_func()->thumbnailWorkerMetaData.value(QStringLiteral("handlesSequences")) == QStringLiteral("1");
549 Q_ASSERT((!QFileInfo(tempName).isDir() && QFileInfo(tempName).isFile()) || QFileInfo(tempName).isSymLink());
573 KIO::Job *job = KIO::statDetails(currentItem.item.url(), StatJob::SourceSide, KIO::StatDefaultDetails | KIO::StatInode, KIO::HideProgressInfo);
595 d->tOrig = QDateTime::fromSecsSinceEpoch(statResult.numberValue(KIO::UDSEntry::UDS_MODIFICATION_TIME, 0));
598 const KIO::filesize_t size = (KIO::filesize_t)statResult.numberValue(KIO::UDSEntry::UDS_SIZE, 0);
601 if (itemUrl.isLocalFile() || KProtocolInfo::protocolClass(itemUrl.scheme()) == QLatin1String(":local")) {
602 skipCurrentItem = !d->ignoreMaximumSize && size > d->maximumLocalSize && !d->currentItem.plugin.value(QStringLiteral("IgnoreMaximumSize"), false);
621 bool pluginHandlesSequences = d->currentItem.plugin.value(QStringLiteral("HandleSequences"), false);
622 if (!d->currentItem.plugin.value(QStringLiteral("CacheThumbnail"), true) || (d->sequenceIndex && pluginHandlesSequences)) {
680 origName = QUrl::fromLocalFile(canonicalPath).toEncoded(QUrl::RemovePassword | QUrl::FullyEncoded);
717 if (!thumbnailerVersion.isEmpty() && thumb.text(QStringLiteral("Software")).startsWith(QLatin1String("KDE Thumbnail Generator"))) {
720 QString softwareString = thumb.text(QStringLiteral("Software")).remove(QStringLiteral("KDE Thumbnail Generator")).trimmed();
785 KIO::Job *job = KIO::file_copy(currentURL, QUrl::fromLocalFile(tempName), -1, KIO::Overwrite | KIO::HideProgressInfo /* No GUI */);
793 // If checked file is directory on a different filesystem than its parent, we need to check it separately
819 // If we're checking different filesystem or haven't checked yet see if filesystem matches thumbRoot
828 // If the checked device is encrypted, allow thumbnailing if the thumbnails are stored in an encrypted location.
832 shouldAllow = thumbRootDevice.isValid() && thumbRootDevice.as<Solid::StorageAccess>()->isEncrypted();
857 KIO::Job *job = KIO::statDetails(url, StatJob::SourceSide, KIO::StatDefaultDetails | KIO::StatInode, KIO::HideProgressInfo);
872 bool save = bSave && currentItem.plugin.value(QStringLiteral("CacheThumbnail"), true) && !sequenceIndex;
1015 pix = QPixmap::fromImage(thumb.scaled(QSize(width * ratio, height * ratio), Qt::KeepAspectRatio, Qt::SmoothTransformation));
1062 KIO::filePreview(const KFileItemList &items, int width, int height, int iconSize, int iconAlpha, bool scale, bool save, const QStringList *enabledPlugins)
1070 KIO::filePreview(const QList<QUrl> &items, int width, int height, int iconSize, int iconAlpha, bool scale, bool save, const QStringList *enabledPlugins)
1078 return new PreviewJob(fileItems, width, height, iconSize, iconAlpha, scale, save, enabledPlugins);
1082 PreviewJob *KIO::filePreview(const KFileItemList &items, const QSize &size, const QStringList *enabledPlugins)
@ Overwrite
When set, automatically overwrite the destination if it exists already.
Definition: job_base.h:291
void append(const T &value)
T & first()
QString readEntry(const char *key, const char *aDefault=nullptr) const
static QStringList supportedMimeTypes()
Returns a list of all supported MIME types.
Definition: previewjob.cpp:1050
QJsonObject rawData() const
const T value(const Key &key) const const
void truncate(int position)
void setSequenceIndex(int index)
Sets the sequence index given to the thumb creators.
Definition: previewjob.cpp:509
bool isEmpty() const const
QString text(const QString &key) const const
QPixmap fromImage(const QImage &image, Qt::ImageConversionFlags flags)
Format
QString number(int n, int base)
int height() const const
ReadOnly
QString fromUtf8(const char *str, int size)
QByteArray toEncoded(QUrl::FormattingOptions options) const const
bool remove()
static QVector< KPluginMetaData > availableThumbnailerPlugins()
Returns all plugins that are considered when a preview is generated The result is internally cached,...
Definition: previewjob.cpp:1023
void result(KJob *job)
int removeAll(const T &value)
QString scheme() const const
void setOverlayIconSize(int size)
Sets the size of the MIME-type icon which overlays the preview.
Definition: previewjob.cpp:279
singleShot
bool contains(const QString &str, Qt::CaseSensitivity cs) const const
Definition: udsentry.h:77
QString trimmed() const const
void clear()
QString url(QUrl::FormattingOptions options) const const
void setAutoRemove(bool b)
static QStringList availablePlugins()
Returns a list of all available preview plugins.
Definition: previewjob.cpp:1028
Definition: kfileitem.h:657
void addMetaData(const QString &key, const QString &value)
Add key/value pair to the meta data that is sent to the worker.
Definition: job.cpp:228
@ Scaled
The preview will be scaled to the size specified when constructing the PreviewJob.
Definition: previewjob.h:50
void chop(int n)
bool isValid() const
QImage scaled(int width, int height, Qt::AspectRatioMode aspectRatioMode, Qt::TransformationMode transformMode) const const
allAncestors
static Device storageAccessFromPath(const QString &path)
QString writableLocation(QStandardPaths::StandardLocation type)
KCALUTILS_EXPORT QString mimeType()
Definition: thumbcreator.h:87
KIOCORE_EXPORT TransferJob * get(const QUrl &url, LoadType reload=NoReload, JobFlags flags=DefaultFlags)
Get (means: read).
Definition: transferjob.cpp:471
bool kill(KillVerbosity verbosity=Quietly)
int lastIndexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
QString locate(QStandardPaths::StandardLocation type, const QString &fileName, QStandardPaths::LocateOptions options)
QMap::const_iterator constFind(const Key &key) const const
bool loadFromData(const uchar *data, int len, const char *format)
bool load(QIODevice *device, const char *format)
KIOCORE_EXPORT FileCopyJob * file_copy(const QUrl &src, const QUrl &dest, int permissions=-1, JobFlags flags=DefaultFlags)
Copy a single file.
Definition: filecopyjob.cpp:639
QHash::iterator insert(const Key &key, const T &value)
void setScaleType(ScaleType type)
Sets the scale type for the generated preview.
Definition: previewjob.cpp:310
void removeItem(const QUrl &url)
Removes an item from preview processing.
Definition: previewjob.cpp:490
virtual QString fileName() const const override
void setScheme(const QString &scheme)
void setDevicePixelRatio(qreal scaleFactor)
void reserve(int alloc)
bool isValid() const const
QMap::iterator insert(const Key &key, const T &value)
bool isValid() const
const QList< KJob * > & subjobs() const
int size() const const
QMap::iterator end()
qulonglong toULongLong(bool *ok, int base) const const
QString toString(QUrl::FormattingOptions options) const const
KeepAspectRatio
QMap::iterator find(const Key &key)
QStringList mimeTypes() const
RemoveFilename
QMimeType mimeTypeForName(const QString &nameOrAlias) const const
QHash::const_iterator constEnd() const const
FullyEncoded
QMap::const_iterator constEnd() const const
static KIO::filesize_t maximumFileSize()
Returns the default "maximum file size", in bytes, used by PreviewJob.
Definition: previewjob.cpp:1088
bool isEmpty() const const
PreviewJob(const KFileItemList &items, int width, int height, int iconSize, int iconAlpha, bool scale, bool save, const QStringList *enabledPlugins)
Creates a new PreviewJob.
Definition: previewjob.cpp:230
QUrl fromLocalFile(const QString &localFile)
DevIface * as()
float sequenceIndexWraparoundPoint() const
Returns the index at which the thumbs of a ThumbSequenceCreator start wrapping around ("looping").
Definition: previewjob.cpp:519
bool isNull() const const
bool isEncrypted() const
Definition: job_base.h:44
void setDevicePixelRatio(int dpr)
Request preview to use the device pixel ratio dpr.
Definition: previewjob.cpp:530
void setText(const QString &key, const QString &text)
int toInt(bool *ok, int base) const const
QString toLocalFile() const const
ReadUser
void setIgnoreMaximumSize(bool ignoreSize=true)
If ignoreSize is true, then the preview is always generated regardless of the settings.
Definition: previewjob.cpp:541
bool isValid() const const
QString join(const QString &separator) const const
int indexOf(QChar ch, int from, Qt::CaseSensitivity cs) const const
KIOCORE_EXPORT MkpathJob * mkpath(const QUrl &url, const QUrl &baseUrl=QUrl(), JobFlags flags=DefaultFlags)
Creates a directory, creating parent directories as needed.
Definition: mkpathjob.cpp:148
QHash::const_iterator constFind(const Key &key) const const
bool isValid() const
bool handlesSequences() const
Determines whether the ThumbCreator in use is a ThumbSequenceCreator.
Definition: previewjob.cpp:524
bool value(const QString &key, bool defaultValue) const
QString & remove(int position, int n)
static QVector< KPluginMetaData > findPlugins(const QString &directory, std::function< bool(const KPluginMetaData &)> filter, KPluginMetaDataOption option)
bool startsWith(const QString &s, Qt::CaseSensitivity cs) const const
qint64 toSecsSinceEpoch() const const
GenericCacheLocation
bool isEmpty() const const
long long numberValue(uint field, long long defaultValue=0) const
Definition: udsentry.cpp:381
@ UDS_MODIFICATION_TIME
The last time the file was modified. Required time format: seconds since UNIX epoch.
Definition: udsentry.h:259
void setOverlayIconAlpha(int alpha)
Sets the alpha-value for the MIME-type icon which overlays the preview.
Definition: previewjob.cpp:295
QString path(const QString &relativePath)
QString left(int n) const const
QString fromLatin1(const char *str, int size)
void setPath(const QString &path, QUrl::ParsingMode mode)
const QList< QKeySequence > & save()
bool isLocalFile() const const
QUrl adjusted(QUrl::FormattingOptions options) const const
QDateTime fromSecsSinceEpoch(qint64 secs, Qt::TimeSpec spec, int offsetSeconds)
KIOCORE_EXPORT StatJob * statDetails(const QUrl &url, KIO::StatJob::StatSide side, KIO::StatDetails details=KIO::StatDefaultDetails, JobFlags flags=DefaultFlags)
Find all details for one file or directory.
Definition: statjob.cpp:263
Definition: filecopyjob.h:25
Unknown
void clear()
QStringList mimeTypes(Mode mode=Writing)
Definition: statjob.h:25
ScaleType
Specifies the type of scaling that is applied to the generated preview.
Definition: previewjob.h:40
@ HideProgressInfo
Hide progress information dialog, i.e. don't show a GUI.
Definition: job_base.h:275
KIOCORE_EXPORT QString number(KIO::filesize_t size)
Converts a size to a string representation Not unlike QString::number(...)
Definition: global.cpp:55
QUrl mostLocalUrl(bool *local=nullptr) const
Tries to return a local URL for this file item if possible.
Definition: kfileitem.cpp:1482
static KPluginMetaData fromDesktopFile(const QString &file, const QStringList &serviceTypes=QStringList())
int error() const
static QStringList defaultPlugins()
Returns a list of plugins that should be enabled by default, which is all plugins Minus the plugins s...
Definition: previewjob.cpp:1038
bool hasSubjobs() const
bool open()
SmoothTransformation
void data(KIO::Job *job, const QByteArray &data)
Data from the worker has arrived.
QString pluginId() const
Definition: kfileitem.h:35
static void setDefaultDevicePixelRatio(int devicePixelRatio)
Sets a default device Pixel Ratio used for Previews.
Definition: previewjob.cpp:218
bool save(const QString &fileName, const char *format, int quality) const const
KIOWIDGETS_EXPORT PreviewJob * filePreview(const KFileItemList &items, int width, int height=0, int iconSize=0, int iconAlpha=70, bool scale=true, bool save=true, const QStringList *enabledPlugins=nullptr)
Creates a PreviewJob to generate or retrieve a preview image for the given URL.
Definition: previewjob.cpp:1062
@ ScaledAndCached
The preview will be scaled to the size specified when constructing the PreviewJob.
Definition: previewjob.h:56
T value(int i) const const
QString & append(QChar ch)
QImage copy(const QRect &rectangle) const const
Q_D(Todo)
void setDevicePixelRatio(qreal scaleFactor)
qreal devicePixelRatio() const const
static QString protocolClass(const QString &protocol)
Returns the protocol class for the specified protocol.
Definition: kprotocolinfo.cpp:364
Definition: transferjob.h:25
int width() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Sep 25 2023 03:51:43 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon Sep 25 2023 03:51:43 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006
KDE's Doxygen guidelines are available online.