File indexing completed on 2024-05-12 16:01:24
0001 /* 0002 * 0003 * SPDX-FileCopyrightText: 2009 Edward Apap <schumifer@hotmail.com> 0004 * 0005 * SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #ifndef KCANVASPREVIEW_H 0009 #define KCANVASPREVIEW_H 0010 0011 #include <QWidget> 0012 0013 class KCanvasPreview : public QWidget 0014 { 0015 Q_OBJECT 0016 0017 public: 0018 KCanvasPreview(QWidget * parent = 0); 0019 0020 ~KCanvasPreview() override; 0021 0022 void paintEvent(QPaintEvent *) override; 0023 void mousePressEvent(QMouseEvent *event) override; 0024 void mouseReleaseEvent(QMouseEvent *) override; 0025 void mouseMoveEvent(QMouseEvent *event) override; 0026 0027 void setImageSize(qint32 w, qint32 h); 0028 void setCanvasSize(qint32 w, qint32 h); 0029 void setImageOffset(qint32 x, qint32 y); 0030 0031 bool xOffsetLocked() const; 0032 bool yOffsetLocked() const; 0033 0034 public Q_SLOTS: 0035 void setxOffsetLock(bool); 0036 void setyOffsetLock(bool); 0037 0038 Q_SIGNALS: 0039 void sigModifiedXOffset(int); 0040 void sigModifiedYOffset(int); 0041 0042 protected: 0043 bool isInRegion(QPoint point); 0044 double scalingFactor(); 0045 0046 protected: 0047 qint32 m_width {0}, m_height {0}; 0048 qint32 m_imageWidth {0}, m_imageHeight {0}; 0049 qint32 m_xOffset {0}, m_yOffset {0}; 0050 0051 qint16 m_xCanvasOffset {0}, m_yCanvasOffset {0}; 0052 bool m_dragging {false}; 0053 0054 QImage m_image; 0055 QPoint m_prevDragPoint; 0056 0057 bool m_xOffsetLocked {false}; 0058 bool m_yOffsetLocked {false}; 0059 }; 0060 0061 0062 #endif /* KCANVASPREVIEW_H */