filepreviewjob: allow to log the file being previewed (5012f5ad) · Commits · Frameworks / KIO · GitLab
Commit 5012f5ad authored by Méven Car's avatar Méven Car
Browse files
parent 9f3784da
Loading
Loading
Loading
Loading
Loading
Original line number Diff line number Diff line
@@ -28,6 +28,7 @@

#include <KConfigGroup>
#include <KFileUtils>
#include <KLocalizedString>
#include <KMountPoint>
#include <KProtocolInfo>
#include <KSharedConfig>
@@ -91,7 +92,9 @@ QString FilePreviewJob::parentDirPath(const QString &path)

void FilePreviewJob::start()
{
    if (!m_fileItem.targetUrl().isValid()) {
    QUrl targetUrl = m_fileItem.targetUrl();
    if (!targetUrl.isValid()) {
        setError(ERR_INTERNAL);
        emitResult();
        return;
    }
@@ -102,7 +105,8 @@ void FilePreviewJob::start()
        details.setFlag(KIO::StatMimeType);
    }

    KIO::Job *statJob = KIO::stat(m_fileItem.targetUrl(), StatJob::SourceSide, details, KIO::HideProgressInfo);
    qCDebug(KIO_GUI) << "filepreview: Starting preview for file:" << targetUrl.toString(QUrl::PreferLocalFile);
    KIO::Job *statJob = KIO::stat(targetUrl, StatJob::SourceSide, details, KIO::HideProgressInfo);
    statJob->addMetaData(QStringLiteral("thumbnail"), QStringLiteral("1"));
    statJob->addMetaData(QStringLiteral("no-auth-prompt"), QStringLiteral("true"));
    connect(statJob, &KIO::Job::result, this, &FilePreviewJob::slotStatFile);
@@ -272,8 +276,10 @@ void FilePreviewJob::slotStatFile(KJob *job)

    const KIO::filesize_t size = static_cast<KIO::filesize_t>(statResult.numberValue(KIO::UDSEntry::UDS_SIZE, 0));
    if (size == 0 && !statResult.isDir()) {
        qCDebug(KIO_GUI) << "FilePreviewJob: skipping an empty file, might be a broken symlink" << m_fileItem.url();
        setError(KIO::ERR_NO_CONTENT);
        setErrorText(i18nc("%1 is a file url",
                           "FilePreviewJob: skipping an empty file, might be a broken symlink: %1",
                           m_fileItem.url().toDisplayString(QUrl::PreferLocalFile)));
        emitResult();
        return;
    }
Original line number Diff line number Diff line
@@ -327,7 +327,11 @@ void PreviewJob::slotResult(KJob *job)
    }
    removeSubjob(job);
    if (job->error() && job->error() != KIO::ERR_INTERNAL) {
        qCWarning(KIO_GUI) << "PreviewJob subjob had an error:" << job->errorString();
        if (job->error() == ERR_NO_CONTENT) {
            qCDebug(KIO_GUI) << "PreviewJob subjob had an error:" << KIO::buildErrorString(job->error(), job->errorString());
        } else {
            qCWarning(KIO_GUI) << "PreviewJob subjob had an error:" << KIO::buildErrorString(job->error(), job->errorString());
        }
    }
    // slot might have been called synchronously from startNextFilePreviewJobBatch(), as KIO::stat currently can do
    // so always delay the next call to the next event-loop, to ensure startNextFilePreviewJobBatch() has exited