Krita Source Code Documentation
Loading...
Searching...
No Matches
kis_dlg_layer_style.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2014 Boudewijn Rempt <boud@valdyas.org>
3 *
4 * SPDX-License-Identifier: GPL-2.0-or-later
5 */
6#ifndef KIS_DLG_LAYER_STYLE_H
7#define KIS_DLG_LAYER_STYLE_H
8
9#include <QUuid>
10
11#include <KoDialog.h>
12
13#include "kis_types.h"
14
15#include "ui_wdglayerstyles.h"
16#include "ui_wdgBevelAndEmboss.h"
17#include "ui_wdgblendingoptions.h"
18#include "ui_WdgColorOverlay.h"
19#include "ui_wdgContour.h"
20#include "ui_wdgdropshadow.h"
21#include "ui_WdgGradientOverlay.h"
22#include "ui_wdgInnerGlow.h"
23#include "ui_WdgPatternOverlay.h"
24#include "ui_WdgSatin.h"
25#include "ui_WdgStroke.h"
26#include "ui_wdgstylesselector.h"
27#include "ui_wdgTexture.h"
28
29
30#include <QSortFilterProxyModel>
31
32#include <kis_psd_layer_style.h>
34
35
36class QListWidgetItem;
40
41class Contour : public QWidget {
42 Q_OBJECT
43public:
44 Contour(QWidget *parent);
45 Ui::WdgContour ui;
46};
47
48
49class Texture : public QWidget {
50 Q_OBJECT
51public:
52 Texture(QWidget *parent);
53 Ui::WdgTexture ui;
54};
55
56
57class BevelAndEmboss : public QWidget {
58 Q_OBJECT
59public:
60 BevelAndEmboss(Contour *contour, Texture *texture, QWidget *parent);
61 void setBevelAndEmboss(const psd_layer_effects_bevel_emboss *bevelAndEmboss, KisResourcesInterfaceSP resourcesInterface);
62 void fetchBevelAndEmboss(psd_layer_effects_bevel_emboss *bevelAndEmboss, QSharedPointer<KisLocalStrokeResources> uploadResourcesInterface) const;
63
64Q_SIGNALS:
67
68private:
71 Ui::WdgBevelAndEmboss ui;
72};
73
74class BlendingOptions : public QWidget {
75 Q_OBJECT
76public:
77 BlendingOptions(QWidget *parent);
78Q_SIGNALS:
80
81private:
82 Ui::WdgBlendingOptions ui;
83};
84
85
86class ColorOverlay : public QWidget {
87 Q_OBJECT
88public:
89 ColorOverlay(QWidget *parent);
90 void setColorOverlay(const psd_layer_effects_color_overlay *colorOverlay);
91 void fetchColorOverlay(psd_layer_effects_color_overlay *colorOverlay) const;
92
93Q_SIGNALS:
95
96private:
97 Ui::WdgColorOverlay ui;
98};
99
100
101class DropShadow : public QWidget {
102 Q_OBJECT
103
104public:
109
110public:
111 DropShadow(Mode mode, QWidget *parent);
112 void setShadow(const psd_layer_effects_shadow_common *shadow);
114
115Q_SIGNALS:
118
119private:
120 Ui::WdgDropShadow ui;
122};
123
124class GradientOverlay : public QWidget {
125 Q_OBJECT
126public:
127 GradientOverlay(KisCanvasResourceProvider *resourceProvider, QWidget *parent);
128 void setGradientOverlay(const psd_layer_effects_gradient_overlay *gradient, KisResourcesInterfaceSP resourcesInterface);
130
131Q_SIGNALS:
133
134private:
135 Ui::WdgGradientOverlay ui;
136};
137
138class InnerGlow : public QWidget {
139 Q_OBJECT
140public:
145
146public:
147 InnerGlow(Mode mode, KisCanvasResourceProvider *resourceProvider, QWidget *parent);
148 void setConfig(const psd_layer_effects_glow_common *innerGlow, KisResourcesInterfaceSP resourcesInterface);
149 void fetchConfig(psd_layer_effects_glow_common *innerGlow, QSharedPointer<KisLocalStrokeResources> uploadResourcesInterface) const;
150
151Q_SIGNALS:
153
154private:
155 Ui::WdgInnerGlow ui;
157};
158
159class PatternOverlay : public QWidget {
160 Q_OBJECT
161public:
162 PatternOverlay(QWidget *parent);
163 void setPatternOverlay(const psd_layer_effects_pattern_overlay *pattern, KisResourcesInterfaceSP resourcesInterface);
165
166Q_SIGNALS:
168
169private:
170 Ui::WdgPatternOverlay ui;
171};
172
173class Satin : public QWidget {
174 Q_OBJECT
175public:
176 Satin(QWidget *parent);
177 void setSatin(const psd_layer_effects_satin *satin);
178 void fetchSatin(psd_layer_effects_satin *satin) const;
179
180Q_SIGNALS:
182
183private:
184 Ui::WdgSatin ui;
185};
186
187class Stroke : public QWidget {
188 Q_OBJECT
189public:
190 Stroke(KisCanvasResourceProvider *resourceProvider, QWidget *parent);
191 void setStroke(const psd_layer_effects_stroke *stroke, KisResourcesInterfaceSP resourcesInterface);
192 void fetchStroke(psd_layer_effects_stroke *stroke, QSharedPointer<KisLocalStrokeResources> uploadResourcesInterface) const;
193
194Q_SIGNALS:
196
197private:
198 Ui::WdgStroke ui;
199};
200
201
202class KisResourceModel;
203class StylesSelector : public QWidget {
204 Q_OBJECT
205
206protected:
207 class LocationProxyModel : public QSortFilterProxyModel
208 {
209 public:
210 LocationProxyModel(QObject* parent);
211
212 void setEnableFiltering(bool enableFiltering);
213 void setLocationToFilterBy(QString location);
214
215 private:
217 bool m_enableFiltering {false};
218
219
220 // QSortFilterProxyModel interface
221 protected:
222 bool filterAcceptsRow(int source_row,
223 const QModelIndex &source_parent) const override;
224 };
225
226
227public:
228 StylesSelector(QWidget *parent);
229
230 void notifyExternalStyleChanged(const QString &name, const QUuid &uuid);
231
232 void addNewStyle(const QString &location, const KisPSDLayerStyleSP style);
233 void loadCollection(const QString &fileName);
234
235 void refillCollections();
236
237private Q_SLOTS:
238
240
241 void loadStyles(const QString &name);
242 void selectStyle(QModelIndex current);
243Q_SIGNALS:
245
246
247
248
249private:
250 Ui::WdgStylesSelector ui;
253};
254
256{
257 Q_OBJECT
258public:
259 explicit KisDlgLayerStyle(KisPSDLayerStyleSP layerStyle, KisCanvasResourceProvider *resourceProvider, QWidget *parent = 0);
260 ~KisDlgLayerStyle() override;
261
263
264Q_SIGNALS:
266
267public Q_SLOTS:
269 void syncGlobalAngle(int angle);
270
273
274 void slotBevelAndEmbossChanged(QListWidgetItem*);
275
276 void changePage(QListWidgetItem *, QListWidgetItem*);
277
278 void slotNotifyOnAccept();
279 void slotNotifyOnReject();
280
281 // Sets all the widgets to the contents of the given style
283
284 void slotLoadStyle();
285 void slotSaveStyle();
286 void slotNewStyle();
287
288private:
289
292
293 Ui::WdgStylesDialog wdgLayerStyles;
294
309
312
318
320};
321
322#endif // KIS_DLG_LAYER_STYLE_H
float value(const T *src, size_t ch)
BevelAndEmboss(Contour *contour, Texture *texture, QWidget *parent)
void setBevelAndEmboss(const psd_layer_effects_bevel_emboss *bevelAndEmboss, KisResourcesInterfaceSP resourcesInterface)
void fetchBevelAndEmboss(psd_layer_effects_bevel_emboss *bevelAndEmboss, QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface) const
Ui::WdgBevelAndEmboss ui
void globalAngleChanged(int value)
void configChanged()
void configChanged()
Ui::WdgBlendingOptions ui
BlendingOptions(QWidget *parent)
ColorOverlay(QWidget *parent)
void setColorOverlay(const psd_layer_effects_color_overlay *colorOverlay)
Ui::WdgColorOverlay ui
void configChanged()
void fetchColorOverlay(psd_layer_effects_color_overlay *colorOverlay) const
Ui::WdgContour ui
Contour(QWidget *parent)
Ui::WdgDropShadow ui
void globalAngleChanged(int value)
void setShadow(const psd_layer_effects_shadow_common *shadow)
void fetchShadow(psd_layer_effects_shadow_common *shadow) const
void configChanged()
DropShadow(Mode mode, QWidget *parent)
Ui::WdgGradientOverlay ui
void fetchGradientOverlay(psd_layer_effects_gradient_overlay *gradient, QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface) const
void setGradientOverlay(const psd_layer_effects_gradient_overlay *gradient, KisResourcesInterfaceSP resourcesInterface)
GradientOverlay(KisCanvasResourceProvider *resourceProvider, QWidget *parent)
void configChanged()
InnerGlow(Mode mode, KisCanvasResourceProvider *resourceProvider, QWidget *parent)
void fetchConfig(psd_layer_effects_glow_common *innerGlow, QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface) const
Ui::WdgInnerGlow ui
void setConfig(const psd_layer_effects_glow_common *innerGlow, KisResourcesInterfaceSP resourcesInterface)
void configChanged()
void changePage(QListWidgetItem *, QListWidgetItem *)
KisDlgLayerStyle(KisPSDLayerStyleSP layerStyle, KisCanvasResourceProvider *resourceProvider, QWidget *parent=0)
KisPSDLayerStyleSP m_initialLayerStyle
void slotMasterFxSwitchChanged(bool value)
BevelAndEmboss * m_bevelAndEmboss
PatternOverlay * m_patternOverlay
GradientOverlay * m_gradientOverlay
KisTemporaryResourceStorageLock m_temporaryStorageLock
Ui::WdgStylesDialog wdgLayerStyles
BlendingOptions * m_blendingOptions
void slotBevelAndEmbossChanged(QListWidgetItem *)
void syncGlobalAngle(int angle)
ColorOverlay * m_colorOverlay
void setStyle(KisPSDLayerStyleSP style)
KisPSDLayerStyleSP style() const
KisPSDLayerStyleSP m_layerStyle
void notifyPredefinedStyleSelected(KisPSDLayerStyleSP style)
StylesSelector * m_stylesSelector
KisSignalCompressor * m_configChangedCompressor
a KisResourcesInterface-like resources storage for preloaded resources
The KisResourceModel class provides the main access to resources. It is possible to filter the resour...
A dialog base class with standard buttons and predefined layouts.
Definition KoDialog.h:116
void fetchPatternOverlay(psd_layer_effects_pattern_overlay *pattern, QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface) const
PatternOverlay(QWidget *parent)
void configChanged()
Ui::WdgPatternOverlay ui
void setPatternOverlay(const psd_layer_effects_pattern_overlay *pattern, KisResourcesInterfaceSP resourcesInterface)
Satin(QWidget *parent)
void configChanged()
void setSatin(const psd_layer_effects_satin *satin)
Ui::WdgSatin ui
void fetchSatin(psd_layer_effects_satin *satin) const
void configChanged()
Stroke(KisCanvasResourceProvider *resourceProvider, QWidget *parent)
void setStroke(const psd_layer_effects_stroke *stroke, KisResourcesInterfaceSP resourcesInterface)
void fetchStroke(psd_layer_effects_stroke *stroke, QSharedPointer< KisLocalStrokeResources > uploadResourcesInterface) const
Ui::WdgStroke ui
bool filterAcceptsRow(int source_row, const QModelIndex &source_parent) const override
void setEnableFiltering(bool enableFiltering)
void addNewStyle(const QString &location, const KisPSDLayerStyleSP style)
void notifyExternalStyleChanged(const QString &name, const QUuid &uuid)
void loadStyles(const QString &name)
void loadCollection(const QString &fileName)
void selectStyle(QModelIndex current)
StylesSelector(QWidget *parent)
Ui::WdgStylesSelector ui
void styleSelected(KisPSDLayerStyleSP style)
LocationProxyModel * m_locationsProxyModel
KisResourceModel * m_resourceModel
Texture(QWidget *parent)
Ui::WdgTexture ui