File indexing completed on 2024-05-12 13:04:44
0001 /* 0002 * This file is part of the KDE project 0003 * SPDX-FileCopyrightText: 2013 Arjen Hiemstra <ahiemstra@heimr.nl> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef CQCANVASBASE_H 0009 #define CQCANVASBASE_H 0010 0011 #include <QDeclarativeItem> 0012 0013 class KoZoomController; 0014 class CQCanvasController; 0015 class CQCanvasBase : public QDeclarativeItem 0016 { 0017 Q_OBJECT 0018 Q_PROPERTY(QString source READ source WRITE setSource NOTIFY sourceChanged) 0019 Q_PROPERTY(qreal shapeTransparency READ shapeTransparency WRITE setShapeTransparency NOTIFY shapeTransparencyChanged) 0020 0021 public: 0022 explicit CQCanvasBase(QDeclarativeItem* parent); 0023 virtual ~CQCanvasBase(); 0024 0025 CQCanvasController *canvasController() const; 0026 KoZoomController *zoomController() const; 0027 QString source() const; 0028 0029 virtual qreal shapeTransparency() const; 0030 virtual void setShapeTransparency(qreal newTransparency); 0031 public Q_SLOTS: 0032 virtual void setSource(const QString &source); 0033 virtual void render(QPainter* painter, const QRectF& target) = 0; 0034 0035 Q_SIGNALS: 0036 void sourceChanged(); 0037 void shapeTransparencyChanged(); 0038 void canvasControllerChanged(); 0039 void positionShouldChange(const QPoint& pos); 0040 0041 void loadingBegun(); 0042 void loadingFinished(); 0043 0044 protected: 0045 virtual void setCanvasController(CQCanvasController *controller); 0046 virtual void setZoomController(KoZoomController *controller); 0047 0048 virtual void openFile(const QString &file) = 0; 0049 0050 private: 0051 class Private; 0052 Private * const d; 0053 }; 0054 0055 Q_DECLARE_METATYPE(CQCanvasBase*); 0056 0057 #endif // CQCANVASBASE_H