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>
33
34class QListWidgetItem;
37
38
39class Contour : public QWidget {
40 Q_OBJECT
41public:
42 Contour(QWidget *parent);
43 Ui::WdgContour ui;
44};
45
46
47class Texture : public QWidget {
48 Q_OBJECT
49public:
50 Texture(QWidget *parent);
51 Ui::WdgTexture ui;
52};
53
54
55class BevelAndEmboss : public QWidget {
56 Q_OBJECT
57public:
58 BevelAndEmboss(Contour *contour, Texture *texture, QWidget *parent);
59 void setBevelAndEmboss(const psd_layer_effects_bevel_emboss *bevelAndEmboss);
60 void fetchBevelAndEmboss(psd_layer_effects_bevel_emboss *bevelAndEmboss) const;
61
62Q_SIGNALS:
65
66private:
69 Ui::WdgBevelAndEmboss ui;
70};
71
72class BlendingOptions : public QWidget {
73 Q_OBJECT
74public:
75 BlendingOptions(QWidget *parent);
76Q_SIGNALS:
78
79private:
80 Ui::WdgBlendingOptions ui;
81};
82
83
84class ColorOverlay : public QWidget {
85 Q_OBJECT
86public:
87 ColorOverlay(QWidget *parent);
88 void setColorOverlay(const psd_layer_effects_color_overlay *colorOverlay);
89 void fetchColorOverlay(psd_layer_effects_color_overlay *colorOverlay) const;
90
91Q_SIGNALS:
93
94private:
95 Ui::WdgColorOverlay ui;
96};
97
98
99class DropShadow : public QWidget {
100 Q_OBJECT
101
102public:
107
108public:
109 DropShadow(Mode mode, QWidget *parent);
110 void setShadow(const psd_layer_effects_shadow_common *shadow);
112
113Q_SIGNALS:
116
117private:
118 Ui::WdgDropShadow ui;
120};
121
122class GradientOverlay : public QWidget {
123 Q_OBJECT
124public:
125 GradientOverlay(KisCanvasResourceProvider *resourceProvider, QWidget *parent);
128
129Q_SIGNALS:
131
132private:
133 Ui::WdgGradientOverlay ui;
135};
136
137class InnerGlow : public QWidget {
138 Q_OBJECT
139public:
144
145public:
146 InnerGlow(Mode mode, KisCanvasResourceProvider *resourceProvider, QWidget *parent);
147 void setConfig(const psd_layer_effects_glow_common *innerGlow);
148 void fetchConfig(psd_layer_effects_glow_common *innerGlow) const;
149
150Q_SIGNALS:
152
153private:
154 Ui::WdgInnerGlow ui;
157};
158
159class PatternOverlay : public QWidget {
160 Q_OBJECT
161public:
162 PatternOverlay(QWidget *parent);
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);
192 void fetchStroke(psd_layer_effects_stroke *stroke) const;
193
194Q_SIGNALS:
196
197private:
198 Ui::WdgStroke ui;
200};
201
202
203class KisResourceModel;
204class StylesSelector : public QWidget {
205 Q_OBJECT
206
207protected:
208 class LocationProxyModel : public QSortFilterProxyModel
209 {
210 public:
211 LocationProxyModel(QObject* parent);
212
213 void setEnableFiltering(bool enableFiltering);
214 void setLocationToFilterBy(QString location);
215
216 private:
218 bool m_enableFiltering {false};
219
220
221 // QSortFilterProxyModel interface
222 protected:
223 bool filterAcceptsRow(int source_row,
224 const QModelIndex &source_parent) const override;
225 };
226
227
228public:
229 StylesSelector(QWidget *parent);
230
231 void notifyExternalStyleChanged(const QString &name, const QUuid &uuid);
232
233 void addNewStyle(const QString &location, const KisPSDLayerStyleSP style);
234 void loadCollection(const QString &fileName);
235
236 void refillCollections();
237
238private Q_SLOTS:
239
241
242 void loadStyles(const QString &name);
243 void selectStyle(QModelIndex current);
244Q_SIGNALS:
246
247
248
249
250private:
251 Ui::WdgStylesSelector ui;
254};
255
257{
258 Q_OBJECT
259public:
260 explicit KisDlgLayerStyle(KisPSDLayerStyleSP layerStyle, KisCanvasResourceProvider *resourceProvider, QWidget *parent = 0);
261 ~KisDlgLayerStyle() override;
262
264
265Q_SIGNALS:
267
268public Q_SLOTS:
270 void syncGlobalAngle(int angle);
271
274
275 void slotBevelAndEmbossChanged(QListWidgetItem*);
276
277 void changePage(QListWidgetItem *, QListWidgetItem*);
278
279 void slotNotifyOnAccept();
280 void slotNotifyOnReject();
281
282 // Sets all the widgets to the contents of the given style
284
285 void slotLoadStyle();
286 void slotSaveStyle();
287 void slotNewStyle();
288
289private:
290
293
294 Ui::WdgStylesDialog wdgLayerStyles;
295
310
313
319};
320
321#endif // KIS_DLG_LAYER_STYLE_H
float value(const T *src, size_t ch)
void fetchBevelAndEmboss(psd_layer_effects_bevel_emboss *bevelAndEmboss) const
void setBevelAndEmboss(const psd_layer_effects_bevel_emboss *bevelAndEmboss)
BevelAndEmboss(Contour *contour, Texture *texture, QWidget *parent)
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
KisCanvasResourceProvider * m_resourceProvider
void setGradientOverlay(const psd_layer_effects_gradient_overlay *gradient)
GradientOverlay(KisCanvasResourceProvider *resourceProvider, QWidget *parent)
void fetchGradientOverlay(psd_layer_effects_gradient_overlay *gradient) const
void configChanged()
InnerGlow(Mode mode, KisCanvasResourceProvider *resourceProvider, QWidget *parent)
Ui::WdgInnerGlow ui
void fetchConfig(psd_layer_effects_glow_common *innerGlow) const
void configChanged()
void setConfig(const psd_layer_effects_glow_common *innerGlow)
KisCanvasResourceProvider * m_resourceProvider
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
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
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
PatternOverlay(QWidget *parent)
void fetchPatternOverlay(psd_layer_effects_pattern_overlay *pattern) const
void configChanged()
void setPatternOverlay(const psd_layer_effects_pattern_overlay *pattern)
Ui::WdgPatternOverlay ui
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()
void fetchStroke(psd_layer_effects_stroke *stroke) const
Stroke(KisCanvasResourceProvider *resourceProvider, QWidget *parent)
KisCanvasResourceProvider * m_resourceProvider
Ui::WdgStroke ui
void setStroke(const psd_layer_effects_stroke *stroke)
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