File indexing completed on 2025-03-09 04:06:00
0001 /* This file is part of the KDE project 0002 * SPDX-FileCopyrightText: 2014 Dan Leinir Turthra Jensen <admin@leinir.dk> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0005 * 0006 */ 0007 0008 #ifndef CURVEEDITORITEM_H 0009 #define CURVEEDITORITEM_H 0010 0011 #include "kis_cubic_curve.h" 0012 0013 #include <QQuickPaintedItem> 0014 0015 class CurveEditorItem : public QQuickPaintedItem 0016 { 0017 Q_OBJECT 0018 Q_PROPERTY(KisCubicCurve curve READ curve WRITE setCurve NOTIFY curveChanged); 0019 Q_PROPERTY(bool pointSelected READ pointSelected NOTIFY pointSelectedChanged); 0020 public: 0021 explicit CurveEditorItem(QQuickItem* parent = 0); 0022 ~CurveEditorItem() override; 0023 void paint(QPainter *p) override; 0024 0025 KisCubicCurve curve() const; 0026 void setCurve(KisCubicCurve curve); 0027 0028 bool pointSelected() const; 0029 Q_SLOT void deleteSelectedPoint(); 0030 0031 Q_SIGNALS: 0032 void curveChanged(); 0033 void pointSelectedChanged(); 0034 0035 protected: 0036 void geometryChanged(const QRectF &newGeometry, 0037 const QRectF &oldGeometry) override; 0038 void mousePressEvent(QMouseEvent *event) override; 0039 void mouseMoveEvent(QMouseEvent *event) override; 0040 void mouseReleaseEvent(QMouseEvent *event) override; 0041 0042 private: 0043 class Private; 0044 Private* d; 0045 }; 0046 0047 #endif // CURVEEDITORITEM_H