File indexing completed on 2024-05-12 16:01:54
0001 /* 0002 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org> 0003 * 0004 * SPDX-License-Identifier: LGPL-2.0-or-later 0005 */ 0006 0007 #ifndef KISREFERENCEIMAGESDECORATION_H 0008 #define KISREFERENCEIMAGESDECORATION_H 0009 0010 #include <QObject> 0011 #include <QPainter> 0012 #include <QRectF> 0013 #include <kis_shared_ptr.h> 0014 0015 class KisReferenceImagesDecoration; 0016 class KisReferenceImagesLayer; 0017 typedef KisSharedPtr<KisReferenceImagesDecoration> KisReferenceImagesDecorationSP; 0018 0019 #include <kis_coordinates_converter.h> 0020 #include <kis_canvas_decoration.h> 0021 #include <kis_canvas2.h> 0022 #include <kis_types.h> 0023 0024 /** 0025 * @brief The KisReferenceImagesDecoration class draws the reference images on the canvas. 0026 * The document stores the list of reference images. 0027 */ 0028 class KRITAUI_EXPORT KisReferenceImagesDecoration : public KisCanvasDecoration 0029 { 0030 Q_OBJECT 0031 public: 0032 KisReferenceImagesDecoration(QPointer<KisView> parent, KisDocument *document, bool viewReady = true); 0033 ~KisReferenceImagesDecoration() override; 0034 0035 void addReferenceImage(KisReferenceImage *referenceImage); 0036 0037 bool documentHasReferenceImages() const; 0038 0039 private Q_SLOTS: 0040 void slotNodeAdded(KisNodeSP); 0041 void slotNodeRemoved(KisNodeSP); 0042 void slotLayersChanged(); 0043 void slotReferenceImagesChanged(const QRectF &dirtyRect); 0044 0045 protected: 0046 void drawDecoration(QPainter& gc, const QRectF& updateRect, const KisCoordinatesConverter *converter, KisCanvas2* canvas) override; 0047 0048 private: 0049 struct Private; 0050 const QScopedPointer<Private> d; 0051 0052 void setReferenceImageLayer(KisSharedPtr<KisReferenceImagesLayer> layer, bool updateCanvas); 0053 }; 0054 0055 #endif // KISREFERENCEIMAGESDECORATION_H