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

0001 /*
0002  *  SPDX-FileCopyrightText: 2016 Dmitry Kazakov <dimula73@gmail.com>
0003  *
0004  *  SPDX-License-Identifier: GPL-2.0-or-later
0005  */
0006 
0007 #ifndef __KIS_DERIVED_RESOURCES_H
0008 #define __KIS_DERIVED_RESOURCES_H
0009 
0010 #include "KoDerivedResourceConverter.h"
0011 #include "KoResourceUpdateMediator.h"
0012 #include <QScopedPointer>
0013 
0014 class KisPresetUpdateMediator : public KoResourceUpdateMediator
0015 {
0016     Q_OBJECT
0017 public:
0018     KisPresetUpdateMediator();
0019     ~KisPresetUpdateMediator() override;
0020     void connectResource(QVariant sourceResource) override;
0021 
0022 private Q_SLOTS:
0023     void slotSettingsChanged();
0024     void slotResourceChanged(const QModelIndex &topLeft, const QModelIndex &bottomRight, const QVector<int> &roles);
0025 
0026 private:
0027     struct Private;
0028     const QScopedPointer<Private> m_d;
0029 };
0030 
0031 class KisCompositeOpResourceConverter : public KoDerivedResourceConverter
0032 {
0033 public:
0034     KisCompositeOpResourceConverter();
0035 
0036     QVariant fromSource(const QVariant &value) override;
0037     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0038 };
0039 
0040 class KisEffectiveCompositeOpResourceConverter : public KoDerivedResourceConverter
0041 {
0042 public:
0043     KisEffectiveCompositeOpResourceConverter();
0044 
0045     QVariant fromSource(const QVariant &value) override;
0046     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0047 };
0048 
0049 class KisOpacityResourceConverter : public KoDerivedResourceConverter, public QObject
0050 {
0051 public:
0052     KisOpacityResourceConverter();
0053 
0054     QVariant fromSource(const QVariant &value) override;
0055     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0056 };
0057 
0058 class KisFlowResourceConverter : public KoDerivedResourceConverter, public QObject
0059 {
0060 public:
0061     KisFlowResourceConverter();
0062 
0063     QVariant fromSource(const QVariant &value) override;
0064     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0065 };
0066 
0067 class KisFadeResourceConverter : public KoDerivedResourceConverter, public QObject
0068 {
0069 public:
0070     KisFadeResourceConverter();
0071 
0072     QVariant fromSource(const QVariant &value) override;
0073     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0074 };
0075 
0076 class KisScatterResourceConverter : public KoDerivedResourceConverter, public QObject
0077 {
0078 public:
0079     KisScatterResourceConverter();
0080 
0081     QVariant fromSource(const QVariant &value) override;
0082     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0083 };
0084 
0085 class KisSizeResourceConverter : public KoDerivedResourceConverter, public QObject
0086 {
0087 public:
0088     KisSizeResourceConverter();
0089 
0090     QVariant fromSource(const QVariant &value) override;
0091     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0092 };
0093 
0094 class KisPatternSizeResourceConverter : public KoDerivedResourceConverter, public QObject
0095 {
0096 public:
0097     KisPatternSizeResourceConverter();
0098 
0099     QVariant fromSource(const QVariant& value) override;
0100     QVariant toSource(const QVariant& value, const QVariant& sourceValue) override;
0101 };
0102 
0103 class KisLodAvailabilityResourceConverter : public KoDerivedResourceConverter
0104 {
0105 public:
0106     KisLodAvailabilityResourceConverter();
0107 
0108     QVariant fromSource(const QVariant &value) override;
0109     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0110 };
0111 
0112 class KisLodSizeThresholdResourceConverter : public KoDerivedResourceConverter
0113 {
0114 public:
0115     KisLodSizeThresholdResourceConverter();
0116 
0117     QVariant fromSource(const QVariant &value) override;
0118     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0119 };
0120 
0121 class KisLodSizeThresholdSupportedResourceConverter : public KoDerivedResourceConverter
0122 {
0123 public:
0124     KisLodSizeThresholdSupportedResourceConverter();
0125 
0126     QVariant fromSource(const QVariant &value) override;
0127     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0128 };
0129 
0130 class KisEraserModeResourceConverter : public KoDerivedResourceConverter
0131 {
0132 public:
0133     KisEraserModeResourceConverter();
0134 
0135     QVariant fromSource(const QVariant &value) override;
0136     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0137 };
0138 
0139 class KisBrushNameResourceConverter : public KoDerivedResourceConverter
0140 {
0141 public:
0142     KisBrushNameResourceConverter();
0143 
0144     QVariant fromSource(const QVariant &value) override;
0145     QVariant toSource(const QVariant &value, const QVariant &sourceValue) override;
0146 };
0147 
0148 
0149 #endif /* __KIS_DERIVED_RESOURCES_H */