Krita Source Code Documentation
Loading...
Searching...
No Matches
KisWdgOptionsBrush.h
Go to the documentation of this file.
1/*
2 * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <boud@valdyas.org>
3 * SPDX-FileCopyrightText: 2019 Iván SantaMaría <ghevan@gmail.com>
4 *
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 */
7
8#ifndef KISWDGOPTIONSBRUSH_H
9#define KISWDGOPTIONSBRUSH_H
10
11#include <QVariant>
12#include <QSpinBox>
13#include <QPainter>
14
16#include <ui_wdg_export_gih.h>
17#include <kis_config_widget.h>
19#include "kis_imagepipe_brush.h"
20
21const QString KEY_SPACING = "spacing";
22const QString KEY_NAME = "name";
23const QString KEY_MASK = "mask";
24const QString KEY_PRESERVE_ALPHA = "preserveAlpha";
25const QString KEY_BRUSH_STYLE = "brushStyle";
26const QString KEY_DIMENSIONS = "dimensions";
27const QString KEY_SELECTION_MODE = "selectionMode";
28const QString KEY_RANK = "rank";
29
30class BrushPipeSelectionModeHelper : public QWidget
31{
32 Q_OBJECT
33
34public:
36 : QWidget(parent)
37 , cmbSelectionMode(this)
38 , rankSpinBox(this)
39 , rankLbl(this)
40 , horizLayout(this)
42 {
43 cmbSelectionMode.addItem(i18n("Constant"), KisParasite::Constant);
44 cmbSelectionMode.addItem(i18n("Random"), KisParasite::Random);
45 cmbSelectionMode.addItem(i18n("Incremental"), KisParasite::Incremental);
46 cmbSelectionMode.addItem(i18n("Pressure"), KisParasite::Pressure);
47 cmbSelectionMode.addItem(i18n("Angular"), KisParasite::Angular);
48 cmbSelectionMode.addItem(i18n("Velocity"), KisParasite::Velocity);
49
50 horizLayout.setSpacing(6);
51 horizLayout.setContentsMargins(0, 0, 0, 0);
52
53 QSizePolicy sizePolicy(QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed));
54 sizePolicy.setHorizontalStretch(1);
55 sizePolicy.setVerticalStretch(0);
56
57 this->setSizePolicy(sizePolicy);
58
59 cmbSelectionMode.setSizePolicy(sizePolicy);
60 cmbSelectionMode.setCurrentIndex(2); // Incremental
61
62 rankSpinBox.setSizePolicy(QSizePolicy(QSizePolicy::Fixed, QSizePolicy::Preferred));
63 rankLbl.setSizePolicy(QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred));
64
65 rankLbl.setText(i18n("Rank"));
66 horizLayout.addWidget(&rankLbl);
67 horizLayout.addWidget(&rankSpinBox);
68 horizLayout.addWidget(&cmbSelectionMode);
69
70 connect(&rankSpinBox, SIGNAL(valueChanged(int)), this, SLOT(slotRankChanged()));
71
72 this->hide();
73 this->setEnabled(false);
74 }
75
77 QSpinBox rankSpinBox;
78 QLabel rankLbl;
79 QHBoxLayout horizLayout;
80
82
83
84Q_SIGNALS:
85 void sigRankChanged(int rankEmitter);
86
87public Q_SLOTS:
89 {
91 }
92
93};
94
95class KisWdgOptionsBrush : public KisConfigWidget, public Ui::WdgExportGih
96{
97 Q_OBJECT
98
99public:
100 KisWdgOptionsBrush(QWidget *parent);
101
102 void setConfiguration(const KisPropertiesConfigurationSP cfg) override;
104
105 void setView(KisViewManager *view) override;
106
107public Q_SLOTS:
108
111 void slotRecalculateRanks(int rankDimension = 0);
112
113private:
117};
118
119#endif // KISWDGOPTIONSBRUSH_H
float value(const T *src, size_t ch)
const QString KEY_MASK
const QString KEY_RANK
const QString KEY_DIMENSIONS
const QString KEY_SELECTION_MODE
const QString KEY_BRUSH_STYLE
const QString KEY_PRESERVE_ALPHA
const QString KEY_NAME
const QString KEY_SPACING
void sigRankChanged(int rankEmitter)
BrushPipeSelectionModeHelper(QWidget *parent, int dimension)
void setView(KisViewManager *view) override
KisWdgOptionsBrush(QWidget *parent)
void slotRecalculateRanks(int rankDimension=0)
void slotEnableSelectionMethod(int value)
KisViewManager * m_view
void setConfiguration(const KisPropertiesConfigurationSP cfg) override
KisPropertiesConfigurationSP configuration() const override