File indexing completed on 2024-04-28 17:06:21

0001 /*
0002     SPDX-FileCopyrightText: 2009 Jan Lepper <krusader@users.sourceforge.net>
0003     SPDX-FileCopyrightText: 2009-2022 Krusader Krew <https://krusader.org>
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #ifndef KRPREVIEWJOB_H
0009 #define KRPREVIEWJOB_H
0010 
0011 // QtCore
0012 #include <QHash>
0013 #include <QTimer>
0014 #include <QVector>
0015 // QtGui
0016 #include <QPixmap>
0017 
0018 #include <KIO/PreviewJob>
0019 #include <KIOCore/KFileItem>
0020 
0021 class KrViewItem;
0022 class KrPreviews;
0023 
0024 class KrPreviewJob : public KJob
0025 {
0026     friend class KrPreviews;
0027     Q_OBJECT
0028 public:
0029     void start() override
0030     {
0031     }
0032 
0033 protected slots:
0034     void slotStartJob();
0035     void slotJobResult(KJob *job);
0036     void slotGotPreview(const KFileItem &item, const QPixmap &preview);
0037     void slotFailed(const KFileItem &item);
0038 
0039 protected:
0040     QList<KrViewItem *> _scheduled;
0041     QHash<const KFileItem, KrViewItem *> _hash;
0042     KIO::PreviewJob *_job;
0043     QTimer _timer;
0044     KrPreviews *_parent;
0045 
0046     explicit KrPreviewJob(KrPreviews *parent);
0047     ~KrPreviewJob() override;
0048     void scheduleItem(KrViewItem *item);
0049     void removeItem(KrViewItem *item);
0050 
0051     void sort();
0052     bool doKill() override;
0053 };
0054 
0055 #endif // __krpreviewjob__