Krita Source Code Documentation
Loading...
Searching...
No Matches
KisSprayOpOptionWidget Class Reference

#include <KisSprayOpOptionWidget.h>

+ Inheritance diagram for KisSprayOpOptionWidget:

Classes

struct  Private
 

Public Types

using data_type = KisSprayOpOptionData
 
- Public Types inherited from KisPaintOpOption
using OptionalLodLimitationsReader = std::optional<lager::reader<KisPaintopLodLimitations>>
 
enum  PaintopCategory {
  GENERAL , COLOR , TEXTURE , FILTER ,
  MASKING_BRUSH
}
 

Public Member Functions

lager::cursor< int > diameter () const
 
 KisSprayOpOptionWidget (lager::cursor< KisSprayOpOptionData > optionData)
 
void readOptionSetting (const KisPropertiesConfigurationSP setting) override
 
lager::cursor< qreal > scale () const
 
void writeOptionSetting (KisPropertiesConfigurationSP setting) const override
 
 ~KisSprayOpOptionWidget ()
 
- Public Member Functions inherited from KisPaintOpOption
KisPaintOpOption::PaintopCategory category () const
 
QWidget * configurationPage () const
 
OptionalLodLimitationsReader effectiveLodLimitations () const
 
virtual bool isCheckable () const
 
virtual bool isChecked () const
 
bool isEnabled () const
 
bool isLocked () const
 
 KisPaintOpOption (const QString &label, KisPaintOpOption::PaintopCategory category, bool checked)
 
 KisPaintOpOption (const QString &label, KisPaintOpOption::PaintopCategory category, lager::cursor< bool > checkedCursor)
 
 KisPaintOpOption (const QString &label, KisPaintOpOption::PaintopCategory category, lager::cursor< bool > checkedCursor, lager::reader< bool > externallyEnabledLink)
 
QString label () const
 
virtual void lodLimitations (KisPaintopLodLimitations *l) const
 
virtual void setCanvasResourcesInterface (KoCanvasResourcesInterfaceSP canvasResourcesInterface)
 
virtual void setChecked (bool checked)
 
virtual void setImage (KisImageWSP image)
 
void setLocked (bool value)
 
virtual void setNode (KisNodeWSP node)
 
virtual void setResourcesInterface (KisResourcesInterfaceSP resourcesInterface)
 
void startReadOptionSetting (const KisPropertiesConfigurationSP setting)
 
void startWriteOptionSetting (KisPropertiesConfigurationSP setting) const
 
 ~KisPaintOpOption () override
 

Private Attributes

const QScopedPointer< Privatem_d
 

Additional Inherited Members

- Signals inherited from KisPaintOpOption
void sigCheckedChanged (bool value)
 
void sigEnabledChanged (bool value)
 
void sigSettingChanged ()
 
- Protected Slots inherited from KisPaintOpOption
void emitCheckedChanged (bool checked)
 
void emitEnabledChanged (bool enabled)
 
void emitSettingChanged ()
 
- Protected Member Functions inherited from KisPaintOpOption
KoCanvasResourcesInterfaceSP canvasResourcesInterface () const
 
virtual OptionalLodLimitationsReader lodLimitationsReader () const
 
KisResourcesInterfaceSP resourcesInterface () const
 
void setConfigurationPage (QWidget *page)
 
- Protected Attributes inherited from KisPaintOpOption
bool m_checkable {false}
 
bool m_locked {false}
 

Detailed Description

Definition at line 18 of file KisSprayOpOptionWidget.h.

Member Typedef Documentation

◆ data_type

Constructor & Destructor Documentation

◆ KisSprayOpOptionWidget()

KisSprayOpOptionWidget::KisSprayOpOptionWidget ( lager::cursor< KisSprayOpOptionData > optionData)

Definition at line 176 of file KisSprayOpOptionWidget.cpp.

