File indexing completed on 2024-05-12 16:01:33

0001 /*
0002  *  SPDX-FileCopyrightText: 2009 Cyrille Berger <cberger@cberger.net>
0003  *  SPDX-FileCopyrightText: 2014 Sven Langkamp <sven.langkamp@gmail.com>
0004  *
0005  *  SPDX-License-Identifier: GPL-2.0-or-later
0006  */
0007 
0008 #ifndef KIS_MIRROR_MANAGER_H
0009 #define KIS_MIRROR_MANAGER_H
0010 
0011 #include <QObject>
0012 #include <QPointer>
0013 #include <kis_types.h>
0014 
0015 #include "KisView.h"
0016 
0017 class KisViewManager;
0018 class KisKActionCollection;
0019 class KisMirrorAxis;
0020 class KisMirrorAxisConfig;
0021 
0022 class KisMirrorManager : public QObject
0023 {
0024     Q_OBJECT
0025 
0026 public:
0027     KisMirrorManager(KisViewManager* view);
0028     ~KisMirrorManager() override;
0029 
0030     void setup(KisKActionCollection* collection);
0031     void setView(QPointer<KisView> imageView);
0032 
0033 private Q_SLOTS:
0034     void updateAction();
0035     void slotSyncActionStates(bool val);
0036     void slotDocumentConfigChanged();
0037     void slotMirrorAxisConfigChanged();
0038 
0039 private:
0040     QPointer<KisView> m_imageView;
0041     QAction *m_mirrorCanvas {nullptr};
0042     QAction *m_mirrorCanvasAroundCursor {nullptr};
0043     void setDecorationConfig();
0044     KisMirrorAxisSP decoration() const;
0045 };
0046 
0047 #endif // KIS_MIRROR_MANAGER_H