Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_file_layer.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2013 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KIS_FILE_LAYER_H
7#define KIS_FILE_LAYER_H
8
9#include "kritaui_export.h"
10
14
18class KRITAUI_EXPORT KisFileLayer : public KisExternalLayer
19{
20 Q_OBJECT
21public:
22
26 ToImagePPI
27 };
28
29 KisFileLayer(KisImageWSP image, const QString &name, quint8 opacity);
40 KisFileLayer(KisImageWSP image, const QString& basePath, const QString &filename, ScalingMethod scalingMethod, QString scalingFilter, const QString &name, quint8 opacity, const KoColorSpace *fallbackColorSpace = 0);
41 ~KisFileLayer() override;
42 KisFileLayer(const KisFileLayer& rhs);
43
44 QIcon icon() const override;
45
46 void resetCache(const KoColorSpace *colorSpace = 0) override;
47
48 KisPaintDeviceSP original() const override;
49 KisPaintDeviceSP paintDevice() const override;
50 void setSectionModelProperties(const KisBaseNode::PropertyList &properties) override;
52
58 void setFileName(const QString &basePath, const QString &filename);
59 QString fileName() const;
60 QString path() const;
61
62
63 ScalingMethod scalingMethod() const;
64 void setScalingMethod(ScalingMethod method);
65
66 QString scalingFilter() const;
67 void setScalingFilter(QString method);
68
69 KisNodeSP clone() const override;
70 bool allowAsChild(KisNodeSP) const override;
71
72 bool accept(KisNodeVisitor&) override;
73 void accept(KisProcessingVisitor &visitor, KisUndoAdapter *undoAdapter) override;
74
75 KUndo2Command* crop(const QRect & rect) override;
76 KUndo2Command* transform(const QTransform &transform) override;
77
78 void setImage(KisImageWSP image) override;
79
80private Q_SLOTS:
81 void slotLoadingFinished(KisPaintDeviceSP projection, qreal xRes, qreal yRes, const QSize &size);
82 void slotLoadingFailed();
83 void slotFileExistsStateChanged(bool exists);
84 void openFile() const;
85 void slotImageSizeChanged();
86 void slotImageResolutionChanged();
87
88Q_SIGNALS:
90
91private:
92 enum State {
95 FileLoadingFailed
96 };
97
98 void changeState(State newState);
99
100private:
101 QString m_basePath;
102 QString m_filename;
103 ScalingMethod m_scalingMethod {None};
105
109 qreal m_generatedForXRes = 0.0;
110 qreal m_generatedForYRes = 0.0;
111
112 State m_state = FileNotFound;
113
115};
116
117#endif // KIS_FILE_LAYER_H
virtual KUndo2Command * crop(const QRect &rect)
virtual KUndo2Command * transform(const QTransform &transform)
virtual void resetCache(const KoColorSpace *colorSpace=0)
QIcon icon() const override
The KisFileLayer class loads a particular file as a layer into the layer stack.
void sigRequestOpenFile()
KisPaintDeviceSP m_paintDevice
KisSafeDocumentLoader m_loader
QString m_scalingFilter
QSize m_generatedForImageSize
KisSignalAutoConnectionsStore m_imageConnections
virtual KisPaintDeviceSP paintDevice() const =0
void setImage(KisImageWSP image) override
Definition kis_layer.cc:378
void setSectionModelProperties(const KisBaseNode::PropertyList &properties) override
Definition kis_layer.cc:297
KisPaintDeviceSP original() const override=0
KisBaseNode::PropertyList sectionModelProperties() const override
Definition kis_layer.cc:272
bool accept(KisNodeVisitor &v) override
Definition kis_node.cpp:269
virtual KisNodeSP clone() const =0
virtual bool allowAsChild(KisNodeSP) const =0