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

0001 /* This file is part of the KDE project
0002  * SPDX-FileCopyrightText: 2006 Boudewijn Rempt <boud@valdyas.org>
0003  *
0004  * SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 #ifndef KIS_IMAGE_MANAGER
0007 #define KIS_IMAGE_MANAGER
0008 
0009 #include <QObject>
0010 #include <QPointer>
0011 
0012 #include <QUrl>
0013 #include <kritaui_export.h>
0014 
0015 class KisViewManager;
0016 class KisFilterStrategy;
0017 class KisActionManager;
0018 class KisView;
0019 
0020 class KRITAUI_EXPORT KisImageManager : public QObject
0021 {
0022 
0023     Q_OBJECT
0024 
0025 public:
0026 
0027 
0028     KisImageManager(KisViewManager * view);
0029     ~KisImageManager() override {}
0030 
0031     void setView(QPointer<KisView>imageView);
0032     void setup(KisActionManager *actionManager);
0033 
0034 public Q_SLOTS:
0035 
0036     void slotImportLayerFromFile();
0037     void slotImportLayerAsTransparencyMask();
0038     void slotImportLayerAsFilterMask();
0039     void slotImportLayerAsSelectionMask();
0040 
0041     /**
0042      * Import an image as a layer. If there is more than
0043      * one layer in the image, import all of them as separate
0044      * layers.
0045      *
0046      * @param url the url to the image file
0047      * @param layerType the layer type
0048      * @return the number of layers added
0049      */
0050     qint32 importImage(const QUrl &url, const QString &layerType = "KisPaintLayer");
0051 
0052     void resizeCurrentImage(qint32 w, qint32 h, qint32 xOffset, qint32 yOffset);
0053     void scaleCurrentImage(const QSize &size, qreal xres, qreal yres, KisFilterStrategy *filterStrategy);
0054 
0055     void rotateCurrentImage(double radians);
0056     void shearCurrentImage(double angleX, double angleY);
0057     void slotImageProperties();
0058     void slotImageColor();
0059 
0060 private:
0061     KisViewManager * m_view;
0062 };
0063 
0064 #endif // KIS_IMAGE_MANAGER