File indexing completed on 2024-05-19 04:29:14
0001 /* 0002 * SPDX-FileCopyrightText: 2023 Dmitry Kazakov <dimula73@gmail.com> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 */ 0006 #ifndef KISLAYERTHUMBNAILCACHE_H 0007 #define KISLAYERTHUMBNAILCACHE_H 0008 0009 #include <kritaui_export.h> 0010 #include <QScopedPointer> 0011 #include "kis_types.h" 0012 0013 class KisIdleTasksManager; 0014 0015 0016 class KRITAUI_EXPORT KisLayerThumbnailCache : public QObject 0017 { 0018 Q_OBJECT 0019 public: 0020 KisLayerThumbnailCache(); 0021 ~KisLayerThumbnailCache(); 0022 0023 void setImage(KisImageSP image); 0024 void setIdleTaskManager(KisIdleTasksManager *manager); 0025 void setImage(KisImageSP image, KisIdleTasksManager *manager); 0026 void setMaxSize(int maxSize); 0027 int maxSize() const; 0028 0029 QImage thumbnail(KisNodeSP node) const; 0030 0031 void notifyNodeAdded(KisNodeSP node); 0032 void notifyNodeRemoved(KisNodeSP node); 0033 0034 void startThumbnailsUpdate(); 0035 0036 void clear(); 0037 0038 Q_SIGNALS: 0039 void sigLayerThumbnailUpdated(KisNodeSP node); 0040 0041 private Q_SLOTS: 0042 void slotThumbnailGenerated(KisNodeSP node, int seqNo, int maxSize, const QImage &thumb); 0043 private: 0044 void setIdleTaskManagerImpl(KisIdleTasksManager *manager); 0045 0046 private: 0047 struct Private; 0048 QScopedPointer<Private> m_d; 0049 }; 0050 0051 #endif // KISLAYERTHUMBNAILCACHE_H