177 : KisPaintOpOption(i18n("Spray Area"), KisPaintOpOption::GENERAL, true)
178 , m_d(new Private(optionData))
179{
180
181 KisSprayOptionsWidget *widget = new KisSprayOptionsWidget();
182 setObjectName("KisSprayOpOption");
183
184 m_checkable = false;
185
186 using namespace KisWidgetConnectionUtils;
187
188 connectControl(widget->diameterSpinBox, &m_d->model, "diameter");
189 connectControl(widget->aspectSPBox, &m_d->model, "aspect");
190 connectControl(widget->rotationAngleSelector, &m_d->model, "brushRotation");
191 connectControl(widget->scaleSpin, &m_d->model, "scale");
192 connectControl(widget->spacingSpin, &m_d->model, "spacing");
193 connectControl(widget->jitterMoveBox, &m_d->model, "jitterMovement");
194 connectControl(widget->jitterMovementSpin, &m_d->model, "jitterAmount");
195
196 connectControl(widget->densityRadioButton, &m_d->model, "useDensity");
197
198
199 connectControl(widget->particlesSpinBox, &m_d->model, "particleCount");
200 connectControl(widget->coverageSpin, &m_d->model, "coverage");
201
202
203 connectControl(widget->angularDistCombo, &m_d->model, "angularDistributionType");
204
205 connectControl(widget->curveAngularDistWidget, &m_d->model, "angularDistributionCurve");
206 connectControl(widget->curveAngularDistSpin, &m_d->model, "angularDistributionCurveRepeat");
207
208 // enable widgets for the angular distribution
209 slotSetupAngularDistributionWidget(widget, m_d->model.angularDistributionType() == KisSprayOpOptionData::ParticleDistribution_Uniform ? 0 : 1);
210 connect(&m_d->model, &KisSprayOpOptionModel::angularDistributionTypeChanged, widget, [this, widget] (int index) {
211 slotSetupAngularDistributionWidget(widget, index);
212 });
213
214
215 connectControl(widget->radialDistCombo, &m_d->model, "radialDistributionType");
216 connectControl(widget->stdDeviationRadialDistSpin, &m_d->model, "radialDistributionStdDeviation");
217 connectControl(widget->clusterRadialDistSpin, &m_d->model, "radialDistributionClusteringAmount");
218
219 connectControl(widget->curveRadialDistWidget, &m_d->model, "radialDistributionCurve");
220
221 // enable widgets for radial distribution
222 slotSetupRadialDistributionWidget(widget, (int)m_d->model.radialDistributionType());
223 connect(&m_d->model, &KisSprayOpOptionModel::radialDistributionTypeChanged, widget, [this, widget] (int index) {
224 slotSetupRadialDistributionWidget(widget, index);
225 });
226
227
228 connectControl(widget->curveRadialDistSpin, &m_d->model, "radialDistributionCurveRepeat");
229 connectControl(widget->centerBiasedPolarDistanceBox, &m_d->model, "radialDistributionCenterBiased");
230
231 widget->jitterMovementSpin->setEnabled(m_d->model.jitterMovement());
232 connect(&m_d->model, &KisSprayOpOptionModel::jitterMovementChanged, widget->jitterMovementSpin, &KisDoubleSliderSpinBox::setEnabled);
233
234 connectWidgetVisibleToProperty(widget->particlesSpinBox, &m_d->model, "isNumParticlesVisible");
235 connectWidgetVisibleToProperty(widget->coverageSpin, &m_d->model, "useDensity");
236
237 m_d->model.optionData.bind(std::bind(&KisSprayOpOptionWidget::emitSettingChanged, this));
238
239 setConfigurationPage(widget);
240}
connect(this, SIGNAL(optionsChanged()), this, SLOT(saveOptions()))
void setConfigurationPage(QWidget *page)
KisPaintOpOption(const QString &label, KisPaintOpOption::PaintopCategory category, bool checked)
const QScopedPointer< Private > m_d
void connectControl(KisCompositeOpListWidget *widget, QObject *source, const char *property)
void connectWidgetVisibleToProperty(QWidget *widget, QObject *source, const char *property)

References connect(), KisPaintOpOption::emitSettingChanged(), KisPaintOpOption::m_checkable, m_d, KisSprayOpOptionData::ParticleDistribution_Uniform, and KisPaintOpOption::setConfigurationPage().

◆ ~KisSprayOpOptionWidget()

KisSprayOpOptionWidget::~KisSprayOpOptionWidget ( )

Definition at line 242 of file KisSprayOpOptionWidget.cpp.

243{
244}

Member Function Documentation

◆ diameter()

lager::cursor< int > KisSprayOpOptionWidget::diameter ( ) const

Definition at line 264 of file KisSprayOpOptionWidget.cpp.

265{
266 return m_d->model.LAGER_QT(diameter);
267}
lager::cursor< int > diameter() const

References diameter(), and m_d.

◆ readOptionSetting()

void KisSprayOpOptionWidget::readOptionSetting ( const KisPropertiesConfigurationSP setting)
overridevirtual

Re-implement this to set the widgets with the values in setting.

Reimplemented from KisPaintOpOption.

Definition at line 252 of file KisSprayOpOptionWidget.cpp.

253{
254 KisSprayOpOptionData data = *m_d->model.optionData;
255 data.read(setting.data());
256 m_d->model.optionData.set(data);
257}
bool read(const KisPropertiesConfiguration *setting)

References KisSharedPtr< T >::data(), m_d, and KisSprayOpOptionData::read().

◆ scale()

lager::cursor< qreal > KisSprayOpOptionWidget::scale ( ) const

Definition at line 259 of file KisSprayOpOptionWidget.cpp.

260{
261 return m_d->model.LAGER_QT(scale);
262}
lager::cursor< qreal > scale() const

References m_d, and scale().

◆ writeOptionSetting()

void KisSprayOpOptionWidget::writeOptionSetting ( KisPropertiesConfigurationSP setting) const
overridevirtual

Re-implement this to save the configuration to the paint configuration.

Reimplemented from KisPaintOpOption.

Definition at line 246 of file KisSprayOpOptionWidget.cpp.

247{
248 KisSprayOpOptionData data = *m_d->model.optionData;
249 data.write(setting.data());
250}
void write(KisPropertiesConfiguration *setting) const

References KisSharedPtr< T >::data(), m_d, and KisSprayOpOptionData::write().

Member Data Documentation

◆ m_d

const QScopedPointer<Private> KisSprayOpOptionWidget::m_d
private

Definition at line 34 of file KisSprayOpOptionWidget.h.


The documentation for this class was generated from the following files: