File indexing completed on 2025-02-23 04:09:01
0001 /* 0002 * SPDX-FileCopyrightText: 2014 Arjen Hiemstra <ahiemstra@heimr.nl> 0003 * 0004 * SPDX-License-Identifier: GPL-2.0-or-later 0005 * 0006 */ 0007 0008 #ifndef KISMIRRORAXIS_H 0009 #define KISMIRRORAXIS_H 0010 0011 #include <QScopedPointer> 0012 0013 #include "kis_canvas_decoration.h" 0014 0015 class KisView; 0016 class KisCanvasResourceProvider; 0017 class KisMirrorAxisConfig; 0018 0019 class KisMirrorAxis : public KisCanvasDecoration 0020 { 0021 Q_OBJECT 0022 Q_PROPERTY(float handleSize READ handleSize WRITE setHandleSize NOTIFY handleSizeChanged) 0023 0024 public: 0025 KisMirrorAxis(KisCanvasResourceProvider* provider, QPointer<KisView> parent); 0026 ~KisMirrorAxis() override; 0027 0028 float handleSize() const; 0029 void setHandleSize(float newSize); 0030 void setVisible(bool v) override; 0031 0032 void setMirrorAxisConfig(const KisMirrorAxisConfig& config); 0033 const KisMirrorAxisConfig& mirrorAxisConfig() const; 0034 0035 Q_SIGNALS: 0036 void handleSizeChanged(); 0037 void sigConfigChanged(); 0038 0039 protected: 0040 void drawDecoration(QPainter& gc, const QRectF& updateArea, const KisCoordinatesConverter* converter, KisCanvas2* canvas) override; 0041 bool eventFilter(QObject* target, QEvent* event) override; 0042 void toggleMirrorActions(); 0043 0044 private: 0045 class Private; 0046 const QScopedPointer<Private> d; 0047 0048 private Q_SLOTS: 0049 void mirrorModeChanged(); 0050 void moveHorizontalAxisToCenter(); 0051 void moveVerticalAxisToCenter(); 0052 }; 0053 0054 #endif // KISMIRRORAXIS_H